Closed gsuberland closed 1 year ago
As a side note, I attempted to automate this procedure using a proxy DLL, i.e. a DLL that replaces sqlite3.dll and calls out to the real sqlite3.dll while grabbing register values, but was unsuccessful. The program launched OK but for some reason the database just ended up corrupted.
There's an alternative way to automate this using a more targeted runtime hook, but I don't have the time to write it at the moment. I'll investigate at a later date.
Here's a backup method for getting the database key, which might be worth documenting:
rekordbox.exe
(the main application executable)sqlite3_key_v2
and press OK. This should jump you to the code for that function, which typically starts withmov dword ptr ss:[rsp+xx], r9d
or similar.This is pretty much guaranteed to work regardless of what they do with future upgrades, since you're breakpointing the function that sets the key when the database opens, and the API interface is set by the makers of sqlcipher so it won't change.