Как бы это меня не удивляло, при словах "джойнер на php" у многих возникают
эмоции типа "Вау! Как круто! Вот бы исходники посмотреть!" Цель данной статьи -
развеять все мифы о этих, с позволенья сказать, скриптах и показать, что они
не представляют из себя что-либо сверхестественное. Далее по тексту мы напишем
такой джойнер. Разобраться должен даже девятиклассник. Потребуются минимальные
знания php и навыки программирования на C++ под Windows.
Лишний раз напомню, что целью данной статьи не является написание мега-крутого
джойнера со сменными иконками, упаковками и крипторами в четыре слоя. Работать
с Pe-форматом нам тоже не придется (пожелеем девятиклассников :) ). Итак,
принци простой: Есть обычный исполняемый файл. Как известно, маздаю будет
глупоко чихать, если в его конец что-то дописать. Вот мы и допишим склеиваемые
фалы. За головой нашего джойнера будет следовать такая структура:
[Files Count (DWORD)]
[Buffer Size (DWORD)]
[File1 Size (DWORD)]
[File1 Content (Variable)]
[File2 Size (DWORD)]
[File2 Content (Variable)]
............. etc
Где Files Count - число склееных файлов (мы можем склеить их сколько угодно),
Buffer Size - размер буфера, который должен выделить под свои нужды джойнер
(фактически это поле равно размеру наибольшего из склеиваемых файлов).
Далее идет File Count записей Размер:Содержимое. Вот сурец джойнера:
Я надеюсь, что этот код не нуждается в коментариях. Скажу только, что после
того, как программа будет собрана, нужно изменить в исходном коде SELF_SIZE
на размер бинарника и собрать его снова.
Теперь осталось состряпоть... кхе-кхе... GUI ). Код приведен ниже.
Переменная $file содержит откомпилированный бинарник в base64. Получить
ее значение можно простым скриптом
Пирнцип работы скрипта на мой взгляд также не нуждается в пояснении.
Фактически это все, что я хотел сказать. Надеюсь среди читателей не найдутся те,
кто найдет в этом тексте что-то сложное. Могу только добавить, что на ... эм..
написание этого текста с приготовлением всех сорсов и тестированием у меня ушло
что-то в районе часа. Все желающие могут протестировать джойнер, зайдя по ссылке
http://drmist.ru/joiner/.
В качестве заключения напомню, что данная статья со всеми исходными кодами
является моей интелектуальной собственностью, потому если читателю захочется
где-то ее выложить, он должен оставить ссылку на САЙТ НАШЕЙ КОМАНДЫ:
http://www.security-teams.net. В противном случае, он не сможет избавится от
угрызения совести до последней секунды своего жалкого существования :).
Кроме того, автор не несет ответственности за чужие действия в том случае,
если материал даннгой статьи будет использован в противозаконных целях.
Вся информация дана в ознакомительных целях.
.:: Special for Open Team E-zine ::.
Автор: drmist.