Не знаю в каком форуме задать вопрос и по каким словам искать... Есть чужой exe, обычный native. Нужно, что бы его выполнение начиналось с моего маленького куска кода (5-6 функций win32). Ну то есть нужно вставить мой кусок в начало кода. Это не вирус, т.е. никаких защит не нужно. Мой код есть в виде asm или c. Как это сделать? Может есть спец. утиль?
Через эту штуку http://www.wasm.ru/baixado.php?mode=src&id=358 скомпиль свой asm код в bin, да пихай этот bin в прогу куда хош.
В winhex'е ctrl-a, ctrl-shift-c. Прогу в ollydbg и в конце code секции выделяешь все нули до конца, Binary - Binary paste.
9Demon В win7 x64 sp1 не пашет NoImport_engine. Запускаю из архива hello.exe и ничего не происходит, хотя должен появится messagebox. hello.exe висит в памяти и грузит ядро на 100%. Вот такие дела.
если он у вас такой маленький и вставить именно в начало, то сам бог велел вписать его в заголовочную функцию (ту из которой мэйн-винмэйн вызываются). а если не влезет, то обратить внимание на выравнивание кодовой секции
CoolCmd Что вы имеете ввиду под native? Если native-подсистему, то как собираетесь вызывать win32-функции? Чтобы ваш кусок кода выполнялся в самом начале, нужно: - Найти место для своего кода и вписать его туда. Я предпочитаю конец секции кода, там обычно есть пустое место, заполненное нулями. - Переписать EntryPoint так, чтобы он указывал на ваш код. Это самый простой способ, но он может не понравиться антивирям. Тогда придется искать другие методы. - Убедиться, что вызываемые вами апи есть в таблице импорта (noimport, как я понимаю, избавляет от этой необходимости, тогда ищите способ его завести) - Убедиться, что ваш код передает управление исходной программе В общем, не так это просто Как выглядит ваш код?
ormoulu Это ясно, точку входа можно в hiew подправить. Но вот "ищите способ его завести" мне не удалось, поэтому пока оставил затею с изменением exe.