Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Внедрение кода в exe файл, Entry point 
:(
    Опции темы
Router
Дата 13.7.2009, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мне нужно вставить код в exe файл.
Хотелось бы узнать, обязательно вставлять код в одну из секций?
И, как вычислить точку входа для вставленного кода, если он в одной из секций или за приделами секций.
Ну короче есть смещение в файле, и мне нужно поставить туда точку входа, чтобы мой код выполнялся самым первым.
Код просить не буду, но хотелось бы услышать подробный алгоритм.
     Спасибо !
PM MAIL   Вверх
DRUID3
  Дата 13.7.2009, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



...Читать Касперского...


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
gambit
Дата 13.7.2009, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

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



Router, ты думаешь что сумел без палева свои желания??

Цитата

Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.


PM MAIL ICQ Skype   Вверх
dumb
Дата 14.7.2009, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



Цитата(DRUID3 @  13.7.2009,  22:41 Найти цитируемый пост)
Читать Касперского

как-то неконкретно. что имелось ввиду-то?

Цитата(gambit @  14.7.2009,  00:10 Найти цитируемый пост)
сумел без палева свои желания?

нет, он не сумел. fail. вирусоподобные выкрутасы сочиняем самостоятельно, либо гуглим.
PM MAIL   Вверх
Router
Дата 14.7.2009, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да похож на вирус, но это мне нужно для конкретной прикладной программы.

В PE заголовке есть число, которая называется точкой входа (AddressOfEntryPoint), и указывает на первые команды которые будут выполнятся при старте программы.
Так как я хочу чтобы мои команды которые я вставил выполнялись первыми, я хочу поменять AddressOfEntryPoint, так чтобы этот адрес указывал на мой код.
Но я не знаю как правильно вычислять ?

А что значит читай касперского, что имено читать и где ?  
PM MAIL   Вверх
dumb
Дата 14.7.2009, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



Цитата(Router @  14.7.2009,  09:09 Найти цитируемый пост)
для конкретной прикладной программы
...необходимый эффект достигается либо поочередным запуском через батник, либо пишется программа(launcher), совершающая необходимые действия и потом запускающая "прикладную".
PM MAIL   Вверх
GoldFinch
Дата 15.7.2009, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

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



Router, почитай немного про PE формат

вкратце, чтобы выполнить свой код до запуска .exe используются такие варианты:
1) пишется базонезависимый код на асме или на С, записывается в любое свободное место файла , точка входа переключается на него
(можно базозависимый, если база фиксирована)
2) пишется длл на любом ЯВУ, добавляется в таблицу импорта .exe, код DllMain() выполнится раньше чем код .exe

второй вариант весьма хорош, но требует наличия длл в папке с .exe что не всегда удобно
первый вариант достаточно сложен, но если кода мало - он подойдет

Куда писать свой код
1) в заголовок
2) в любую секцию где есть свободное место (много нулей)
3) в конец последней секции, увеличив ее размер в PE заголовке 
4) в новую секцию которую можно разместить в конце файла (можно и в середине)

Как пересчитать адрес точки входа
Значение в поле EntryPoint - это относительный адрес в памяти (rva), чтобы пресчитать смещение в файле в rva проще воспользоваться калькулятором (например в PE tools)

------
точку входа можно вообще не трогать, а написать туда jmp на твой код, выполнив потом убитые этим jmp'ом инструкции

Это сообщение отредактировал(а) GoldFinch - 15.7.2009, 11:56
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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