Русский / Russian English / Английский

Сейчас на форуме: vasilevradislav, rmn, jinoweb, bernal1 (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Протекторы —› SEH Anti Debugging vs Visual Studio 17
Посл.ответ Сообщение


Ранг: 529.0 (!)
Статус: Участник
5KRT

Создано: 13 мая 2020 08:11 New!
Цитата · Личное сообщение · #1

Приветствую, давно ничего не писал на этом форуме, но столкнулся с проблемой - на файле висит что-то кастомное, файл обфусцирован, в код обильно замешано более сотни функций проверки целостности и антидебаг приёмов.
Антидебаг ерундовый, но в студии я чёт не нашёл игнора некоторых исключений, чтобы исключение передалось обработчику протектора. Есть какие-то здравые мысли? Патчить можно, обошёл проверку целостности, но слишком много времени на это уйдёт.

Палят они отладчик подобным образом:
Code:
  1. BOOL g_isDebuggerPresent = TRUE;
  2. EXCEPTION_DISPOSITION ExceptionRoutine(
  3.     PEXCEPTION_RECORD ExceptionRecord,
  4.     PVOID             EstablisherFrame,
  5.     PCONTEXT          ContextRecord,
  6.     PVOID             DispatcherContext)
  7. {
  8.     g_isDebuggerPresent = FALSE;
  9.     ContextRecord->Eip += 1;
  10.     return ExceptionContinueExecution;
  11. }
  12. int main()
  13. {
  14.     __asm
  15.     {
  16.         // set SEH handler
  17.         push ExceptionRoutine
  18.         push dword ptr fs:[0]
  19.         mov  dword ptr fs:[0], esp
  20.         // generate interrupt
  21.         int  3h
  22.         // return original SEH handler
  23.         mov  eax, [esp]
  24.         mov  dword ptr fs:[0], eax
  25.         add  esp, 8
  26.     }
  27.     if (g_isDebuggerPresent)
  28.     {
  29.         std::cout << "Stop debugging program!" << std::endl;
  30.         exit(-1);
  31.     }
  32.     return 0
  33. }

Ранг: 259.4 (наставник)
Статус: Участник

Создано: 13 мая 2020 08:17 New!
Цитата · Личное сообщение · #2

Стесняюсь спросить, а чем обусловлен выбор отладчика студии?


Ранг: 529.0 (!)
Статус: Участник
5KRT

Создано: 13 мая 2020 08:23 New!
Цитата · Личное сообщение · #3

TryAga1n
Я не поехавший) Файл - библиотека которую люди подвязывают в свой проект, но есть сложности с отладкой из софта когда эта библиотека подгружается

| Сообщение посчитали полезным: TryAga1n


Ранг: 13.2 (новичок)
Статус: Участник

Создано: 13 мая 2020 18:51 New!
Цитата · Личное сообщение · #4

> в студии я чёт не нашёл игнора некоторых исключений, чтобы исключение передалось обработчику протектора
А как Студии дебагер будет различать свои бряки от инт3 в коде? Имо никак. Он ведь тоже инт3 пишет, WaitForDebugEvent() ждёт, поэтому таких фильтров быть не может.

> Патчить можно, обошёл проверку целостности, но слишком много времени на это уйдёт.
Разве? Твой апп сидит в бэкграунд, ждёт процесса с антидебагом, патчит PEB->BeingDebugged в 0.


Ранг: 677.5 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 14 мая 2020 00:19 New!
Цитата · Личное сообщение · #5

friend
Также, как и любой другой дебаггер - запоминает свой бряки, которые ручками там ставишь. От так и будет различать.
PEB->BeingDebugged тут не проверяется, тут проверяется сам факт генерации иксепшена. Если патчить можно, daFix, патч int3 на cli.

| Сообщение посчитали полезным: plutos, daFix



Ранг: 59.6 (постоянный)
Статус: Участник

Создано: 14 мая 2020 23:26 New!
Цитата · Личное сообщение · #6

Не совсем уверен, что это то, что вам нужно, но - посмотрите книгу Рихтера "Windows via C/C++", стр. 827, подглава "Исключения и отладчик".
 eXeL@B —› Протекторы —› SEH Anti Debugging vs Visual Studio 17

Видеокурс ВЗЛОМ