Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];

Вниз

Адрес вызывающего функцию   Найти похожие ветки 

 
MultIfleX   (2009-04-24 14:52) [0]

Имеем в библиотеке stdcall функцию с 4 параметрами (PAnsiChar,Pointer,LongBool,Integer). Нужно узнать с какого адреса осуществолен вызов.

Спасибо.


 
MBo ©   (2009-04-24 15:20) [1]

адрес возврата лежит в стеке перед первым параметром


 
MultIfleX   (2009-04-24 15:43) [2]

ага, сделал так:

asm
mov   eax, [ebp+$04]
sub   eax, $00000002
push  eax
mov   eax, [ebp+$14]
push  eax
mov   eax, [ebp+$10]
push  eax
mov   eax, [ebp+$0C]
push  eax
mov   eax, [ebp+$08]
push  eax
call  mrRegisterMethodWithAddr
end;
mrRegisterMethodWithAddr - аналогичная функция с пятым параметром Addr
вродебы работает, хоть и кривовато выглядит.
MBo, спасибо!


 
MultIfleX   (2009-04-25 10:45) [3]

Вопрос в догонку: как узнать какая библиотека (*.dll) загружена в это адресное пространство? Загружены все по LoadLibrary, т.е. есть Handle. Где-то это описывается? Ну тобишь посмотреть какие библиотеки подцеплены к твоему приложению, и где в памяти распологаются?


 
MultIfleX   (2009-04-25 12:55) [4]

Тогда другой вопрос, каким образом можно определить сколько памяти выделено под ДЛЛ при LoadLibrary. В принципе Ptr( LoadLibrary(,,) )-это начальный адрес, как узнать занимаемую область - это проблема. Процесс естессно мой.


 
MultIfleX   (2009-04-25 13:06) [5]

Решил вопрос прочитав PE заголовок модуля.


 
GrayFace ©   (2009-04-30 10:59) [6]

проще так:
function RegisterMethod(param1: PAnsiChar; ...);
var addr:^pointer;
begin
 addr:= pointer(@param1);
 dec(addr);
 addr^ - искомый return address
end;


MultIfleX   (25.04.09 13:06) [5]
Решил вопрос прочитав PE заголовок модуля.

эти вопросы решают 1-2 функции - см. ShowException (тот, что в SysUtils) в сорсах.



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

Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
2-1263901034
webpauk
2010-01-19 14:37
2010.03.21
Приведение типов


6-1214555457
Галинка
2008-06-27 12:30
2010.03.21
сокеты и ip


2-1263985991
][ab
2010-01-20 14:13
2010.03.21
TBitBtn изменение свойства Kind


15-1262443101
ttt_tkn
2010-01-02 17:38
2010.03.21
FireBird - Windows 7


2-1263667987
Inna21
2010-01-16 21:53
2010.03.21
DBASE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский