Compi Opublikowano 9 Września 2012 Udostępnij Opublikowano 9 Września 2012 Może ktoś z was się zastanawiał w jaki sposób Game Hammer, lub Doom Hammer tworzy pliki exe. Cóż. Wszystko opiera się na dwóch innych plikach exe: Extractor i Interpreter Object Pascal: GML procedure TForm1.Button3Click(Sender: TObject); var rec : TSearchRec; i: integer; s:string; f : File of byte; fs : cardinal; z : string; old: string; hEXE: DWORD; pData: PAnsiChar; Buff : char; a, b1: TFileStream; t: integer; b: byte; Zipper1: Tzipper; //SelectDirectoryDialog1 : TSelectDirectoryDialog; begin SelectDirectoryDialog1 := TSelectDirectoryDialog.Create(self); //EXE BY MAZUR // if SelectDirectoryDialog1.Execute then begin try CreateDir(SelectDirectoryDialog1.filename+'\MyGame_exe'); Zipper1 := TZipper.Create; Zipper1.FileName :='data.dat'; CopyFile('rundata',envname+'/rundata.exe'); i := FindFirst(envname+'/*.*',faAnyFile, rec); while i = 0 do begin if (rec.name <> '..') and (rec.Name <> 'editor.exe') then Zipper1.Entries.AddFileEntry(envname+'/'+rec.name, rec.name); Zipper1.ZipAllFiles; i := FindNext(rec); end; finally Zipper1.Free; AssignFile(f,'data.dat'); try Reset(f); seek(f,0); Buff := 'A'; BlockWrite(f,Buff,1); seek(f,1); Buff := 'A'; BlockWrite(f,Buff,1); finally CloseFile(f); end; sleep(2000); CopyFile('runner.exe',SelectDirectoryDialog1.filename+'\MyGame_exe\MyGame.exe'); Crypt('data.dat',globalkey); CopyFile('data.dat',SelectDirectoryDialog1.filename+'\MyGame_exe\game_x86.dll'); ShowMessage('Procedure is done!'); end; end; end; Jak widzicie kod tworzy archiwum, w którym musi być plik rundata.exe. To nasz interpreter. Na końcu zostaje dodany MyGame.exe, który jest extractorem. Po spakowaniu całego archiwum i zaszyfrowaniu zostaje utworzony plik game_x86.dll MyGame.exe otwiera go, wypakowywuje w folderze tymczasowym i uruchamia plik rundata.exe W ten sposób można dystrybutować samodzielne pliki exe Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 9 Września 2012 Udostępnij Opublikowano 9 Września 2012 Nie przepadam za językami pascal-like... Ale to co zaprezentowałeś to w ogóle nie jest zdatne do interpretacji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Compi Opublikowano 9 Września 2012 Autor Udostępnij Opublikowano 9 Września 2012 Chyba nie zrozumiałeś działania tego myku Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 9 Września 2012 Udostępnij Opublikowano 9 Września 2012 Chyba nie zrozumiałeś działania tego myku Nie, i raczej nie chciałbym go stosować. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 9 Września 2012 Udostępnij Opublikowano 9 Września 2012 Z różnych powodów jest to złe rozwiązanie. Kiedyś był już poruszany ten temat. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się