|
#1
|
||||
|
||||
image address
Привет форум!
Такой вот вопрос. Хочу с помощью отдельной программы зашифровать кусок exe файла содержащий некоторую функцию, а при выполнении этого exe он будет сам свой кусок расшифровывать. Вобщем задача тривиальная, определить адреса этого блока в момент шифрации отдельной программой и адрес такого же блока при дешифрации самого себя. Делаю так нахожу всякими череззаднийпроходными способами адрес в памяти самого процесса получаю Addr1 потом загружаю в мемористрим этот же exe нахожу там этот же кусок по адресу Addr2 дальше определяю смещения Ofs1=Addr1-Hinstance Ofs2=Addr2-MS.Memoryв итоге Ofs1<> Ofs2 Если посмотреть в VMMap то адрес имидж блока начинается с header который 4КБ а адрес .tеxt с адреса $00401000 но разница меньше 4КБ Как понять что это за дельта где ее определить получается Ofs1-Ofs2= 3072 байт? Хммм.. перефразирую вопрос. есть тестовое приложение, в нем есть к примеру функция "Test", я могу получить ее адрес: Addr1:=Addr(Test); если по этому адресу просто вычитать данные получим к примеру "C3 8D 40 00 55 8B EC B8 ...." затем я запускаю другое приложение в котором, загружаю в мемористрим exe файл моего тестового приложения и вот вопрос, как мне определить позицию меморитсрима по которой я прочитаю тот же блок "C3 8D 40 00 55 8B EC B8 ...."???? Последний раз редактировалось a.n.d.r.e.w, 24.09.2015 в 16:11. |