· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Как создать Msgbox

Посл.отвђт Сообщенiе


Дата: Окт 8, 2003 20:58:17

Кто может помочь дать чистый машинный код вызова msgbox?
У меня есть прога, которая добавляет секцию и прописывает туда код. Так вот мне нужно чтобы появлялся msgbox при старте проги. Тоесть, как в любой екзешник добавить msgbox? Код нужен не на асме, а такой как показывает Hiew в листинге. Спасибо.


Дата: Окт 8, 2003 21:13:24

Не всё так просто... Во-первых, импортирует ли данная прога USER32!MessageBoxA? В PE Tools - PE Editor можно это дело поправить. Во-вторых, код для вызова MessageBox зависит от относительного положения (смещения) переходника на USER32!MessageBoxA в самой IAT. Короче, сначала нужно найти символ MessageBoxA в IAT. Если нету, нужно дописать. Потом уже добавлять call XXX в код программы.


Дата: Окт 9, 2003 18:40:08

Здесь на сайте есть пример:
This is a small example of how to get the ImageBase of
Kernel32.dll and how to get addresses of the kernel's
LoadLibrary and GetProcAddress functions without any APIs !

Моя прога добавляет секцию. В секцию я хочу прописать код, который вызывает Msgbox. То есть прога может добавить такой код к любому екзешнику.... Был нормальный exe, а при запуске стал выдавать Msgbox. Я пришлю свою прогу тому кто поможет в коде..... А прога добавлять может любой код.. Какой пропишешь в ini файле. Тоесть коды хранятся в отдельном ini файле, а вы туда прописываете машинные коды. А прога добавляет эти коды в любой екзешник. Тоесть можно добавлять не только код Msgboxa. Сейчас прога просто шифрует 1 секцию. Я хочу расширить возможности... Я не силён в асме, но надеюсь кто-то поможет....


Дата: Окт 9, 2003 18:52:00

Пример не смотрел, но смысл должен быть такой - ищется image base kernel32.dll (во всех системах она явно или неявно есть в процессе и адрес внутри находится на вершине стека в начале программы), потом по таблице экспорта ищем GetProcAddress, дальше LoadLibrary для user32, поиск адреса MessageBoxA. kernel32 ищется сначала выравниванием до меньшего 1000h и проверкой на заголовок exe, если не прокатило - еще отнимаем 1000h пока не найдем.
Я не силён в асме, но надеюсь кто-то поможет....
Если протектор пишешь - лучше в этом деле ориентироваться. А чем шифруешь?


Дата: Окт 9, 2003 19:34:35

имхо неправильно идешь до kernel32.
Я использовал следующий подход:
получал EIP, и бежал по нему вверх, пока не находил начало проекции экзешника.
потом парсил PE-хедер и искал знакомые мне импорты (Kernel32!GetProcAddress) после этого я находил так же начало заголовка kernel32 и оттуда вытаскивал экспорты на LoadLibrary, GetProcAddress , ну а дальше уже все совсем просто.


Дата: Окт 9, 2003 19:40:48

Я использовал следующий подход:
Ага, а если нету знакомых тебе функций, как тогда?


Дата: Окт 10, 2003 12:00:25 · Поправил: All

Мою прогу можно скачать: http://programs.fatal.ru/progi/pe-patcher.zip

Там можно добавлять любые ассемблерные коды. Возможности программы приличные... но мне надо помощь... Например идеи, какие коды можно добавлять, кроме шифрования... и т.д. и т.п


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.081