Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

Как узнать адресс процелуры   Найти похожие ветки 

 
Igit   (2005-07-14 23:51) [0]

Как узнать адресс процедуры?
Я делаю так ShowMessage(IntToStr(@Form1.Thread1Execute));
но ниячего не получается...


 
Palladin ©   (2005-07-15 00:55) [1]

это не процедура, а метод, и копать нкжго в сторону VMT


 
Palladin ©   (2005-07-15 00:56) [2]

"нкжго" ошибка клавиатуры, читать как "нужно"


 
Igit   (2005-07-15 01:09) [3]

Хочу зашифровать участок кода, а потом его расшифровать.
Хочу определить адреса в файле начала процедуры и конца

Сделал так:

procedure TForm1.Button1Click(Sender: PObj);
var a: dword;
   b: dword;
const z = offset Thread1Execute;
begin

asm
xor eax, eax
MOV EAX, offset Thread1Execute
MOV a, EAX;
end;
asm
xor eax, eax
MOV EAX, offset BitBtn1Click
MOV b, EAX;
end;
ShowMessage("Начало процедуры: "+IntToHex(a, 8) + #13#10 +
           "Конец процедуры: "+IntToHex(b, 8) + #13#10 +
           "Размер процедуры в b: "+IntToStr(b-a));
end;


 
Igit   (2005-07-15 01:10) [4]

ой, строка const z = offset Thread1Execute; закомментированна


 
Defunct ©   (2005-07-15 01:18) [5]

procedure TForm1.Button8Click(Sender: TObject);
var
  NE : TNotifyEvent;
begin
  NE := Button8Click;
  ShowMessage( Format("%0.8X", [Integer(TMethod(NE).Code)]) )
end;
CODE>


 
Defunct ©   (2005-07-15 01:28) [6]

> Igit   (15.07.05 01:09) [3]

асмовые вставки у Вас - zzzzzzzzz.

> xor eax, eax не нужен.
> mov eax, offset ... тоже не нужен

достаточно:

var
 A, B : integer;
 ...

asm
 mov a, offset Thread1Execute
 mov b, offset BitBtn1Click
end;
 ShowMessage( format("A=%0.8X, B=%0.8X",[A, B]) )
 ..


 
Igit   (2005-07-15 01:31) [7]

Хм, спасибо!


 
Piter ©   (2005-07-15 02:42) [8]

Palladin ©   (15.07.05 0:56) [2]
"нкжго" ошибка клавиатуры


ну да, конечно!
Сначала напьются пыва, потом в час ночи начинают путать клавиши - а выходит клавиатуры виновата!


 
Просто Джо ©   (2005-07-15 04:36) [9]


>  [8] Piter ©   (15.07.05 02:42)
> Сначала напьются пыва, потом в час ночи начинают путать
> клавиши - а выходит клавиатуры виновата!

Коллега! Не зарекайся, нешто сам не пьешь сего? ;0)


 
Digitman ©   (2005-07-15 08:04) [10]


> адреса в файле


и где же здесь обращение к файлу ?


 
Igit   (2005-07-15 09:32) [11]

2Digitman ©   (15.07.05 08:04) [10]

Ну, тут не в файле... но если вычесть базу должно получится в файле.


 
Digitman ©   (2005-07-15 09:40) [12]


> если вычесть базу должно получится в файле


не должно.
не учитываешь смещение секции.


 
Igit   (2005-07-19 11:17) [13]

2Digitman ©   (15.07.05 09:40) [12]

Бр, а как его посчитать?


 
evvcom ©   (2005-07-19 11:24) [14]


> Бр, а как его посчитать?

Тебе это не нужно. См. [5]


 
Digitman ©   (2005-07-19 11:38) [15]


> Igit   (19.07.05 11:17) [13]


см. MAP-файл


 
evvcom ©   (2005-07-19 12:11) [16]


> не учитываешь смещение секции

Еще если процедура/метод в dll, то в память она может загрузиться не по базовому адресу.


 
Digitman ©   (2005-07-19 12:14) [17]


> evvcom ©   (19.07.05 12:11) [16]


по барабану.

реальный ImageBase завсегда известен.



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

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.039 c
14-1123221709
panov
2005-08-05 10:01
2005.09.04
О конференции "Начинающим"


9-1115578163
Qwertyk
2005-05-08 22:49
2005.09.04
Как описать карту


2-1071249455
iWantToKnow
2003-12-12 20:17
2005.09.04
Вопросы по тематике :)))


3-1122297789
surkis
2005-07-25 17:23
2005.09.04
iif в SQL Server


1-1124171980
~ShamaN~
2005-08-16 09:59
2005.09.04
ComboBox