Перейти к содержимому
Zone of Games Forum
some_one_else

Помощь с разбором файла

Рекомендованные сообщения

На данный момент я попробовал определить через quickbms, не сжаты ли файлы и не использовалось ли шифрование. Но из-за недостаточного опыта нужного результата получить не удалось. Требуется помощь более опытных людей, кто может объяснить, что здесь скрывается.

Сам файл.

http://rghost.ru/private/52246124/62206816...99ec3910f1b56ae

Поделиться сообщением


Ссылка на сообщение

Мой декриптор

// License: public domain{$AppType Console}uses SysUtils, Classes;type TValue = array [0..1] of longword; TKey = array [0..3] of longword; TFooter = packed record   Id: longword;   Key: TKey;   RealSize: longword; end;procedure Decrypt(var Value: TValue; Key: TKey);var v0, v1, sum, i: longword;begin v0 := Value[0]; v1 := Value[1]; sum := $C6EF3720; for i := 0 to 31 do begin   Dec(v1, ((v0 shr 5) + Key[3]) xor ((v0 shl 4) + Key[2]) xor (sum + v0));   Dec(v0, ((v1 shr 5) + Key[1]) xor ((v1 shl 4) + Key[0]) xor (sum + v1));   Inc(sum, $61C88647); end; Value[0] := v0; Value[1] := v1;end;var Src, Dst: TFileStream; Footer: TFooter; DataSize: longword; Value: TValue;begin if ParamCount <> 1 then begin   WriteLn('Usage: rwrdec <file.def>');   Halt; end; try   Src := TFileStream.Create(ParamStr(1), fmOpenRead); except   WriteLn('Error opening ' + ParamStr(1));   Halt; end; try   if Src.Size <= SizeOf(Footer) then   begin     WriteLn('File too small');     Halt;   end;   Src.Seek(-SizeOf(Footer), soFromEnd);   Src.Read(Footer, SizeOf(Footer));   DataSize := Src.Size - SizeOf(Footer);   if Footer.RealSize > DataSize then   begin     WriteLn('Corrupted file');     Halt;   end;   try     Dst := TFileStream.Create(ParamStr(1) + '.dec', fmCreate);   except     WriteLn('Error creating ' + ParamStr(1) + '.dec');     Halt;   end;   try     Src.Seek(0, soFromBeginning);     while DataSize >= 8 do     begin       Dec(DataSize, 8);       Src.Read(Value, SizeOf(Value));       Decrypt(Value, Footer.Key);       Dst.Write(Value, SizeOf(Value));     end;     Dst.Size := Footer.RealSize;   finally     Dst.Free;   end; finally   Src.Free; end;end.

 

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас



Zone of Games © 2003–2025 | Реклама на сайте.

×