04. februar 2006 - 11:43Der er
3 kommentarer og 1 løsning
16 byte XOR krypteret filer
hejsa
jeg sidder og roder med en algo, der kan dekryptere GTA san andreas (PC) radiostationerne. jeg har fundet ud af at det er XOR krypteret med en 16 byte sekvens (0xA1C43AEA, 0xF314A89A, 0x23D7B048, 0xF1FFE89D)
var Form1: TForm1;
InF, OutF: file of Byte; a:array[0..4096] of char; BRead: ^Integer; FileLen: LongInt; SisendFail, ValjundFail: string;
procedure TForm1.btnKonverdiClick(Sender: TObject); var i: Cardinal; begin AssignFile(InF, SisendFail); AssignFile(OutF, ValjundFail); Reset(InF); ReWrite(OutF); FileLen:=FileSize(InF); lblStaatus.Caption:='Converting...'; Application.ProcessMessages; with Progressbar1 do begin Min := 0; Max := FileLen; while filelen > 0 do begin New(BRead); BlockRead(InF, a[0], SizeOf(a), BRead^); FileLen:= FileLen - BRead^; for i:=0 to Length(a) do begin a[i]:= chr(ord(a[i]) xor ($22)); end; BlockWrite(OutF, a[0], BRead^); Position:=Position+BRead^; lblStaatus.Caption:='Completed...'; Dispose(BRead); end; end; ProgressBar1.Position:=0; CloseFile(OutF); CloseFile(InF); end;
jeg fandt denne algo til vice city ADF filer, men jeg har på fornemmelsen at det er samme fremgangsmåde.
hvordan laver man så denne algo om, så den dekryptere San Andreas radiostationerne?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
procedure Decrypt(const aInputFile, aOutputFile : string); const chunk_max = $f; xormask : array[0..chunk_max] of byte = ($A1,$C4,$3A,$EA,$F3,$14,$A8,$9A,$23,$D7,$B0,$48,$F1,$FF,$E8,$9D); var i : integer; fsi : TFileStream; fso : TFileStream; buffer : array[0..chunk_max] of byte begin fsi := TFileStream.Create(aInputFile,fmOpenRead); // Gætter - Kan ikke lige fso := TFileStream.Create(aOutputFile,fmCreate); // huske parametrene try while fsi.position < fsi.size do begin fsi.ReadBuffer(buffer,chunk_max); for i := 0 to chunk_max do buffer[i] := buffer[i] xor xormask[i]; fso.WriteBuffer(buffer,chunk_max); end; finally fso.Free; fsi.Free; end; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.