![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Адреса функций в памяти
FearG0 © (2007-09-27 04:53:00)Интересует вот какой момент:
Допустим есть процедура:
procedure TForm1.Button1Click(Sender: TObject);
begin
SubProc1;
beep;
ShowMessage('Период использования программы истёк!');
SubProc2;
end;
Если я возьму адреса @SubProc1 и @SubProc2 то в памяти между ними будет находится код
beep;
ShowMessage('Период использования программы истёк!');
?
lpstrlpstr (2007-09-27 15:43:00) [81]аналитически по сигнатурам )
0хffff написал самое простое и верное решение
Сергей М. (2007-09-27 15:43:00) [82]
> можно ли каким-то аналитическим способом узнать
Можно. Например. по сигнатурам.
FearG0 (2007-09-27 15:41:00) [83]2 oxffff Спасибо за пример.
А вообще можно ли каким-то аналитическим способом узнать нахождение определенного участка кода в exe шнике? Без всяких меток.
oxffff (2007-09-27 14:27:00) [84]...
label X1,X2;
var blocksize:integer;
begin
asm
mov eax,offset x2;
sub eax,offset x1;
mov blocksize,eax;
end;
x1:SubProc1;
beep;
ShowMessage('Период использования программы истёк!');
x2:SubProc2;
showmessage(inttostr(blocksize));
end;
Сергей М. (2007-09-27 08:05:00) [85]
> Если я возьму адреса @SubProc1 и @SubProc2 то в памяти между
> ними будет находится код
Нет.
Zeqfreed (2007-09-27 05:29:00) [86]Понятия вызов функции и тело функции не тождественны.