Доброго времени суток. Пишу программу, внедряющуюся в PE файл, создавая дополнительную секцию кода в конце. Читал статьи Касперского тут: http://www.insidepro.com/kk/018/018r.shtml В принципе, все понятно, только вот остается вопросы: 1) Как использовать свои данные? Помещать их в секцию кода? Т.е. даже простейшая программа, выводящая Message Box, потребует создания константы с текстом сообщения в секции данных. 2) Как собственно вызвать Message Box? Мне нужно убедиться, что в таблице импорта есть GetProcAddress, и собственно вызывать так: GetProcAddress (..."MessageBox"...), затем использовать этот адрес для вызова. И вообще, правильно ли я понимаю алгоритм внедрения: 1) Допустим, программа (X-code, пользуясь терминами статьи) уже написана. Достаем ее секцию кода из .exe, пишем как последнюю секцию файла. 2) Анализируем таблицу импорта, убеждаемся, что там есть "GetProcAdderss" 3) Переделываем OEP на 1-ю команду новой секции кода 4) Добавляем в конец jmp на старую OEP
еще можно использовать LoadLibraryA/GetProcAddress. Вообще механизмов очень много. Касперски описал только общие идеи. Очень советую почитать документацию на формат PE. смотря на сколько вы хотите изменить начальный файл. Если просто начинаете, это то да, можно в добавленную секцию Вашего кода. Вообще иногда сканируют таблицу импорта и вызовы делают не через GEtPRocAddress
DUDEintA Конечно ты выбрал "учебник" ))) Пересмотри лучше http://www.wasm.ru/publist.php?list=6#series_12 Или http://vx.netlux.org/tpoc/Articles/VirTut2.htm на крайний случай. В обеих кажется твой случай - добавление новой секции.
Не обязательно. Можно найти базу kernel32 в адресном пространстве процесса, и через таблицу экспорта добраться до GetProcAddress. Т.е. поиск адреса GetProcAddress разбивается на две задачи: 1. Поиск базы kernel32. Тут несколько способов. 2. Парсинг таблицы экспорта и вычисление адреса GetProcAddress. P.S. Тему наверное надо было в разделе WASM.VIROLOGY создавать.
DUDEintA И вообще-то неплохо усечь, что Крис Касперски и Касперский - это разные люди Это оттого что много спрашиваешь и мало читаешь. Твои вопросы освещены в статьях и на форуме уже в 100-й раз задаются.