
HamMer Добавление своей функции в EXE Не ругайтесь громко матом, я помню что
HamMer Добавление своей функции в EXE Не ругайтесь громко матом, я помню что
такая тема уже была... Просто я ее не читал. Вопрос собственно в следующем. Мне
нужно дописать кусок в Exe-шник длиной в 35 байтов. Места свободного нет,
поэтому нужно дописать свою функцию, как это сделать. Если можно примерчик или
где глянуть.
MozgC :: Цитата из FAQ’a:
Q: Мне нужно изменить работу программы для своих целей. Я хочу вставить на место
инструкций, которые хочу изменить, свои инструкции. Но "не хватает
места", т.е. мои инструкции занимают больше места, чем те, которые нужно
заменить. Что делать?
A: В этом случае составляем нужный нам код (процедуру). В конце кода добавляем
команду ret. Создаем новую
секцию (с помощью LordPE или ProcDump’a) и помещаем наш код в эту секцию. В
начале инструкций, которые нам надо изменить ставим вызов добавленной процедуры
(call), оставшиеся ненужные инструкции, до начала нужных, забиваем командами
"nop". Все. Только нужно будет быть внимательными с адресами, их надо
будет смотреть в отладчике.
Еще можно это поместить в конец последней секции, где есть обычно блок нолей, в
месте выполнения также нужно вставить сall на свой блок, а в конце своего блока
нужно написать ret. Если в конце файла нет нолей, можно их дописать и расширить
raw и virtual size последней секции и не забыть исправить imagesize
XoraX :: MozgC
когда же фак выйдет полностью?
MoonShiner :: Как вариант, когда по каким то причинам не проходит добавление
секции, можно добавить в секцию импорта свою либу с нужной функцией, ну а дальше
слегка поправить заголовок, чтобы твоя функция вызывалась.
freeExec :: MoonShiner
цитата:
добавить в секцию импорта свою либу с нужной функцией
Каким софтом?
[RU].Ban0K! :: freeExec пишет:
цитата:
Каким софтом?
А в рукопашку нельзя?
HamMer :: Так как Мозг рассказал у меня получилось и я все замечательно поломал.
А вот как в ручную в секцию импорта добавить... У меня прога выбрасывает
сообщение после этого о недопустимой ошибке, ну а дальше знаете куда посылает...
Guest :: HamMer проверь почту
MoonShiner :: 2freeExec: Да руками хоть в HexWorkshope каком нить вбить, если
имеется представление о PE-формате. А если там нет места или по каким то другим
причинам не катит, я делаю извратно:) Гружу импрек и секцию импорта вставляю в
конец файла, а импрек в ней оставляет много пустого места. Ну а дальше по
аналогии с другими либами. Когда то я ковырял импорт в импрековском формате и
добавлял прямо там, а потом приклеивал секцию. Даж приблуда хранилась где то,
тока винт сдох:(

|