Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #12  
Старый 03.10.2015, 21:30
Аватар для a.n.d.r.e.w
a.n.d.r.e.w a.n.d.r.e.w вне форума
Прохожий
 
Регистрация: 01.07.2015
Сообщения: 28
Версия Delphi: delphi xe7
Репутация: 10
По умолчанию

в общем кактотак

Код:
program TestProj; 
... 
var
 data_m, data_f: pointer;
 ofs1, ofs2, pos: Cardinal;
 dh:TImageDosHeader;
 _text:TImageSectionHeader;
 ... 
begin
 data_m:=Addr(StartPointProc); //адрес какой-то функции в памяти процесса
 CopyMemory(@dh, pointer(HInstance), SizeOf(TImageDosHeader)) ; //читаем заголовок dos 
 CopyMemory(@_text, pointer(HInstance+dh._lfanew+
 sizeof(TImageNtHeaders)), SizeOf(TImageSectionHeader)) ; //читаем заголовок первой секции (секции кода) 
 ofs1:=Cardinal(data_m)-HInstance; //смещение адреса функции от начала имиджа
 ofs2:=ofs1-_text.VirtualAddress; //смещение адреса функции от начала секции
 pos:=_text.PointerToRawData + ofs2; //смещение адреса функции от начала файла
 ms:=TMemoryStream.Create; 
 ms.LoadFromFile(ParamStr(0)); //загрузим стрим из этого же EXE
 data_f:= ms.Memory;
 inc(Cardinal(data_f), pos); //получим адрес того же куска в памяти стрима 
//теперь если вычитать небольшой кусок данных из 
// data_m - памяти процесса 
// data_f - памяти стрима загруженного из файла 
//они будут эквивалентны
 
типа того
http://saveimg.ru/show-image.php?id=...f93eafbd5d213a
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:52.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter