Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
ВнизКак узнать адресс процелуры Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c