Репозиторий из статьи - Рвём call-graph или «Как я самому себе реверс усложнял»
Проект ориентирован на Windows. Для сборки под другие ОС уберите/замените WinAPI функции.
- Windows 11
- Visual Studio Build Tools (или Visual Studio) с установленным Windows SDK
- clang-cl
- lld-link
- CMake
Небольшая лабораторная работа по сокрытию вызовов от статических анализаторов бинарных файлов, вроде IDA Pro.
- Обычный код с классом
- C-style класс, call dispatch по адресу функции
- Call dispatch по хешу функции, заполнение хеш-таблицы в рантайме
- Заполнение хеш-таблицы во время компиляции
Отключены исключения, RTTI, stack-protection, оптимизация.
Собирал только через clang-cl + lld-link из под win11.
Под другой компиль и линкер поменять в CMakeLists.txt
set(CMAKE_CXX_COMPILER clang-cl)
set(CMAKE_LINKER lld-link)cd stage1
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build
build/hideCall.exe