Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Test protection system for RMXP/VX

I was expecting someone to decrypt it, but not that fast... You're good Cremno!

Well, if someone else still wants to take the challange, go for it, decrypting and breaking protections is always fun :)

I'll wait for your message Cremno, and then I will post how the system works, it isn't really much more secure, but that's better than nothing and may stop lot of people from decrypting the game.
 
Well, here is the idea of this protection explained:

  1. You modify the Magic Key in the RGSS102E.dll or RGSS202E.dll
  2. You encrypt your game with the same key (Use DRGSS for this or any other encryptor that allows custom key)
  3. You then have to compress/pack/crypt the RGSS dll, otherwise, almost anyone can just jump to where the magickey is located with any hex editor, and obtain it easily.

The advantages:
  • Decryptors can't be used directly to decrypt the .rgssad/.rgss2a if you don't have the custom magic key.
  • RGSSAD Extractor won't work, as it would be replacing the dll which contains the custom magic key.

Problems:
  • The scripts still can be obtained from memory
  • If someone manages to decompress/unpack/decrypt the dll, they would be able to obtain the custom magic key
  • Someone with some debugger experience can obtain the magic key
  • Some compressors/encrypters/packers for dll will leave the rgss dll unusable in some computers

Tutorial for doing applying this protection method yourself:
Modifying RGSS dll
First, you will need an unpacked RGSS dll. Here are both xp and vx rgss dlls unpacked by me:
RGSS102E-uncompressed.rar
RGSS202E.rar

If you want to unpack the dll by yourself, use: Stripper_v213b9.rar

You may try using the default rgss dll, but packing a packed dll isn't a good idea.

Then, you will need a hex editor, I recommend using: http://frhed.sourceforge.net/, but anyone will do.

Open the rgss dll with the hex editor and search for the 0xDEADCAFE key. But warning, the key is stored in little endian order, so you have to search for the inversed bytes FE CA AD DE (In frhed search for: <bh:fe><bh:ca><bh:ad><bh:de>), or if you have downloaded one of the rgss dll I uploaded you can use Go To (Ctrl+G), and for RGSS102E.dll go to 39628 or for RGSS202E.dll go to 43063.
92530310.png


So, now you want for example to use the key 0x12345678, then you have to write it in reversed byte order (Remember, 2 digits = 1 byte), that's 78 56 34 12.
39579226.png


Encrypt the game with your new magic key
Just use DRGSS, and in the magic key field use your custom key (In this example 12345678)
80349211.png


Pack the RGSS dll
Warning, some packers will leave the rgss dll unusable for some pcs. Make sure that it work in differents computers before releasing a project with this protection.

So, you have to find a good packer, compressor, crypter for DLL. Here is a list: http://www.woodmann.com/crackz/Packers.htm
 
IxionVi2, you should change the magic key in the dll only when releasing the game. Until that, work normaly on it. And remeber that the Game.ini should have in "Library=" the same name as the RGSS202E.dll before releasing.
 
Wow, thanks a ton! I don't have use for it right now, but I will in the near future. I really appreciate all the work you put into this. :smile:
 
IxionVi2, I can't recommend you any packer, because I don't know much about packers. You will have to investigate yourself, or maybe there is someone experienced with packers around here.

Regarding your second question, you have to include the modified DLL with your game when you release it. Otherwise, in case that the RTP is installed on the player machine (If the user hasn't it and there is no dll, the game won't run at all), the game will try to use the default rtp dll and so it will try to read the .RGSSAD/.RGSS2A file with the default magickey and that will make the game to crash or probably hang. If you don't include the dll with your game, this system won't work at all.


Btw, don't doublepost, just modify your posts.
 
IxionVi2, if you don't include the dll, Game.exe won't be able to read the Game.rgss2a file. So, include the dll. It should be in the same place along with Game.exe, Game.ini and other files.

If you aren't using the RTP, just deactivate it, you can do so editing Game.ini or there should be an option in the editor for that.
 
Hey vgvgf, the "Stripper" is shown as a virus by my anti virus prog.
Is there another dll unpacker (or whatever you call those things) you know that can be used for decompressing RGSS library?

@ Ixion: A hex editor is just a programm that shows the bytes of a file in hexadecimal form. You can't prevent a file from being read.
 
Neo-Bahamut, Kaspersky 2010 doesn't complain about StripperX on my PC, and I have run it many times without problem. Maybe it's a false positive. I don't know any other unpacker, if I remember well Stripper was for Aspack 2.1, you can try searching another unpacker for Aspack 2.1. If you don't find or you don't want to run Stripper, use one of my already unpacked DLLs.
 
'ello. :biggrin: I hate to be a bother, but I know how you're big on making your own .dlls and so on. I was just wondering (for those that don't have hex editors) if you could have a quick and easy .exe program that can change the magic key value in the .dll for us? Just a little popup that says 'what is the new value:___" or "return to default".
 
I join DerVVulfman's request. (Unless it's too much work)
I've never worked with dll files/magic keys, and I'll probably just end up messing my project file. I wouldn't even know how to test if it worked or not.
I wish protecting your game was as easy as decrypting someone else's.
 
I also join this. Can it make such a program for the uncompressed *dll? We find packers without any problems... Simply some kinds of hex-editors quite difficult find the Magic Key bytes...
 

Div_IX

Member

sorry for the necro post but i really must ask this

@vgvgf: let say for arguments sake that i was to run my game, recompiled using your program with a different magic key and i made the chnage in the .dll but didn't pack it, would it still work? i'm well aware that i should pack it but i'm right now testing it to see if it works before packing it, so far it doesn't, the game starts and then right after it shuts down
 
@vgvgf : I understand that you can't recommend any packer, but I can't find anyone which works, so please, can you give the name of the one you used ? It'll be very kindly and helpful ! Many thanks !
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top