Avatar

mindbleach

mindbleach@sh.itjust.works
Joined
20 posts β€’ 5.6K comments
Direct message

I admire the concept behind Denuvo.

Programs bounce around between a ton of different code segments, and it doesn’t really matter how they’re arranged within the binary. Some code even winds up repeated, when repetition is more efficient than jumping back and forth or checking a short loop. It doesn’t matter where the instructions are, so long as they do the right thing.

This machine code still tends to be clean, tight, and friendly toward reverse-engineering… relatively speaking. Anything more complex than addition is an inscrutable mess to people who aren’t warped by years of computer science, but it’s just a puzzle with a known answer, and there’s decades of tools for picking things apart and putting them back together. Scene groups don’t even need to unravel the whole program. They’re only looking for tricky details that will detect pirates and frustrate hackers. Eventually, they will find and defeat those checks.

So Denuvo does everything a hundred times over. Or a dozen. Or a thousand. Random chunks of code are decompiled, recompiled, transpiled, left incomplete, faked entirely, whatever. The whole thing is turned into a hot mess by a program that knows what each piece is supposed to be doing, and generally makes sure that’s what happens. The CPU takes a squiggly scribbled path hither and yon but does all the right things in the right order. And sprinked throughout this eight-ton haystack are so many more needles, any of which might do slightly different things. The β€œattack surface” against pirates becomes enormous. They’ll still get through, eventually, but a crack delayed is a crack denied.

Unfortunately for us this also fucks up why computers are fast now.

Back in the single-digit-megahertz era, this would’ve made no difference to anything, besides requiring more RAM for this bloated executables. 8- and 16-bit processors just go where they’re told and encounter each instruction by complete surprise. Intel won the 32-bit era by cranking up clock speeds, which quickly outpaced RAM response times, leading to hideously clever cache-memory use, inside the CPU itself. Cache layers nowadays are a major part of CPU cost and an even larger part of CPU performance. Data that’s read early and kept nearby can make an instruction take one cycle instead of one thousand.

Sending the program-counter on a wild goose chase across hundreds of megabytes guarantees you’re gonna hit those thousand-cycle instructions. The next instruction being X=N+1 might take literally no time, if it happens near a non-math instruction, and the pipeline has room for it. But if you have to jump to that instruction and back, it’ll take ages. Maybe an entire microsecond! And if it never comes back - if jumps to another copy of the whole function, and from there to parts unknown - those microseconds can become milliseconds. A few dozen of those in the wrong place and your water-cooled demigod of a PC will stutter like Porky Pig. That’s why Denuvo in practice just plain suuucks. It is a cache defeat algorithm. At its pleasure, and without remedy, it will give paying customers a glimpse of the timeline where Motorola 68000s conquered the world. Hit a branch and watch those eight cores starve.

permalink
report
reply

Sauron tries corrupting Sam! He just has very little exposure time, and no idea what this weird little guy wants.

The ring is basically an inch from being dropped into oblivion and it is desperately trying to negotiate with a laborador retriever. It’s expecting a wolf. It’s offering a dark forest with tall deer and all the necks you can bite, and the lab’s like, I dunno, that sounds kinda scary, I’m’a just do the thing and go home. It almost gets there. Being carried gently in the mouth of this tired barnyard animal, it offers… a lake. A really big lake. And the the lab’s like, how big?, and the ring offers a lake the size of a sea, and the lab’s like no, that’s too big, but thank you. Ptoo. And then he goes home and only thinks of it in those dreams where his legs move.

permalink
report
reply

Nexus consistently refuses to be a platform for bigotry.

That should not be controversial, at all, in any context.

If this asshat wants to publish it elsewhere - he’s free to. Nobody’s stopping him. It’s just a file. He has every moral right to modify software however he sees fit, and he has every practical right to be a homophobe online with fellow homophobes.

But I don’t want anything to do with him. I don’t want to use any website that’s cool with bigots spreading bigotry. If the people who run the website don’t want to deal with that shit either… tough shit, guy. Find another bar. This one’s not for Nazis. Warn all your Nazi friends.

permalink
report
reply

We beat scarcity. We’re up to our eyeballs in labor-saving technology. We just left people in charge who cannot imagine using it to save labor.

permalink
report
reply

Nah, β€œcall me” always means β€œlet’s make this a real-time social hierarchy game, because I’m good at exploiting verbal cues and expectations to shove people toward my desired goal.”

permalink
report
parent
reply

Copyright’s explicit purpose is to encourage new works.

Any form of β€œunpublishing” is theft from the public. You wanna say a guy can’t make money on a thing? Great, fine, go nuts. But nothing any human being put effort into deserves to be lost forever.

permalink
report
reply

Linear forums sucked. Reddit provided the sane solution: nested comments and vote-based sorting.

Last month someone linked to Something Awful, for a thread about the site’s greatest stories. Cramping my scroll-wheel finger and wearing out my patience, forty tall-ass posts at a time, each of them festooned with signatures and animated GIFs and a mile of whitespace - I cannot tell you instantly exhausting it was to see the thread had four hundred pages. Seeing any one question answered required scrolling through ten of them. X mentions a thing, Y asks about it a page and a half later, and Z jokes about it three pages on, and then fffinally someone tells Y what’s going on.

This is interest poison. This is a format that actively targets engagement and destroys it. Did you miss a day or two? Kiss it goodbye, because you’re never going to catch up and still give a shit.

permalink
report
reply

After that, he was relocated to a hotel (due to being doxxed) where all he had to work with was a Fire TV stick, which he promptly then used to hack Rockstar.

Fuckin’ bravo. I mean, don’t do that, but on a purely technical level - nice.

permalink
report
parent
reply

Different compilers have robbed me of all trust in order-of-operations. If there’s any possibility of ambiguity - it’s going in parentheses. If something’s fucky and I can’t tell where, well, better parenthesize my equations, just in case.

permalink
report
reply

Moderation exists to identify and exclude people who are being absolute cocks.

You don’t need any grand philosophical statement about values. You don’t need to defend the paradox of tolerance against absolutist demands for unrestricted expression. It’s perfectly fine to say: you were doing some diet Nazi shit, that’s awful, fuck off.

permalink
report
reply