Сейчас на форуме: localhost1, vsv1, asfa, tyns777 (+5 невидимых)

 eXeL@B —› Вопросы новичков —› SEH + INT3 как работает
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0.01=0.01
Статус: Участник

Создано: 23 апреля 2020 13:09
· Личное сообщение · #1

Всем доброго дня

Есть вот такой участок кода

Code:
  1. 0040B06E   64:67:FF36 0000  PUSH DWORD PTR FS:[0]
  2. 0040B074   64:67:8926 0000  MOV DWORD PTR FS:[0],ESP                 ; new SEH exception
  3. 0040B07A   E8 00000000      CALL fp2.0040B07F
  4. 0040B07F   5D               POP EBP
  5. 0040B080   8D7D 3B          LEA EDI,DWORD PTR SS:[EBP+3B]
  6. 0040B083   8B5D CE          MOV EBX,DWORD PTR SS:[EBP-32]
  7. 0040B086   CC               INT3                                     ; INT3 anti-debug
  8. 0040B087   E8 C5FFFFFF      CALL fp2.0040B051
  9. 0040B08C   B9 EE010000      MOV ECX,1EE
  10. 0040B091   F7C1 0F000000    TEST ECX,0F
  11. 0040B097   75 10            JNZ SHORT fp2.0040B0A9                   ; jump if ZF = 0
  12. 0040B099   9C               PUSHFD
  13. 0040B09A   810C24 00010000  OR DWORD PTR SS:[ESP],100
  14. 0040B0A1   9D               POPFD
  15. 0040B0A2   90               NOP
  16. 0040B0A3   90               NOP
  17. 0040B0A4   E8 A8FFFFFF      CALL fp2.0040B051
  18. 0040B0A9   D3C3             ROL EBX,CL
  19. 0040B0AB   305C0F FF        XOR BYTE PTR DS:[EDI+ECX-1],BL           ; PTR 40B2A7 - for first iteration
  20. 0040B0AF  ^E2 E0            LOOPD SHORT fp2.0040B091                 ; Loop while equal, after this loop code is decrypted
  21.  


Если я правильно всё понял,

То в 0040B074 устанавливается обработка исключения, в стеке при этом появляется

Code:
  1. 0019FF4C   0019FFCC  Pointer to next SEH record
  2. 0019FF50   0040B006  SE handler


Далее в 0040B086 есть INT 3 прерывание и выполнение должно продолжиться по адресу 0040B006

Но в отладчике этого не происходит.

Знающие люди, подскажите, прав ли я в своем предположении и как лучше данный код дебажить?

Всем спасибо и с первым сообщением меня на этом форуме.

PS на всякий случай приложил семпл, он не вредоносный это crackme

4288_23.04.2020_EXELAB.rU.tgz - fp2_original.7z



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 23 апреля 2020 14:12
· Личное сообщение · #2

SGWW пишет:
как лучше данный код дебажить

Как дебажить: Если не уходить в теорию в 2 слова, перед исполнением инт3 ставь бряк на ZwContinue.
Как брякнешься, в стеке будет лежать указатель на контекст, там увидишь адрес нового Eip, туда бряк и ф9.



Ранг: 397.0 (мудрец), 179thx
Активность: 0.170.1
Статус: Участник

Создано: 23 апреля 2020 18:15 · Поправил: BfoX
· Личное сообщение · #3

очень похоже на конверты dinkey/copyminder, в обработчике должен расшифровываться код с 0040B0BАб длиной 1ЕЕ. там походу будет распаковщик кода.

обработчик будет 0040B087

-----
...или ты работаешь хорошо, или ты работаешь много...





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 23 апреля 2020 19:01
· Личное сообщение · #4

SGWW

Тебе ключ найти откуда берётся или разбирать всякие не нужные детали связанные с отладчиком ?

Если ключ, то нужно смотреть сервисную активность.

-----
vx



 eXeL@B —› Вопросы новичков —› SEH + INT3 как работает
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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