|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Удушение (НЕ убиение) процесса
Цитата:
Есть жгучее желание следить за каждым шагом "чужого" процесса - приблизительно так: Код:
l:SuspendThread(hThread)... MoveProcMemToStream(PID, MS, str);//str - ReturnStringIfError CheckStream(MS); ... Если "Да", то огромное спасибо за то, что хто-чё подскажет... З.Ы. MoveProcMemToStream в оригинале было MoveProcessMemoryToFile (авторы: ЧеловекБорща, mss и GunSmoker - Огр Спс им) ...И был сначала ZX-Spectrum, а потом его T(urbo)ASS(e)M(bler)... И только на 7-й день (когда Интел купила Пентковского [из КБ Бабаяна]) - появился Pentium-I... А в Союзе P-II был ещё в 1978 году (точнее: Эльбрус [мультискалярный проц] только не рапространялся спекулянтами, а управлял ракетами и спутниками)... А лет с пяток назад Эльбрус-II ПЁР (но никак не ГНАЛСЯ как Селероны) на F(recuency):= 400 GHz... А самое парадоксальное - презентация состоялась в Минске... |
#2
|
||||
|
||||
Т.е. просто надо приостановить выполнение процесса?
Ну как вариант - запоминать начальные состояния потоков и суспендить все, при разморозке восстанавливать состояние. А цель то какая? Сделать дампер? — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
Цитата:
По теме - это называется отладка. Есть аппаратные отладочные регистры, есть флаг Trace, генерирующий исключение после каждой команды. Трассировать из третьего кольца прерывания невозможно, т.к. прерывание отправляется в ядро системы, на нулевое кольцо, и там системе уже не до всяких левых отладчиков. Также нельзя трассировать SysCall'ы. Против отладки есть антиотладочные приемы. Так что полностью автоматически некоторые приложения не отладить. Ежели надо трассировать вообще всё - можно смотреть в сторону эмуляторов, там теоретически это возможно. Но если отладчик на уровне эмулятора - придется как-то фильтровать поток исполнения, т.к. через отладчик будут проходить все процессы и система. Также можно попробовать Syser - ядерный отладчик. У меня он к сожалению не заводится. Пытаться писать такое самому не советую - 147% угробишь систему. И еще - сильно сомневаюсь, что даже не зная толком про прерывания получится сделать вменяемый отладчик и уж тем более уделать уже существующие. OllyDbg неплох, в IDA Pro есть еще и IDC/Pyton скрипты, через которые можно делать все что угодно непосредственно во время отладки (правда несколько медлительны эти скрипты). jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 26.10.2013 в 17:23. |