Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Even ignoring the legal stuff (which a lot of hackers don't care about), Denuvo is an unbelievably pain in the ass to crack. It's kinda unique per game, so you have to redo a lot of work every time, and your reward for like 6 months of your life is the newest Madden. Most games get Denuvo removed anyway in future patches since it costs money annually to license it, so why bother.


> which a lot of hackers don't care about

Well, yeah, there was a time for that.

But, I can guess I can openly say this twenty years later, I was helping out one of the admins of the one of the largest warez sites in Central Europe and when that was raided (Operation Fastlink) -- police only found the proxies and couldn't find the owner so no one ever got indicted over this site -- I had a little chat with myself and, as I said above, closed that chapter of my life.

That server was really something else: imagine a normal mid tower chassis PC of the era but stuffed with IDE cards and next to it several piles of hard drives separated by little pieces of wood so they didn't overheat from touching. By the end, if memory serves, it was multiple terabytes.


This is the correct answer. Denuvo isn't hard to crack in any exciting engineering sense, it's just incredibly tedious. With the amount of time required, anyone with those skills would be better off just getting a white hat security gig for a stable paycheck, and buying the game.


What prevents that tedium from being automated?


The reasons a set of heuristics and static code analysis can't do it is because the team developing it is constantly hard at work making Denuvo more difficult and annoying and significantly different every release. You may be able to automate version X of Denuvo after having cracked 5 games using that version, but version X+1 will be significantly different (but in a way that didn't require much work on Denuvo's end to change). The only way to fully automate it would be to have access to their source code, or be a literal super genius.

I'm not an expert on it but my understand is that one part is basically have a VM with custom opcodes, and every opcode is randomized and the set of opcodes used is a subset of a larger pool. Then the code running in the VM is autogenerated from normal code using these confusing and randomly selected made up opcodes. And that is only 1 piece.


Denuvo is designed to be an extreme pain to work with in a debugger or disassembler. Every game is its own unique maze full of dead ends, fake exits, and an ever-shifting array of clever tricks to detect when the binary is being debugged or disassembled, which quietly rearrange the maze to have no solution at all.

It's extremely tedious for a human, and the pay-off is relatively low, as hinted by the parent (what recent DRMed games are even any good?). I do wonder whether anyone has tried setting a well trained AI on the problem though.


> I do wonder whether anyone has tried setting a well trained AI on the problem though.

That was exactly my thought, if it is just brute force understanding debugging/assembly code a LLM could help.


Only one way to find out!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: