Сейчас на форуме: (+6 невидимых)

 [email protected] —› Протекторы —› SEH Anti Debugging vs Visual Studio 17
Посл.ответ Сообщение


Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 13 мая 2020 08:11
· Личное сообщение · #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. }


-----
Research For Food




Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

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

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




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

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

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

-----
Research For Food


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

Ранг: 13.2 (новичок), 13thx
Активность: 0.28=0.28
Статус: Участник

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

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

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




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.


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


Ранг: 69.9 (постоянный), 81thx
Активность: 0.140.73
Статус: Участник

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

Не совсем уверен, что это то, что вам нужно, но - посмотрите книгу Рихтера "Windows via C/C++", стр. 827, подглава "Исключения и отладчик".


 [email protected] —› Протекторы —› SEH Anti Debugging vs Visual Studio 17
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати