![]() |
Вирус в исходных кодах на Дельфи
Цель данной статьи – рассказать о способах включения стороннего кода или приложений в комплект исходного кода проекта Дельфи. Всё, описанное в статье, только для ознакомления с возможными опасностями.
Статья рассчитана на аудиторию начинающих программистов на Дельфи, материал статьи потребует для освоения наличие Дельфи и навыков кодинга на нём. Терминология: Дельфи – среда визуальной разработки приложений, а с версии 7, ещё и одноименный язык программирования; DCU-файл – модуль с пред-скомпилированным кодом; RES-файл – ресурсный файл, ресурсы из которого, при компиляции включаются в её результат. Начну статью с классификации способов осуществления такого. Суть в том, чтобы любым методом сделать так, чтобы наш код незаметно лежал в сорцах проекта Дельфи: http://cb10.nm.ru/dpr_clear.gif И при компиляции был вовлечён в выходную программу, которая стала чем-то вроде джоинера или непосредственно несла код. Способы, когда вредоносный код запускается уже при открытии исходников, в среде разработки здесь упоминаться не будут. Итак: http://cb10.nm.ru/dpr_vir_shema.gif 1) Суть этого метода во вложении в директорию проекта приложения-вируса и запуска его из того приложения, исходники которого подвергаются компиляции с запуском. малоэффективен вследствие явности. 2.1.1) Делаем любой файл с сорцами виря и включаем его, как include. А видимое расширение может быть, например, ico. 2.1.2) Пишем наш код виря в отдельном модуле, компилируем его Дельфёй в dcu. Затем называем dcu как-нибудь красиво, так, чтоб было видно, что там разные необходимые функции есть. А с кода проекта где-нибудь включаем dcu в uses и вызываем функцию виря, как будто бы как полезную. (Не забываем удалить одноименный pas). Пример прилагается (после компиляции в результирующую программу включается код для перезагрузки системы из модуля Unit2.dcu). 2.1.3) То же, что и 2.1.2, но без компиляции. От неопытного программиста просто спрятать нужный код. Скажем, отделить его от основного кода пустыми строками далеко вниз. Или использовать запутанные, нечитабельные названия процедур и функций. Да и полезного кода может быть очень много, так что "затесать" среди него иной можно вполне удачно. 2.2.1) Мы имеем в своём распоряжении уже готовый exe, скажем пинч. Тут мы можем положить его в файл res с помощью редактора ресурсов, например, Restorator. res-файлы редко кто просматривает. Затем в программу достаточно включить код извлечения из ресурса и запуска (сделать его сокрытие, как в 2.1). 2.2.2) Берём наш пинч, и разбираем его на последовательность байт. Вставляем всё это в pas-файл с функцией, которая все эти байты собирает в файл и запускает его. Называем функцию «мирно» и компилируем. Получаем модуль dcu, при вызове из которого функции, например CoolStyle, у нас извлекается и запускается пинч. Обычно к модулям dcu доверительное отношение. Особенно если взять действительно полезных функций, добавить своё "добро" и откомпилить в такой модуль. Здесь остановлюсь поподробнее на самой методике использования. (Можно скачать пример). Перед тем, как вставить в код модуля последовательность символов влагаемого вируса типа «#12+#87+#124+#3…» эту последовательность нужно получить. Программа, делающая это поставляется с примером. Там мы выбираем бинарник и сохраняем его в текстовик, получая из строки вида «MZPhglea» такое: 77+#90+#80+#104+#103+#108+#101+#97+#. Вставляем это в следующий код Unit2.pas так: Код:
unit Unit2;Заключение. Статья и примеры были созданы исключительно в демонстративных и упредительных целях. В ходе работы использовалась среда Delphi 7, а также дополнительные программы: Small Delphi и Binary Converter (от автора). Статью (как и исходный код) можно дополнять, переопубликовывать с разрешения автора. Предложения и критика ожидаемы и желательны. |
было: как сломать форум
стало: где достать..... |
Ну и кому это может пригодиться? Статья чисто теоретического плана в стиле "я изучаю Delphi"
|
Дело в том, что я встречал такие компоненты, которые поставлялись в виде тех же dcu-файлов, но использовании которых в свою программу включался нежелательный код. Как правило это были рекламные функции. А два раза это был троян.
Думаю, статья является не теоретической, а скорее теоретико-практической, т.к. метод 2.2.2 непросто упомянут, но описан. К тому же многие, кто ещё и занимаются кодингом здесь, кодят на Дельфи. Потому я счёл, что актуальность статьи достаточно велика. Помимо сказанного, статья может стать основой для последующих публикаций в таком тематическом направлении. |
Цитата:
|
Я сам работаю с Delpi, кодинг мне очень интересен. А такой матерьял сильно помогает ;)
Статейко как и в стиле прошлых! Автор, просто суперр! + Свяжись по мылу - есть предложенья. |
Приведи пример как можно запустить файл не сохраняя на диске.
Я могу показать, как запустить приложение, код которого в строке подобно твоей без сохранения на диске, путём запуска приостановленного процесса, замены кода и возобновления процесса с нашим уже троем. но, столкнулся с проблемой, что если запрятать в строку тот же notepad то запускается на ура, а вот криптованный пинч не хочет. |
вот только при чем тут вирусы?
|
мда вирусы и на делфи -- жесть
|
ну а хуле. сейчас молодежь берет количеством а не качеством.
было: как накодить на ассемблере..... стало: где достать чтобы вштырило ... |
| Время: 10:18 |