The file encryption is same in ALL ao versions
procedure TForm1.Encrypt;
var
key: Byte;
c, new_size: integer;
size: string;
myfile: file;
inp_file: string;
directory: string;
size_2: integer;
begin
Memo1.Lines.SaveToFile(ExePath + '3.txt', Tencoding.Unicode);
inp_file := ExePath + '3.txt';
// Set Key to 51
key := $51;
SetLength(Source, 0);
// Select file to Crypt
// Read File
ReadBytesFromFile(inp_file);
// Encrypt
new_size := length(Source);
for c := new_size - 2 downto 0 do
Source[c] := (Source[c] xor Source[c + 1]) + key;
SetLength(Dest, new_size + 24);
move(Source[0], Dest[24], new_size);
Dest[$0] := $4E;
Dest[$1] := $43;
Dest[$2] := $52;
Dest[$3] := $00;
Dest[$4] := $01;
Dest[$5] := $00;
Dest[$6] := $01;
Dest[$7] := $00;
size := IntToHex(new_size, 8);
Dest[$8] := strtoint('$' + copy(size, 7, 2));
Dest[$9] := strtoint('$' + copy(size, 5, 2));
Dest[$A] := strtoint('$' + copy(size, 3, 2));
Dest[$B] := strtoint('$' + copy(size, 1, 2));
Dest[$C] := key;
Dest[$D] := $00;
Dest[$E] := $00;
Dest[$F] := $00;
Dest[$10] := $00;
Dest[$11] := $00;
Dest[$12] := $00;
Dest[$13] := $00;
Dest[$14] := $00;
Dest[$16] := $00;
Dest[$17] := $00;
// Write to file
directory := IniFile.ReadString('Directories', 'File_2', '');
AssignFile(myfile, directory + Label2.Caption);
size_2 := length(Dest);
ReWrite(myfile, size_2);
BlockWrite(myfile, Dest[0], 1);
CloseFile(myfile);
end;