|
|
| Посл.отвђт | Сообщен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 |