I'm reversing an application with IDA. My VM crashed and left the IDA database in a corrupted unpacked state.

The next time I tried to load it back, IDA gave me the following error message: The input database is corrupted: CRC32 mistmatch. Continue? a few times, then it quit with the error bTree error: index file is bad . Google-ing these error messages gave no useful results, which is unusual.

I'ld like restore the database, or at least extract the data somehow.

I've already tried the following:

Zynamics bindiff (couldn't open the IDB, said it's probably opened in another IDA instance, which I guess Is a result of the corrupted data)

Manual hex diff - I just can't interpret the output.

At this point I'm thinking of somehow parsing the IDB and then diffing that output manually.

So, how can I parse/extract data from IDB files?

Related.