![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
Добрый вечер форумчане !
Не могли бы Вы мне подсказать как склеить два PE EXE файла в один и чтобы при запуске управление переходило второму EXE. Я делаю следующее: 1. Открываю EXE. 2. Записываю в него машинный код другого, в последнюю секцию как виртуально так и физически. 3. Меняю аттрибуты данной секции на чтение, исполнение и запись. 4. Устанавливаю AddressOfEntryoint на точку входа внедряемого EXE. 5. Увеличиваю SizeOfImage, SizeOfRawData последней секции, Misc.VirtualSize последней секции на тело внедряемого EXE. Но по какой-то не понятной мне причине EXE просто портится и появляется отладчик Windows. ![]() Этот вопрос я рассматриваю категорически в образовательных целях. Пожалуйста дайте ответ или ссылочку на данный вопрос. [email protected] |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
а импорты?
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
А что с таблицей импортов делать ?
|
|||
|
||||
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
Кто нибудь поможет разобраться с данным вопросом
![]() |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
1) во первых у любого ЕХЕ есть image base тоесть адрес на который этот ехе надо загрузить для корректной работы
у тебя этот адрес для второго ехе явно не соблюдается 2) нужно заполнить Import table у второго ехе так как она у тебя остается пустой 3) при загрузке ехе в память виртуальный адрес секций вовсе не равен физическому смещению в файле тоесть что надо делать после загрузки первого ехе в память сдвинуть второй ехе на image base разложить его секции по нужным смешениям относительно image base заполнить таблицу импорта и подгрузить необходимые библиотеки ну вот в 2х словах все -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
У меня имеются 2 exe и ImageBase одиноковы - 0x00400000. Тоесть получается так, что как только первый EXE закинут по адрессу 0x00400000 нужно сдвинуть 2 exe на 0x00400000. Я так понял ? Можно какой-нибудь примерчик демонстрирующий эту реализацию ? |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
upx исходники
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
Большое спасибо oleg1973. Щас буду разбираться, надеюсь что наконец-то решу вышепоставленную проблему.
![]() |
|||
|
||||
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
Плиз помагите разобраться с данным кодом их UPX.
А именно я не пойму, зачем прибавлять к всему образу файла каталог данных, и что дает число 65536 ? Может это под какую-то заглучшку. Вобщем хелп ми ![]() |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
upx и не только он а почти все пакеры ехе файлов работают примерно так:
создается ехешник с image base как у пакуемого файла в этом ехе делается 2 секции секция номер 1 имеет физический размер = 0 а вот виртуальный размер равный сумме всех секций пакуемого файла с учетом их выравнивания в памяти при загрузке секция номер 2 является непосредственно кодом распаковщика + упакованные данные далее при запуске такого файла происходит следующее секция номер 1 "резервирует" место для распакованных данных распаковщик распаковывает данные и переносит их в секцию номер 1 затем заполняет таблицу импорта и передает управление на точку входа в оригинальном файле (ну еще иногда освобождает память занятую секцией номер 2) а чито делает число 65536 я не знаю ))) -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
Большое спасибо за помощь, но у меня есть вопросы.
1. Этот exe'шник создается физически(На диске) или в адресном пространстве данного процесса ? 2. Точка входа должна указывать на оригинальную точку или нет ? |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
ехешник делается на диске
точка входа указывает на нащу процедуру распаовки и так далее -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
А при склеивании тоже нужно создавать EXE на диске ?
|
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
естестно
береш файл ну к примеру пакуеш его там какнить потом нужно сделать ехе в котором будет 1) распаковщик 2) пакованый файл ![]() вот структура ехе после упаковки его upx секция upx0 имеет физический размер = 0 в ней будет потом лежать распакованый ехе -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
SIGAra |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.2.2006 Репутация: нет Всего: нет |
У меня есть 2 вопроса
1)Что возвращяет эта функция ? Адреса функций или названия ? 2)Точка входа при сжатии UPX указывает на какую функцию ? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |