Обход проверки целостности (программный метод)
Однажды я уже рассказывал как обойти проверку целостности руками, но это долго, нудно, да и кому вообще надо?!
Для начала необходимые утилиты: x64dbg, CrySearch/CE, любой компилятор.
Нашли адрес отвечающий за патроны, ставим на него бряк на запись, выходи на пишущую инструкцию, ставим бряк на доступ размером 1 байт в памяти на эту инструкцию и ждем срабатывания. После срабатывания в заголовке x64dbg будет написан ID потока.
Переходим во вкладку "Потоки", здесь нам необходим только адрес начала:
Теперь переходим к автоматизации, вся суть этого обхода в получении всех потоков и сравнении адреса начала, т.е если адрес начала равен 0x7FF730E2449D, то убиваем поток. Вот и весь обход.
if (reinterpret_cast<DWORD64>(thread->Win32StartAddress) == (reinterpret_cast<DWORD64>(mainModule) + 0x4490))
{
HANDLE hThread = OpenThread(THREAD_TERMINATE, FALSE, threadId);
TerminateThread(hThread, 1);
CloseHandle(hThread);
}
0x4490 это относительный виртуальный адрес адреса начала потока.
-
1
-
2
6 Комментариев
Рекомендуемые комментарии
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти