Nibiru GRP: Difference between revisions
imported>WATTO No edit summary |
imported>DenizOezmen (reworked description to template format, added further decryption info) |
||
| Line 1: | Line 1: | ||
{{GRAFPageHeader}} | |||
== GRP == | |||
{{GRAFPageMisc|date_posted=19:32, 13 August 2007 (CDT)}} | |||
=== Format Specifications === | |||
{{GRAFPageFormat|1= | |||
char {16} - ID {{Constant|("AGDS group file" 1a)}} {{InlineComment|(encrypted)}}<br> | |||
uint32 {4} - Header length {{Constant|(44)}}<br> | |||
uint32 {4} - Signature {{Constant|(0x1a03c9e6)}}<br> | |||
uint32 {4} - Version {{Constant|(2)}}<br> | |||
uint32 {4} - Number of used entries<br> | |||
uint32 {4} - Number of entries<br> | |||
uint32 {4} - Archive time 1 {{InlineComment|(time_t, seconds since 1970-01-01 00:00:00.000)}}<br> | |||
uint32 {4} - Archive time 2 {{InlineComment|(time_t, seconds since 1970-01-01 00:00:00.000)}}<br> | |||
{{BlockDescription|// for each used file entry}}<br> | |||
:char {33} - File name {{InlineComment|(zero-terminated, encrypted)}}<br> | |||
:uint32 {4} - Offset<br> | |||
:uint32 {4} - Size<br> | |||
:uint32 {4} - File time {{InlineComment|(time_t, seconds since 1970-01-01 00:00:00.000)}}<br> | |||
:uint32 {4} - {{Unknown}}<br> | |||
byte {x} - Padding until first file offset {{InlineComment|(empty file entries)}}<br> | |||
byte {x} - File data<br> | |||
}} | |||
=== | === Notes and Comments === | ||
The encryption scheme is based on a XOR-system and the 52-character key phrase <tt>"Vyvojovy tym AGDS varuje: Hackerovani skodi obchodu!".</tt> (Probable rough translation: "AGDS development team warns: Hackers (Hacking?) hurts business!". Actual Czech speakers are welcome to correct this.) | |||
: | |||
=== | <tt> | ||
<b>for</b> i := 0 <b>to</b> Length(Buffer) - 1 <b>do</b><br> | |||
: <b>if</b> Encrypted[i] = 0 <b>then</b><br> | |||
:: Break<br> | |||
: <b>else</b><br> | |||
:: Decrypted[i] := Encrypted[i] <b>xor</b> KeyPhrase[i <b>mod</b> 52] <b>xor</b> 0xff;<br> | |||
</tt><br> | |||
=== MultiEx BMS Script === | |||
{{NoBMSScript}} | |||
=== Supported by Programs === | |||
* {{ProgramSupportGameExtracter}} | |||
* [http://oezmen.eu/gameresources/ GRPExt] | |||
* | |||
* | |||
=== | === Links === | ||
None | |||
=== Games === | |||
* [[Nibiru]] [[Black Mirror]] [[GRP|*.grp]] | |||
{{GRAFPageFooter}} | |||
[[Category:Platform PC|Nibiru GRP]] [[Category:Complete Almost Done|Nibiru GRP]] [[Category:CE Encryption|Nibiru GRP]] | |||
Revision as of 00:32, 14 August 2007
Back to index | Edit this page
GRP
- Format type: Archive
- Endianness: Little-endian
Format Specifications
uint32 {4} - Header length (44)
uint32 {4} - Signature (0x1a03c9e6)
uint32 {4} - Version (2)
uint32 {4} - Number of used entries
uint32 {4} - Number of entries
uint32 {4} - Archive time 1 (time_t, seconds since 1970-01-01 00:00:00.000)
uint32 {4} - Archive time 2 (time_t, seconds since 1970-01-01 00:00:00.000)
// for each used file entry
- char {33} - File name (zero-terminated, encrypted)
- uint32 {4} - Offset
- uint32 {4} - Size
- uint32 {4} - File time (time_t, seconds since 1970-01-01 00:00:00.000)
- uint32 {4} - Unknown
byte {x} - Padding until first file offset (empty file entries)
Notes and Comments
The encryption scheme is based on a XOR-system and the 52-character key phrase "Vyvojovy tym AGDS varuje: Hackerovani skodi obchodu!". (Probable rough translation: "AGDS development team warns: Hackers (Hacking?) hurts business!". Actual Czech speakers are welcome to correct this.)
for i := 0 to Length(Buffer) - 1 do
- if Encrypted[i] = 0 then
- Break
- Break
- else
- Decrypted[i] := Encrypted[i] xor KeyPhrase[i mod 52] xor 0xff;
- Decrypted[i] := Encrypted[i] xor KeyPhrase[i mod 52] xor 0xff;
MultiEx BMS Script
None written yet.
Supported by Programs
Links
None