Skocz do zawartości

[Artykuł] Czyli jak zrobić EXE z EXE


Rekomendowane odpowiedzi

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

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...