Compi Opublikowano 9 Września 2012 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
Konrad-GM Opublikowano 9 Września 2012 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.
Compi Opublikowano 9 Września 2012 Autor Opublikowano 9 Września 2012 Chyba nie zrozumiałeś działania tego myku
Konrad-GM Opublikowano 9 Września 2012 Opublikowano 9 Września 2012 Chyba nie zrozumiałeś działania tego myku Nie, i raczej nie chciałbym go stosować.
Tymon Opublikowano 9 Września 2012 Opublikowano 9 Września 2012 Z różnych powodów jest to złe rozwiązanie. Kiedyś był już poruszany ten temat.
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ę