Видел как в одном ЕХЕ файле было "склеено" несколько ЕХЕ файлов подрят. Каким образом запустить второй файл не сохраняя его на диск?
Может можно как-то использовать ключ /STUB при компиляции, но ему почему-то не передается управление :(
А то вручную испровлять ссылки на таблицу импорта гиморно.
Не изобретайте велосипед...29.04.03 14:36 Автор: leo <Леонид Юрьев> Статус: Elderman
идейка небольшая...
меняешь в досовской заголовке - Offset to PE Header на адрес той секции где находится второй файл, и делаешь простой CreateProcess..
другой вопрос, как ты будешь вносить изменения в открытый файл.. :)
подожди...уточни откуда ты хочешь запустить второй файл? (я так понял что из загруженного первого)
Идея неплоха, но если прога вылетит, и не вернет обратно РЕ заголовок, первый файл больше не когда не получит управления. Может у кого есть исходник вируса , который заражает Win32 файлы?
пожалуйста27.04.03 23:29 Автор: vh <Дмитрий> Статус: Member
> Идея неплоха, но если прога вылетит, и не вернет обратно РЕ > заголовок, первый файл больше не когда не получит > управления. чего?
опять ничего не понял. Объясни пожалуйста по шагам, кто кого запускает и кто откуда запускается что возвращает. Я же не могу читать твои мысли :)
>Может у кого есть исходник вируса , который
> заражает Win32 файлы? вот с этого бы сразу и начинал :)
на z0mbie.host.sk как всегда есть почти все...там же содержится элементарный вирус (хотя на мой взгляд его можно было и еще более упростить для наглядности, но это дело автора. В принципе он довольно не плох для обучения) в исходниках с некоторыми комментариями.
Но одного его мне не хватило чтобы понять весь механизм заражения.
Почитай статьи на http://sbvc.cjb.net/ по написанию простейших вирусов под win32.
Объясняю: Есть 2 файла. Первый - большой, который я не могу изменить. Другой мой, и сним я могу делать все, что угодно.
Задача: из моего файла запустить первый. Оба они должны быть в одном ЕХЕ файле. Полностью эмулировать загрузчик не выход.
ЗЫ. Вообщем я переписал прогу, оставив в ней всего 2 импортированных функции: LoadLibraryA & GetProcAddres. Теперь проблема в другом: как заставить линковщик, для каждой секции назначить RVA самому, или можно изменить только ImageBase?
объясни точно каким образом файлы склеиваются27.04.03 14:10 Автор: amirul <Serge> Статус: The Elderman
> Просто склеены "copy file1 file2+file3", ну и подправлена( > добавлена) секция, чтобы он попал в память. Нереально. Как минимум надо настроить таблицу импортов и фиксапов (если есть). Потом, конечно можно передавать туда управление, но даже не представляю на фига такое может понадобиться.
Вообще-то я делал лоадер, который запускается, распаковывает/расшифровывает из секции данных другой exe-шник по тому же ImageBase, перенастраивает все таблицы и переходит на EntryPoint, но простым copy file1 + file2 file3 там не ограничивалась. Была специальная прога, которая по необходимому экзешнику создавала шифрованный.