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

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

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

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

Создано: 2 ноября 2013 15:14 New!
Цитата · Личное сообщение · #1

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

Ранг: 511.0 (!)
Статус: Модератор

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

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

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

Создано: 2 ноября 2013 15:41 New!
Цитата · Личное сообщение · #3

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


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 2 ноября 2013 15:46 New!
Цитата · Личное сообщение · #4

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

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

Создано: 2 ноября 2013 15:57 New!
Цитата · Личное сообщение · #5

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


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 2 ноября 2013 16:20 New!
Цитата · Личное сообщение · #6

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


Ранг: 322.8 (мудрец)
Статус: Участник

Создано: 2 ноября 2013 16:21 · Поправил: DenCoder New!
Цитата · Личное сообщение · #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 включительно, там несколько различных приёмов.

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

Создано: 2 ноября 2013 16:53 New!
Цитата · Личное сообщение · #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.  


Ранг: 322.8 (мудрец)
Статус: Участник

Создано: 2 ноября 2013 17:06 New!
Цитата · Личное сообщение · #9

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

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

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

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

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

{ Атач доступен только для участников форума } - current.exe


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

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

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

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

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

Создано: 3 ноября 2013 00:32 New!
Цитата · Личное сообщение · #12

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


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

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

dova

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

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

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

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

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

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

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


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

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

Да, я там зареган. Только там же ещё надо чтобы кто-нибудь +1 выставил.
Ок спс. за ссыль.
 eXeL@B —› Основной форум —› Отладка программ, взводящих флаг tf

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