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

 eXeL@B —› Основной форум —› Отладка программ, взводящих флаг tf
Посл.ответ Сообщение

Ранг: 8.0 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 ноября 2013 15:14
· Личное сообщение · #1

Исследую программу (в ollydbg). Там через push ... popfd взводится флаг tf.
При переходе на следующую инструкцию выбрасывает куда-то внутрь ntdll. Хотя по хорошему должно выбрасывать на seh-обработчик.
Поставил хардварный бряк на все сех обработчики(там 2 штуки их) но он почему то не срабатывает. В чём может быть дело? Вроде бы сама олька для отладки не юзает же tf - он в ней всё время 0.



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 02 ноября 2013 15:39
· Личное сообщение · #2

какая Ольга, где кодес
похоже на прием антитрассировки



Ранг: 8.0 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 ноября 2013 15:41
· Личное сообщение · #3

Ольга 1.10. Кодец - VMBE инди клерка.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 02 ноября 2013 15:46
· Личное сообщение · #4

dova как это в ольке не юзается, а как же она трейсит то? как отлаживать, следить за стеком и убирать TF_FLAG = 0x100

-----
[nice coder and reverser]




Ранг: 8.0 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 ноября 2013 15:57
· Личное сообщение · #5

Так если вручную сбрасывать этот флаг, тогда ведь и подавно не вызовется никаких seh обработчиков. Неужто вручную вызывать?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 02 ноября 2013 16:20
· Личное сообщение · #6

dova сбрасывать это если детектит трассировку, а если само себя трассирует, тогда самому эмулировать вызов сепшена и не давать ольге ханлить фолт.

-----
[nice coder and reverser]





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

Создано: 02 ноября 2013 16:21 · Поправил: DenCoder
· Личное сообщение · #7

dova пишет:
Вроде бы сама олька для отладки не юзает же tf

В большинстве случаев олька(все версии) сбрасывает tf, но если извне(другой программой) посмотреть контекст отлаживаемого процесса, то всё может оказаться не так, как вы представляли себе Но это только как вступление!

Code:
  1. push ss
  2. pop ss
  3. pushfd
  4. pop eax


В 2.00 beta и в 1.10 по F8 ход останавливается на pop eax, дальнейшее выполнение которой выдаёт TF. Следовательно, TF юзается.
На новой 2.01 этот код не показывает флаг TF в eax по F8. При этом зависает hwbp на pushfd и ход продолжается до первого бряка. Вместо TF временные hwbp

Но странно, ни в той, ни в той ольке не кидает в хэндлер, на всех поставил бряки

dova, а покажи конкретный код, немного ранее push и до popfd включительно, там несколько различных приёмов.

-----
IZ.RU




Ранг: 8.0 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 ноября 2013 16:53
· Личное сообщение · #8

Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 0040157B  /> \55            PUSH EBP                                 ; /Arg4 = 18FF68
  4. 0040157C  |.  8BEC          MOV EBP,ESP                              ; |
  5. 0040157E  |.  33C0          XOR EAX,EAX                              ; |
  6. 00401580  |.  8B4D 10       MOV ECX,DWORD PTR SS:[ARG.3]             ; |
  7. 00401583  |.  50            PUSH EAX                                 ; |Arg3 => 0
  8. 00401584  |.  50            PUSH EAX                                 ; |/Arg3 => 0
  9. 00401585  |.  50            PUSH EAX                                 ; ||Arg2 => 0
  10. 00401586  |.  50            PUSH EAX                                 ; ||Arg1 => 0
  11. 00401587  |.  E8 2B000000   CALL 004015B7                            ; |\current.004015B7
  12. 0040158C  |.  55            PUSH EBP                                 ; |Arg2 => OFFSET LOCAL.0
  13. 0040158D  |.  50            PUSH EAX                                 ; |Arg1
  14. 0040158E  |.  E8 DFFEFFFF   CALL 00401472                            ; \current.00401472
  15. 00401593  |.  50            PUSH EAX
  16. 00401594  |.  64:FF35 00000 PUSH DWORD PTR FS:[0]
  17. 0040159B  |.  8B45 0C       MOV EAX,DWORD PTR SS:[ARG.2]
  18. 0040159E  |.  64:8925 00000 MOV DWORD PTR FS:[0],ESP                 ; Installs SE handler
  19. 004015A5  |>  FF7488 FC     /PUSH DWORD PTR DS:[ECX*4+EAX-4]
  20. 004015A9  |.  49            |DEC ECX
  21. 004015AA  |.75 F9         \JNZ SHORT 004015A5
  22. 004015AC      68 02010000   PUSH 102
  23. 004015B1      9D            POPFD
  24. 004015B2  |.  FF55 08       CALL DWORD PTR SS:[ARG.1]
  25.  





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

Создано: 02 ноября 2013 17:06
· Личное сообщение · #9

на 2.00 beta кинуло в сех, на 1.10 и 2.01 - нет

-----
IZ.RU




Ранг: 8.0 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 02 ноября 2013 17:15 · Поправил: dova
· Личное сообщение · #10

Хм. Меня не кидает. Ставлю бряк на самый первый обработчик (тот что по адресу FS:[0]+4). Ставил и Hardware breakpoint и обычный брякпоинт через F2(проверял на ollydbg 2.00 beta)

Вот файл, там чуть протрейсить и будет то место.

0f06_02.11.2013_EXELAB.rU.tgz - current.exe




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

Создано: 03 ноября 2013 00:19 · Поправил: Dr0p
· Личное сообщение · #11

Ну и что вы там нарыть хотите, мотор опенсурсный же

Версии было две, первая юзала TF(трейс), что не годно, чторая ваще фолты не юзает.



Ранг: 8.0 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 ноября 2013 00:32
· Личное сообщение · #12

Ссылку на второй мотор не подскажете, не могу его найти чего-то (на сайте вашем там не даёт качнуть)?
В первой видимо действительно ничего интересного нет - как я понял там просто взводится флаг TF , при переходе на следующую инструкцию вызывается обработчик, счётчик инструкций увеличивается на 1, снова взводится флаг tf, исполняется следующая инструкция функции и тд... Не очень годно хотя бы потому, что обычные проги флаг tf не взводят.




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

Создано: 03 ноября 2013 00:36 · Поправил: Dr0p
· Личное сообщение · #13

dova

http://www.woodmann.com/forum/showthread.php?14923-AV-VM-BYPASS-ENGINE

Первая версия древняя, я уже и не помню что именно она делает. Вторая труъ.

> Не очень годно хотя бы потому, что обычные проги флаг tf не взводят.

Это не годно из за safeseh. Да и вообще зачем фолты нужны.

> на сайте вашем там не даёт качнуть

Не даёт даже если зарегаться.)

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

Ранг: 8.0 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 ноября 2013 00:39 · Поправил: dova
· Личное сообщение · #14

Да, я там зареган. Только там же ещё надо чтобы кто-нибудь +1 выставил.
Ок спс. за ссыль.


 eXeL@B —› Основной форум —› Отладка программ, взводящих флаг tf
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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