jwiggams wrote:
Hey all, new here but figured this was a good place to ask:
I'm working on a demo for SNES, and I've been looking into building a custom board for it that uses byteswapping as a cheap and easy (albeit not super effective, I know) method of anti piracy. It's more of a deterrent than actual protection...really.
I want to have the ROM data byteswapped like a Sega Genesis game, but then on the hardware level have that swap undone by switching the data lines around.
My question is, can this be done? And if so, how do i swap the data lines on the board so the SNES sees the proper format?
Thanks for any help
John
Hate to pooh-pooh on this idea, but all forms of DRM are easily defeated once people know how the DRM works.
DVD's were defeated by knowing the CSS key, leaked through a software decoder, once it was out, it was out.
Bluerays, likewise were defeated by keys being leaked in software decoders.
The only way you prevent piracy is with ROM cartridges that have their own crypto-processor. This is how and why satellite and cell phone (GSM/LTE) cards can't be cloned. But they need to be paired to a matching crypto processor in the hardware, and the SNES just doesn't have that. However the SNES does support running expansion hardware chips. So effectively what you could do is pre-encrypt the data on a second ROM chip, and have the unencrypted rom chip verify that the chips signature are correct before booting the expansion chip to decrypting the ROM chip.
Boot rom -> expansion chip -> real rom.
Let's not even get into latency.
It's all more trouble than it's worth. Every scheme is eventually broken, and for the most part, the scheme is broken by trusting that the device you are running the software on has no debuggers on it. To give you an example, the way "private servers" for MMORPG's are created is not by decrypting the data the server sends, but by dumping the decrypted data from game client's RAM. They then walk backwards by using the same cryptoscheme on their private server. And that is considered some of the highest-end lowest-payoff hacking.
The weak point will always be the software itself. Even some early "30 day evaluation" software on PC's tried this scheme. In order for the software to actually work, it has to be decrypted, and the pirates just dump the software out of the RAM once it's running. Virtual Machines have only made this easier.
If you really want to prevent piracy in a cheeky way, the actual solution is to hide a key in the expansion chip, and when the key isn't found, you make the game unwinnable. You'd be surprised at how effective this can be at outing pirates, despite being obvious,
http://www.greenheartgames.com/2013/04/ ... of-piracy/ .
That ups the piracy skill from "dump and run" to "dump, hack and run" but in todays kinds of emulators and things like the Retrofreak which let you enter game genie codes, you can can patch around even the cheeky things.
Back in the 80 and 90's software sometimes came with manuals or "license dongles" that would replicate this "hide a key" scheme. Sometimes all you need to do make it not obvious so the "zero day" dumps become useless and ruin the reputation of the pirate.