Сейчас на форуме: Rio, YDS, _MBK_ (+10 невидимых)

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

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

Создано: 17 марта 2006 17:50
· Личное сообщение · #1

Отладчик всплывает в таком месте (бряка была на ReportEventA)

ChildEBP RetAddr Args to Child
06b3f0c8 00457d97 000cee20 00000004 00000001 ADVAPI32!ReportEventA
06b3f404 0045838a 00a000a1 06b3f338 00000110 emsmta!sgplognt+0x9e2
06b3f4cc 0045979e 00000010 00000024 00000110 emsmta!sgplinfo+0x4ff
06b3f5a8 0059f0d3 00000024 00000110 00000400 emsmta!sgpminfo+0xaa9
06b3ff3c 005a472a 0000000b 00000000 000001b8 emsmta!DecodeRelayedAPDU+0x3259
06b3ff8c 00643895 00000000 00000000 0000000b emsmta!otpmmain+0x596
06b3ffb8 77e66063 0000000b 00000000 00000000 emsmta!sbpiwbep+0x3b
06b3ffec 00000000 0064385a 0000000b 00000000 kernel32!BaseThreadStart+0x34

Мне надо найти откуда вызывался этот код. Глядя на последнюю строчку предположил что поток создался через CreateThread. Что делал
1.Поставил бряку на CreateThread с условием чтобы адрес ф-ии потока был равен 64385А. Бряка не сработала, сразу выскочила бряка на ReportEventA.
2.Поставил бряку на CreateThread без условий. Бряка не сработала, сразу выскочила бряка на ReportEventA.
3.Нашел в иде эту функцию и нашел единственный вызов CreateThread которой берет ее адрес в качестве параметра. Поставил на это место бряк и опять нулевой результат.

Подскажите плиз что еще можно сделать ?
Может как то по еще управление в это место попасть (без CreateThread) ?



Ранг: 40.0 (посетитель), 1thx
Активность: 0.030
Статус: Участник

Создано: 17 марта 2006 18:11
· Личное сообщение · #2

bpm ReportEventA x
Тогда вылезет предыдущий адрес, т.е. адрес с которого был сделан переход.



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

Создано: 17 марта 2006 18:17
· Личное сообщение · #3

откуда вызывается ReportEventA известно - см стек
надо узнать кто запускает поток



Ранг: 40.0 (посетитель), 1thx
Активность: 0.030
Статус: Участник

Создано: 17 марта 2006 18:26
· Личное сообщение · #4

Этот адрес kernel32!BaseThreadStart+0x34 ? (Просто листинг странный какой-то)
А поток точно создаётся? А то можно запихать в стек любой адрес и передать управление jmp'ом.
Если создаётся ловить надо NtCreateThread, этой функции не избежать.



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

Создано: 17 марта 2006 18:45
· Личное сообщение · #5

теоритически раз есть BaseThreadStart значит создается поток
к тому же раз стек начинается с этой ф-ии значит точно это начало потока
но NtCreateThread тоже не брякается, сразу вылетает ReportEventA



Ранг: 40.0 (посетитель), 1thx
Активность: 0.030
Статус: Участник

Создано: 17 марта 2006 19:21
· Личное сообщение · #6

Всё-таки лучше посмотреть число потоков до и после. Ведь если создаётся поток, native API функция NtCreateThread в любом случае должна запускаться.



Ранг: 62.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 18 марта 2006 14:15
· Личное сообщение · #7

Может прога значение esp поменяла, чтобы думали, что это новый поток? Что там с числом потоков?


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


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