![]() ![]() I haven’t looked into libfusionsystem.so at all, but everything seems to work okay. ![]() There is probably a way to hack this with mitmproxy or something similar, but I didn’t look into it. ![]() This patch isn’t perfect because Davinci requires the key on each launch, but it is very easy. The AAC codec still doesn’t work, but this is a lot better than before. The program launched without issues, and I was able to use my H264 videos. So I decided to change the instruction with a hex editor.ĭon’t forget to subtract Ghidra’s base address from the instruction address! RunningĪfter saving changes from the hex editor and trying an invalid key again, to my surprise, the patch worked! I went into assembly view, found this jump instruction, pressed right click, Patch Instruction, and changed JZ (jump if zero) to JNZ (jump if not zero)Īfter that, I tried to export the patched binary with Ghidra, but the resulting binary was too different. I decided to try and patch param_2 != 0 to param_2 = 0 to see what happens. It calls our failure callback in one branch and has strings like Start DaVinci Resolve and Has been successfully activated. This confirms that a server is used for key verificationĪfter going through this function’s XREFs in a similar way, one function caught my eye The function had this string later on: Unable to connect to the server. Go to definition, change type to TerminatedCString, go to XREF, open decompileĪfter going through a few DAT_xxxxxxxx labels and changing their types to string, the function started to look a lot like a failure callback. Search -> For Strings., press Search, filter for The key entered does not appear to be valid It seems to have disassembled the functions, and I didn’t have the patience to wait an entire day for it to complete. I gave Ghidra this rather large (510 MiB) file for analysis and waited for a few hours…Įventually, I gave up and stopped the analysis. I’ll start with resolve since it’s our entry binary. It looks like either libfusionsystem.so or resolve handle license checking. $ grep -R 'The key entered does not appear to be valid' /opt/resolve Grep: /opt/resolve/bin/resolve: binary file matches Grep: /opt/resolve/bin/BlackmagicRawAPI: No such file or directory Grep: /opt/resolve/libs/Fusion/libfusionsystem.so: binary file matches ![]() Let’s try searching for them $ grep -R 'Activating license' /opt/resolve Trying out a random key doesn’t work, but it gives us a couple of strings and tells us that it probably uses a server to verify the key. Searching for the offending fileĪfter launching Davinci Resolve Studio, I’m presented with a license activation window. Note that I’m using Arch Linux and the davinci-resolve-studio AUR package, but this should work for any Linux distro. I tried to find a Linux crack, but the best that I’ve found was for 18.1 or something, so I decided to try and crack it myself. Turns out H264 and H265 don’t work specifically on Linux and specifically on the free version, AAC doesn’t work on Linux at all, and all of this is due to some licensing bullshit. So I was trying out Davinci Resolve on Linux, and no matter how hard I tried to make it work, it wouldn’t display my OBS recorded videos.Īfter some searching, I found out that the DNxHD codec worked, but it requires about 2 GB/min of storage, so it wouldn’t work for me.Īfter some more searching, I found this Reddit post and this Davinci Resolve document. Cracking the Davinci Resolve Studio 18.5 license check by patching a single bit ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |