Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Запись ассемблера в готовый exe
 
Пишу сейчас криптор.. столкнулся с проблемой
как можно в уже существующий ехе файл записать команды ассемблера?
конечно есть вариант приготовить все эти коды заранее, а потом в с++ просто их туда записать, но это не универсально. Необходимо именно динамически записывать команды в ехе. (собственно как сгенерировать опкоды для этих команд динамически?)
существует ли какой-то способ записи в ехе файл ассемблерных команд непосредственно из сpp файла?
 
закройте тему :)
секлаб подглючил :)
 
вроде,должны опкоды помочь.. )
 
Шаровичок,

Бинарный код выносим в динамически получаемые области оперативной памяти и передаём на него управление из основного модуля. А сами подготовленные команды кладём в дополнительный файл данных который можно считывать например из stdit. Данный тип программ называется "реентерабельными" ("повторновходовыми")и великолепно отработан на мэйнфреймах IBM S/360 и S/370. Идея проста - запрашиваем область ОЗУ, копируем в неё модифицируемый код и/или данные, изменяем его, и передаём на его точку входа управление, после выполнения его алгоритма возвращаемся в основную программу которая освобождает использованную им рабочую область памяти. Сами же код и данные основной программы при выполнении не меняется! При этом образ программы загружается в ОЗУ один раз, его могут использовать параллельно несколько задач, экономится оперативная память. Естественно, что в основной программе надо предусмотреть буфера для хранения адресов выделенных областей ОЗУ и процедуру их освобождения после возврата управления из модифицированного кода в основную программу.
 
Цитата
как можно в уже существующий ехе файл записать команды ассемблера?
Ищи про формат pe exe файла - узнаешь куда писать. Если не знаешь КАК писать - лучше берись за что-то другое...

Цитата
собственно как сгенерировать опкоды для этих команд динамически?
Лучше их подготовить заранее. Врядли в крипторе реально нужно динамическое создание машинных команд, т.к. список используемых команд будет по моему разумению невелик. Но если уж очень надо, то читай здесь: http://www.citforum.ru/book/cook/intel.shtml и здесь http://protect.htmlweb.ru/disasm.htm. Также можно посмотреть в книге К.Ирвина "Язык ассемблера для процессоров Intel" (есть в электронном виде).

Цитата

существует ли какой-то способ записи в ехе файл ассемблерных команд непосредственно из сpp файла?
Сформулируй вопрос по-другому,неясно что ты хочешь сказать
 
Цитата
Soldier of Fortune пишет:

                                                               Цитатакак можно в уже существующий ехе файл записать команды ассемблера?
Ищи про формат pe exe файла - узнаешь куда писать. Если не знаешь КАК писать - лучше берись за что-то другое...

И про пе формат, и про то как писать я в курсе. точку входа передвинул. проблема стояла в том, как, имея некий ассемблерный код, вставить его в готовый ехе файл. (просто сразу про опкоды команд ассемблера забыл)
нашел ссылку:
http://www.wasm.ru/baixado.php?mode=doc&id=129
которая мне помогла разобраться
Цитата
Soldier of Fortune пишет:
Цитатасобственно как сгенерировать опкоды для этих команд динамически?
Лучше их подготовить заранее. Врядли в крипторе реально нужно динамическое создание машинных команд, т.к. список используемых команд будет по моему разумению невелик. Но если уж очень надо, то читай здесь: http://www.citforum.ru/book/cook/intel.shtml и здесь http://protect.htmlweb.ru/disasm.htm. Также можно посмотреть в книге К.Ирвина "Язык ассемблера для процессоров Intel" (есть в электронном виде).
спасибо
 
WASM обращайтесь на спец сайты
Страницы: 1
Читают тему