Главная страница
    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.012 c
14-1122567008
Knight
2005-07-28 20:10
2005.09.04
Где можно недорого остановиться в Москве недели на две?


1-1123944771
Настя
2005-08-13 18:52
2005.09.04
PopupMenu и событие OnClick


14-1123571795
Fin
2005-08-09 11:16
2005.09.04
Как работает Nat?


2-1065076382
N0wheremany
2003-10-02 10:33
2005.09.04
---!! Перебор символов !! ---


3-1122369826
Игорь М.
2005-07-26 13:23
2005.09.04
восстановление подключения с IterBase server ом





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