Доброго времени суток всем мемберам wasm.ru! Нашел в интернете, вот такую статью - http://timur.idhost.kz/2010/11/04/kak-vstroit-svoj-kod-v-ехе/. Все выполнял, именно так, как там описывалось. При сохранении, и запуске - все работает, при перезагрузке ПК - программа не запускается. Пробовал трассировку в ollydbg, пишет следующее "Don't know how to step because memory at adress 77A5EA11 is not readable. Try to change EIP or pass exception toprogram." На виртуалке также не работает. В чем может заключатся ошибка, и как ее исправить? =\ P.S. Проблема не только у меня, в коментарии, что после статьи, один юзер писал: "У меня при повторной загрузке изменйной программы в отладчике значение указтелея на строку INJECTED NOTEPAD не меняется, хотя программа загружается в другое место памяти. В результате в стек перед вызовом функции CALL MessageBoxA вместо строки заголовка и строки сообщения попадает левое значение."
Хардкодить адрес системной функции неправильно. После перезагрузки базы системных библиотек на Win7 меняются.
Хм.. таким "методом", пробовал произвольный Hello world обрабатывать - после рестарта все нормально работает. ПыСы (Hello world) Код на fasm (стыбрен с examples компилятора) Код (Text): include 'C:\fasm\INCLUDE\win32ax.inc' .code start: invoke MessageBox,HWND_DESKTOP,"bla bla bla",invoke GetCommandLine,MB_OK invoke ExitProcess,0 .end start Ладно, всем спасибо, пойду теорию подучу......
Выход найден, нужно делать вызов через таблицу импорта. В моем случае, это «CALL 40122C». Тогда все будет нормально работать. P.S. Тему можно закрывать!
Да, ежеле секция импорта пошифрована, то придется загрузчику конкретно поднапрячься дабы не впасть в когнитивный диссонанс