Вниз
Скачать: CL | DM;

Обработка CallStack и SEH-фреймов   Найти похожие ветки 

← →
Пит   (2009-07-03 19:12) [0]

Может, у кого есть код решения следующих задач.

1) как можно более простая функция, которая в каком-либо удобоваримом формате возвращает стек вызовов как набор pointer"ов.

То есть, клиент присылает этот набор букв, являющихся списком Pointer"ов, а я с помощью MAP файла от данной версии EXE"шника преобразую это в именованную цепочку вызовов.

2) функция, которая будет возвращать список pointer"ов, последовательно указывающих на обработчики исключений, вытаскивая их из SEH-фреймов.

При этом нужен какой-то алгоритм генерирования некоего файла с соответствиями "указатель на обработчик исключения = имя модуля и строки" - это самое сложное, я так понимаю.

Ну и уточняющий вопросец - правильно ли я понимаю, что если между возникновением исключения и определенным обработчиком "стоит" TRYF, то останется информация только о последнем SEH-фрейме?
И аналогично для TRYE с ререйзом?


← →
Пит   (2009-07-03 19:14) [1]

Ну и такой ламерский вопрос в тему. Я делаю так:

procedure My;
begin
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 edit1.Text := inttostr(cardinal(@My));
end;


Почему я вижу адрес: 44F04C

Когда в MAP файле такая запись:

0001:0004E04C       My


← →
Игорь Шевченко ©   (2009-07-03 19:41) [2]

RTFM: Image base address, Code segment base


← →
Kerk ©   (2009-07-03 21:01) [3]

Помню, в молодости я kernel32.dll в памяти искал, бегая по SEH. Во времена были!


← →
atruhin ©   (2009-07-04 06:03) [4]

В jcl это реализованно, Alex Konshin с год назад, здесь выкладывал свою реализацию.
EurekaLog то же самое.


← →
Piter ©   (2009-07-04 10:32) [5]

Удалено модератором
Примечание: п. 5


← →
Kerk ©   (2009-07-04 11:43) [6]

Подозреваю, что в MAP-файле чего-то не то. Странно, что .text и .data одно смещение имеют. Посмотри лучше PE-заголовок каким-нибудь HIEW.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
15-1246973837
Пит
2009-07-07 17:37
2009.09.06
CallStack vs обработчики событий


2-1246361382
IrinaIrina
2009-06-30 15:29
2009.09.06
StringGrid записать в таблицу SQL


15-1246132859
@!!ex
2009-06-28 00:00
2009.09.06
Все... теперь я точно хакер.


15-1246640964
Тимохов_
2009-07-03 21:09
2009.09.06
Как узнать позицию каретки в TEdit?


15-1246890568
Unknown user
2009-07-06 18:29
2009.09.06
Онлайн хелп




   Наверх