The Binding of Isaac Rebirth (*.a)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by aluigi »

In my opinion it's an archive ("VLV"?) containing an extecutable/dll file with an encrypted header, you can see all the content of the file except the beginning with the "MZ" header.
cookiezeater
Posts: 1
Joined: Mon Nov 10, 2014 3:36 am

Re: The Binding of Isaac Rebirth (*.a)

Post by cookiezeater »

Its just PE header. The rest is obvious compiled bytecode and some plain text string. Nothing interesting, unless you use debugger.
Some1
Posts: 1
Joined: Mon Nov 10, 2014 4:54 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by Some1 »

Ekey wrote:Well i found decryption algorithm but one problem. For each data, various decryption keys (DWORD). Idk how it generate. I checked entry table but without good results.


What if it generated from previous encrypted part? Could it be true?
flying sheep
Posts: 2
Joined: Mon Nov 10, 2014 7:03 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by flying sheep »

hi guys, i registered in order to show you this:

https://github.com/bladecoding/BoIRResourceDecryption

there’s still problems with animations, but the rest works. LZW, wtf?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by aluigi »

Interesting link, there is all the decryption function.
Perfect, so case closed :)
cyanic
Posts: 13
Joined: Wed Aug 13, 2014 1:44 am

Re: The Binding of Isaac Rebirth (*.a)

Post by cyanic »

aluigi wrote:In my opinion it's an archive ("VLV"?) containing an extecutable/dll file with an encrypted header, you can see all the content of the file except the beginning with the "MZ" header.


Valve PE primer: they like to sign their executables with their own algorithm. "VLV\0" is the beginning of this signature, and is located right after the end of the MZ header. The signature is nothing more than a signature.
flying sheep
Posts: 2
Joined: Mon Nov 10, 2014 7:03 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by flying sheep »

aluigi wrote:Interesting link, there is all the decryption function.
Perfect, so case closed :)

there’s still stuff to do: archive.a doesn’t work yet (only when you edit the code to not try and extract that it won’t crash)

also the game executable uses file names, not hardcoded offsets: calling strings on it yields many ones like “resources/gfx/ui/main menu/MenuOverlay.png”
Axolotl
Posts: 4
Joined: Fri Nov 14, 2014 5:45 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by Axolotl »

Is it any progress in unpacking the archives? It would be nice to not just unpack, but also pack them again. Many people are eager to change the music of Rebirth back to classic soundtrack.
Dreamtime
Posts: 2
Joined: Thu Nov 20, 2014 11:54 am

Re: The Binding of Isaac Rebirth (*.a)

Post by Dreamtime »

flying sheep wrote:hi guys, i registered in order to show you this:

https://github.com/bladecoding/BoIRResourceDecryption

there’s still problems with animations, but the rest works. LZW, wtf?



Okay so I am opening and building in VS2013 and I get the following errors:

Error 1 The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?) C:\dev\IsaacReverse\decoder\BoIRResourceDecryption-master\boir\Program.cs 28 7 BoIRResourceEditor
Warning 2 The primary reference "Newtonsoft.Json" could not be resolved because it was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0". BoIRResourceEditor
Warning 3 Could not resolve this reference. Could not locate the assembly "Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=c7439020c8fedf87". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. BoIRResourceEditor
Warning 4 The referenced component 'Newtonsoft.Json' could not be found. BoIRResourceEditor


PM> Install-Package Newtonsoft.Json
'Newtonsoft.Json 6.0.6' already installed.
BoIRResourceEditor already has a reference to 'Newtonsoft.Json 6.0.6'.
Axolotl
Posts: 4
Joined: Fri Nov 14, 2014 5:45 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by Axolotl »

Ekey That's great. But is it possible to pack the changed files back so we can do a mod with original BoI sountrack by Danny B.?
Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by Ekey »

I'm not author of this tool. I just added code for auto detecting steam path and compile it.
Axolotl
Posts: 4
Joined: Fri Nov 14, 2014 5:45 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by Axolotl »

Sorry I'm not a programmer, please, can you tell is it easy having this code and knowledge to make similiar tool to pack files back to archives so the game will recognize them? Or it's also not so easy work to do?
Black_Sun
Posts: 1
Joined: Sun Nov 09, 2014 6:20 am

Re: The Binding of Isaac Rebirth (*.a)

Post by Black_Sun »

Packing back in the archives is not required, game understands full paths like "\resources\music\you died.ogg"
unpacking tool http://svn.gib.me/builds/rebirth/
Axolotl
Posts: 4
Joined: Fri Nov 14, 2014 5:45 pm

Re: The Binding of Isaac Rebirth (*.a)

Post by Axolotl »

.....wow!...................WOW!!!........................WOW!!!WOW!!! THAT WORKS!!! REALLY!! Thanks a lot!!!

*SPAM*, it was so easy from the start, but anyway we were need the right filenames to do that, even if technically it was easy and didn't need to unpack.
I already replaced most of the tracks. All works. Some left to do...
Dreamtime
Posts: 2
Joined: Thu Nov 20, 2014 11:54 am

Re: The Binding of Isaac Rebirth (*.a)

Post by Dreamtime »

brilliant thank you so much for this. Wish I knew how to figure this stuff for myself. Recommended reading?