Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
5-1097147033
far
2004-10-07 15:03
2005.09.04
Потеря ссылки на компонент


1-1123770279
IceBeerg
2005-08-11 18:24
2005.09.04
Как в ячейку StringGrid а вставить ComboBox?


3-1122040445
sergg
2005-07-22 17:54
2005.09.04
Можно ли просматривать содержимое полей типа Memo в DBGide?


2-1078183845
HF-Trade
2004-03-02 02:30
2005.09.04
Курсы ;_))


14-1123732123
XenoX
2005-08-11 07:48
2005.09.04
Люди плиз help нужны иконки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский