{"id":38251,"date":"2017-06-20T06:00:48","date_gmt":"2017-06-20T10:00:48","guid":{"rendered":"http:\/\/www.shamusyoung.com\/twentysidedtale\/?p=38251"},"modified":"2017-06-20T12:58:15","modified_gmt":"2017-06-20T16:58:15","slug":"this-dumb-industry-denuvo-and-the-death-of-piracy","status":"publish","type":"post","link":"https:\/\/www.shamusyoung.com\/twentysidedtale\/?p=38251","title":{"rendered":"This Dumb Industry: Denuvo and the Death of Piracy"},"content":{"rendered":"<p>For over a year people have been requesting that I weigh in on Denuvo, the fancy new DRM that has all the publishers excited. What is it? How does it work? How effective is it? <\/p>\n<p>DRM used to be a major part of my writing. I still care about the issue, but I eventually stopped talking about it because I ran out of things to say. You can only write the &#8220;Inconveniencing your customers in an attempt to harm people who are not your customers is a stupid idea&#8221; rant so many times. I made my case. Nothing changed. End of story.<\/p>\n<p>I wanted to wait to comment on Denuvo until I had something concrete to say. I figured sooner or later we&#8217;d have answers to some of the questions I posed above. But even after all this time there doesn&#8217;t seem to be much of a consensus.<\/p>\n<h3>What is it?<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/tdi_padlock.jpg' width=100% alt='Why make a better padlock when we can just make it EXTRA illegal to open crappy ones?' title='Why make a better padlock when we can just make it EXTRA illegal to open crappy ones?'\/><\/div><div class='mouseover-alt'>Why make a better padlock when we can just make it EXTRA illegal to open crappy ones?<\/div><\/p>\n<p>The term &#8220;Digital Rights Management&#8221; is such a deviously constructed bit of PR. It sounds like a good thing. &#8220;Digital Rights&#8221;. Those are good, right? But calling anti-copying software &#8220;Digital Rights Management&#8221; is like calling prison &#8220;Freedom Management&#8221;. It&#8217;s technically true, while also being a pretty good example of real-world <a href=\"https:\/\/en.wikipedia.org\/wiki\/Doublespeak\">doublespeak<\/a>. <\/p>\n<p>In the case of videogames, DRM is any system intended to &#8220;manage&#8221; (limit) what you can do (your rights) with the software through various software tricks. The argument usually goes something like this:<\/p>\n<p><!--more--><\/p>\n<div class=\"script\">\n<p>Company:<br \/>\nThis DRM system makes sure that you can&#8217;t pirate the game. <\/p>\n<p>User:<br \/>\nBut now I can&#8217;t make backups of my software! And it&#8217;s really inconvenient!<\/p>\n<p>Company:<br \/>\nSorry, but we need this system to stop pirates.<\/p>\n<p>User:<br \/>\nBut (vague reference to court case) guarantees that I have the right to make backups for personal use!<\/p>\n<p>Company:<br \/>\nActually you gave up that right when you broke the seal on the package \/ clicked &#8220;I Agree&#8221; on the EULA.<\/p>\n<p>User:<br \/>\nBy that logic, any consumer right could be negated at any time by any company, simply by making waiving that right a requirement for using the product.<\/p>\n<p>Company:<br \/>\nThese measures are helping us fight piracy.<\/p>\n<p>User:<br \/>\nBut it doesn&#8217;t stop pirates! Games are always available to the pirates, sometimes even before launch!<\/p>\n<p>Company:<br \/>\nBy the way, even if you DON&#8217;T accept the EULA, you can&#8217;t return the product. <\/p>\n<p>User:<br \/>\nThis is bullshit!<\/p>\n<p>Company:<br \/>\nThanks for being a valued customer! <\/p><\/div>\n<p>The argument reached this stalemate roughly a decade ago, and it&#8217;s been stuck there ever since. It wasn&#8217;t until Denuvo showed up that the landscape began to change.<\/p>\n<p>Denuvo is DRM. No wait, according to other people it&#8217;s not DRM, but instead it&#8217;s a wrapper for DRM to protect it from tampering. No wait, according to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Denuvo\">the Wikipedia page<\/a> it&#8217;s both:<\/p>\n<blockquote><p>Denuvo Anti-Tamper, or Denuvo, is an anti-tamper technology and digital rights management (DRM) scheme developed by the Austrian company Denuvo Software Solutions GmbH, a company formed through the management buyout (MBO) of Sony DADC DigitalWorks.<\/p><\/blockquote>\n<p>Whatever. For the purposes of this discussion, it&#8217;s DRM.<\/p>\n<h3>How Does it Work?<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/tdi_gears.jpg' width=100% alt='Metal Gears. Solid.' title='Metal Gears. Solid.'\/><\/div><div class='mouseover-alt'>Metal Gears. Solid.<\/div><\/p>\n<p>That&#8217;s an excellent question. <a href=\"https:\/\/www.reddit.com\/r\/CrackStatus\/comments\/43dgej\/how_denuvo_works_and_why_its_so_hard_to_crack\/\">This Reddit thread<\/a> begins with someone who claims they&#8217;ve studied Denuvo. They say it is specifically NOT &#8220;shrink wrap DRM&#8221;. (More on that in a minute.) Instead they describe it as a system where certain non-performant<span class='snote' title='1'>Parts of the code that don&#8217;t need to go fast.<\/span> parts of the code are removed from the executable. When you activate the game, you are given the missing bits of code. However, these are specifically engineered to only work on your particular make, model, and revision of CPU. There are thousands of CPUs out there, which means that if you uploaded your build of the game to the torrents, only people with the exact same CPU thumbprint could run it. <\/p>\n<p>But then the top reply to that post is another person, claiming this is all nonsense. They also have studied Denuvo and they insist it works differently. They claim that, &#8220;It uses a modified version of VMProtect 3 to virtualize many game functions, and a custom library that&#8217;s different from VMProtect&#8217;s for anti-debug, initial game decryptions as well as to implement some SDK features that lets the game check if it has been unpacked (known as &#8220;triggers&#8221; in older protections). Before running game code, it will call a DRM library which is specific to the underlying platform, such as Steam or Origin and others.&#8221;<\/p>\n<p>That&#8217;s two different people making opposing, yet highly technical and very specific claims about how Denuvo works. <\/p>\n<p>The Chinese pirate group 3DM has also worked on Denuvo. (And even cracked a version of it in 2014.) They claimed that the technology involves a &#8220;64-bit encryption machine&#8221; that requires cryptographic keys unique to the specific hardware of each installed system. That sounds like &#8220;shrink wrap DRM&#8221;, which contradicts both of the previous claims.<\/p>\n<p>I obviously have no idea. The most likely cause of this confusion is that Denuvo takes many forms. It&#8217;s evolved rapidly over the years, and perhaps each of these people have encountered different versions of it. It&#8217;s also possible that Denuvo has many different &#8220;products&#8221; they license to developers at different price points, and each DRM product is a little different. <\/p>\n<h3>Shrink Wrap DRM<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/tdi_shrinkwrap.jpg' width=100% alt='I&apos;ll bet this is SOMEONE&apos;S fetish.' title='I&apos;ll bet this is SOMEONE&apos;S fetish.'\/><\/div><div class='mouseover-alt'>I&apos;ll bet this is SOMEONE&apos;S fetish.<\/div><\/p>\n<p>&#8220;Shrink Wrap&#8221; isn&#8217;t a specific DRM technique. Instead it&#8217;s a style of protecting software from tampering. It means you make standalone software, and before you deploy it you feed the executable (and maybe some other assets) into the DRM-O-Tron and it will spit out a version of the program that (in theory) is difficult to modify. The point being that your developers can wrap their program inside of the anti-tamper system without needing to add the DRM crap to their source code or complicate development. <\/p>\n<p>I&#8217;ve mentioned before that <a href=\"?p=35194\">I used to work at Activeworlds<\/a>. Back in 1998 or so, we had a problem with people hacking the client. Since a lot of the netcode had been designed in the naive, pre-dystopian internet of 1994, we had the unfortunate problem that the server always trusted the client. When someone sent a chat message, the client would send the text of the message, along with the user&#8217;s name. The server made no effort to make sure that the person supposedly sending the chat message was the same as the person&#8217;s account name. So you could hack your client to change how your name was displayed to other users. This means Bob could log in with his hacked client and begin typing chat messages that would appear (to other users) to be coming from Alan. <\/p>\n<p>Now, this didn&#8217;t mean Bob had stolen Alan&#8217;s identity. Bob didn&#8217;t have Alan&#8217;s rights or powers. If Alan was an admin then his chat messages would appear in bold. If Bob impersonated him, Bob&#8217;s fake messages would not be bold. Still, this was a source of trouble for some time. Someone would drop into a densely populated area and begin putting words in other people&#8217;s mouths. A few racist slurs and threats was all it would take to turn a polite discussion into complete chaos and a bunch of complaints against people who hadn&#8217;t done anything wrong.<\/p>\n<p>This is just one of many problems with the server trusting the client. Some of them could be fixed by making changes to the server, but some of them couldn&#8217;t. Eventually we decided to try to stop the troublemakers by using shrink-wrap anti-tamper software. I forget the name of the product we used<span class='snote' title='2'>I wasn&#8217;t on the full time coding staff yet, so I didn&#8217;t use it directly. I was still on the art team and authoring tools.<\/span>, so let&#8217;s say it was called WidgetProtect.  WidgetProtect promised that our software would be 100% tamper-proof, or our money back.<\/p>\n<p>The hackers cracked it in two days.<\/p>\n<p>We did not get our money back.<\/p>\n<p>Their developers worked with ours for a few iterations, trying to tighten things up, but it was a lost cause. I&#8217;m pretty sure WidgetProtect just scrambled the executable on the disk, and then un-encrypted it into memory when the program was run. That&#8217;s hilariously primitive by today&#8217;s standards, but at the time it was good enough that the WidgetProtect guys thought they were unbeatable.<\/p>\n<h3>So How Good is Denuvo?<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/tdi_vault.jpg' width=100% alt='The best security system in the world won&apos;t help you if your guards leave the stupid door open.' title='The best security system in the world won&apos;t help you if your guards leave the stupid door open.'\/><\/div><div class='mouseover-alt'>The best security system in the world won&apos;t help you if your guards leave the stupid door open.<\/div><\/p>\n<p>Once again, it depends on who you ask. In January 2016, cracking group 3DM warned that by 2018 games would be un-crackable. In the decades-long arms race between crackers and DRM, the DRM was finally pulling ahead. While it&#8217;s still true that <a href=\"http:\/\/www.escapistmagazine.com\/articles\/view\/video-games\/columns\/experienced-points\/7467-Impossible-to-beat-DRM\">unbeatable DRM is impossible<\/a>, it is possible to make DRM so tedious and time-consuming to break that it&#8217;s no longer worth the effort. <a href=\"http:\/\/www.dsogaming.com\/news\/denuvo-has-been-defeated-first-doom-crack-is-now-available\/\">It took two and a half months to crack DOOM<\/a> last year, which is enough to protect a game for the majority of its sales and relevance. <\/p>\n<p>On the other hand: A few days after DOOM was cracked, <em>Inside<\/em> and <em>Rise of the Tomb Raider<\/em> were cracked using the same technique. So maybe the arms race is on again?<\/p>\n<p>Obviously to answer this question you&#8217;d have to study the problem. But as the conflicting reports demonstrate, even supposed experts can have wildly different opinions on how things work and what is and isn&#8217;t possible.<\/p>\n<p>While I haven&#8217;t been able to answer anyone&#8217;s pressing questions about Denuvo and how it works, I think the whole thing has been very illuminating for gaming culture as a whole. <\/p>\n<h3>What Have We Learned?<\/h3>\n<p><div class='imagefull'><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/tdi_class.jpg' width=100% alt='I gotta say that&apos;s some badass math for a bunch of kids to tackle with crayon and construction paper.' title='I gotta say that&apos;s some badass math for a bunch of kids to tackle with crayon and construction paper.'\/><\/div><div class='mouseover-alt'>I gotta say that&apos;s some badass math for a bunch of kids to tackle with crayon and construction paper.<\/div><\/p>\n<p>For a long time publishers hit us with dire claims about how 90% or even 99% of game copies were pirated. We were told that piracy was destroying the industry and causing a huge loss of income. Many of us were skeptical about this rhetoric, but it wasn&#8217;t the sort of thing you could disprove. <\/p>\n<p>But now we&#8217;ve had several AAA games arrive on the scene and remain safe from piracy for months, and it&#8217;s pretty clear that the dire claims were just as ridiculous as we suspected. Game profits have not shot up. Rise of the Tomb Raider didn&#8217;t attain 10&times; the typical PC sales, despite the fact that for 8 long months it was unavailable to those pirates that made up 90% of the player base. If Denuvo caused a visible spike in PC sales then they surely would have begun crowing about it by now.<\/p>\n<p>Piracy is no longer a handy scapegoat for publishers. They blamed piracy for studio closures, low profits, and high prices. But Denuvo put a serious dent in piracy without any of those things changing. (And why would they? The public has already demonstrated they&#8217;re willing to buy games for $60 + DLC, so the only reason to lower prices is to be nice.) <\/p>\n<p>The one good thing about Denuvo is that it seems to be painless for us non-pirates. I&#8217;ve apparently played a number of Denuvo games without even knowing it. I didn&#8217;t have Denuvo lock me out of a game because I plugged in a USB audio device, or make me type in some stupid activation key, or make me log in to some nonsense server. I&#8217;ve said before that convenience is king, and Denuvo is at least built so as to not make a product more inconvenient to use.<\/p>\n<p>Then again: What happens in the future? If Denuvo is based on CPU thumbprint or some other nonsense, then what happens on the new processors of the future? Will the game fail to install? Fail to activate? Fail to run? Impossible to say.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For over a year people have been requesting that I weigh in on Denuvo, the fancy new DRM that has all the publishers excited. What is it? How does it work? How effective is it? DRM used to be a major part of my writing. I still care about the issue, but I eventually stopped [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[102],"tags":[],"class_list":["post-38251","post","type-post","status-publish","format-standard","hentry","category-weekly-column"],"_links":{"self":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/38251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=38251"}],"version-history":[{"count":0,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/38251\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=38251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=38251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=38251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}