Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> exe, найти OER 
:(
    Опции темы
Балбес
Дата 19.11.2004, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 19.8.2004

Репутация: нет
Всего: нет



Привет, ребяты!
Подскажите, плиз как в exe найти точку входа (OER) и вывести ее в Memo
или в Edit.
Всем пасиб smile
PM MAIL   Вверх
Zero
Дата 20.11.2004, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Здарова Балбес!!! smile Рад опять тебя слышать, я смотрю теперь ты не обзываешся... smile
Я не совсем понял твой вопрос, точнее я не знаю что такое точка Oer, но если ты сам знаеш про эту батву, т.е. что она где-то есть, т.е. саму структуру, то можеш представить этот файл как нетипизированый, и например побайтно читывая, найти свою точку.
А хотя если ты знаеш её конкретное место (номер компонента), то можеш сразу с помощёю процедуры SEEK установить указатель в нужное место и считать её.
PM MAIL ICQ   Вверх
p0s0l
Дата 20.11.2004, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Не знаю, что за OER smile, но точка входа определяется так:
(вместо ParamStr(0) подставь имя файла)
Код
procedure TForm1.Button1Click(Sender: TObject);
var
 hFile, hMap : THandle;
 idh : PImageDosHeader;
 ifh : PImageFileHeader;
 ioh : PImageOptionalHeader;
 EP : Cardinal;

begin
 hFile := FileOpen (ParamStr(0), fmOpenRead or fmShareDenyNone);
 hMap := CreateFileMapping (hFile, nil, FILE_MAP_WRITE, 0, 0, nil);
 idh := MapViewOfFile (hMap, PAGE_READWRITE, 0, 0, 0);
 ifh := Pointer( Cardinal(idh) + idh._lfanew );
 ioh := Pointer( Cardinal(ifh) + SizeOf(ifh^) + 4 );
 EP := ioh.AddressOfEntryPoint;
 UnmapViewOfFile (idh);
 CloseHandle (hMap);
 CloseHandle (hFile);
 ShowMessage ('Entry point: 0x' + IntToHex(EP, 8));
end;



--------------------
С уважением, г-н Посол.
PM   Вверх
Балбес
Дата 21.11.2004, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 19.8.2004

Репутация: нет
Всего: нет



Zero smile
я сам не знаю что такое OER smile
НО я попробую...
p0s0l
пасиб, ты опять выручил! smile
PM MAIL   Вверх
Zero
Дата 21.11.2004, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата
я сам не знаю что такое OER

А зачем тогда написал??? smile
PM MAIL ICQ   Вверх
Балбес
Дата 23.11.2004, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 19.8.2004

Репутация: нет
Всего: нет



Zero
так надо найти ее и все тут было... smile
Это Entry point, кот. ближе, похоже, к асму...
p0s0l
блин, если б я был девушкой я бы тебя расцеловал smile

p0s0l
пример работает на ура!
А еще вопрос, тогда к тебе smile
Как изменить найденное значение и сохранить его. Да, конечно, exe не будет работать, но это как раз и нужно smile
PM MAIL   Вверх
p0s0l
Дата 23.11.2004, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата
блин, если б я был девушкой я бы тебя расцеловал
smile



Цитата
Как изменить найденное значение и сохранить его. Да, конечно, exe не будет работать, но это как раз и нужно

Прикольно, я код немного излишним сделал не задумываясь - т.е. файл проецируется не только для чтения, но и для записи.
Поэтому надо добавить всего 1 строчку:
Код

 EP := ioh.AddressOfEntryPoint; // старое значение
 ioh.AddressOfEntryPoint := <новое значение>;
 UnmapViewOfFile (idh);




--------------------
С уважением, г-н Посол.
PM   Вверх
Балбес
Дата 23.11.2004, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 19.8.2004

Репутация: нет
Всего: нет



p0s0l
ты гений smile

Огромное спасибо тебе и всем кто мне отвечает smile

Это сообщение отредактировал(а) Балбес - 23.11.2004, 23:01
PM MAIL   Вверх
p0s0l
Дата 23.11.2004, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Балбес, слушай, это у тебя работает ? smile
Я щас посмотрел - что-то я перепутал константы местами smile

Надо так:
Код

procedure ...;
var
 hFile, hMap : THandle;
 idh : PImageDosHeader;
 ifh : PImageFileHeader;
 ioh : PImageOptionalHeader;
 EP : Cardinal;

begin
 hFile := FileOpen (<имя .exe>, fmOpenReadWrite or fmShareDenyNone);
 hMap := CreateFileMapping (hFile, nil, PAGE_READWRITE, 0, 0, nil);
 idh := MapViewOfFile (hMap, FILE_MAP_WRITE, 0, 0, 0);
 ifh := Pointer( Cardinal(idh) + idh._lfanew );
 ioh := Pointer( Cardinal(ifh) + SizeOf(ifh^) + 4 );
 EP := ioh.AddressOfEntryPoint;
 ioh.AddressOfEntryPoint := $1234;
 UnmapViewOfFile (idh);
 CloseHandle (hMap);
 CloseHandle (hFile);
 ShowMessage ('Entry point: 0x' + IntToHex(EP, 8));
end;



--------------------
С уважением, г-н Посол.
PM   Вверх
Zero
Дата 24.11.2004, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата
p0s0l
ты гений

Цитата(p0s0l @ 23.11.2004, 23:54)
Балбес, слушай, это у тебя работает ?
Я щас посмотрел - что-то я перепутал константы местами

Прикольно, вот бы у меня всё так работало... smile
PM MAIL ICQ   Вверх
Балбес
Дата 25.11.2004, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 19.8.2004

Репутация: нет
Всего: нет



а у думал, что такое
Zero p0s0l smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0728 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.