Game Data Protection Methods

Discussion in 'RGSSx Script Support' started by ??????, Jan 4, 2013.

    Tags:
  1. Kread-EX

    Kread-EX You're all bakas Veteran

    Messages:
    863
    Likes Received:
    81
    First Language:
    French
    Can't be bothered to install Cheat Engine right now, but playing a bit with the DL library made me realize that yeah, Ruby makes things trickier. Integers are immediate value, which means there's effectively 1 single Ruby object for every integer, and whenever the value changes, the variable points toward a completely different object with another memory location. On the other hand, every identical integer shares the same location (since they're a single object).
     
    #41
  2. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,069
    Location:
    Toronto
    First Language:
    English
    But plenty* of people are using cheat engine no problem on standard** RM games.


    I imagine you just need to know what you're doing.


    *no statistics


    **standard = built-in systems, like saving
     
    Last edited by a moderator: Jan 20, 2013
    #42
  3. Abi

    Abi Veteran Veteran

    Messages:
    191
    Likes Received:
    10
    Location:
    NW Ohio
    First Language:
    English
    Save files probably have some set standard data storage method which is easily cracked.  So the "standard" RM methods may prevent easy run-time cheating but not saved-game editing based cheating...

    So, we need to either A: figure out how the saves method works and change it to randomized storage locations.  Or B: just alias the saves method and add encryption, and alias the loads method and add decryption.

    Of the two...  Option B would probably be the easiest to implement, but it'll also STILL be crackable - just not as easily.
     
    #43
  4. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,069
    Location:
    Toronto
    First Language:
    English
    The save method simply takes all of your data, tosses them into a hash, and then dumps it out as a Marshal serialized object.


    It is pretty trivial and all you need is to Marshal load it and you've got everything you need.


    But I think most people use cheat-engine rather than save-based editing.
     
    #44
  5. ??????

    ?????? Diabolical Codemaster Veteran

    Messages:
    6,264
    Likes Received:
    2,313
    Location:
    Your OS
    First Language:
    Binary
    Primarily Uses:
    RMMV
    ok, so, last night i spent over 2 hours trying various methods of "cheating" using cheat engine, i tried things like changing party gold, level, ect..

    I did not succeed , every time i "got close" the rpg maker game would crash . this leads me to believe that it is not possible to use cheat engine with rpgm ( ace at least )

    So, i was just wondering if anyone has managed to "hack" a game using cheat engine, if so, what did you "hack" and how did you do it ?

    I know Tsukihime said that plenty of people are using cheat engine, but at the same time there is no statistics.

    I would also assume that there are alot of people cheating this way, if i didnt spend hours trying to cheat and failing .

    Also someone was kind enough to send me the link to "that program" of which breaks into a encrypted game. and i have to say that it is quite unsettling..

    i know that Kread-Ex said that the Crypt-Ex program would stop against that, which i guess i slightly "comforting" . but at the same time it took him less than 10 minutes to "hack" things out of a project that was encrypted using Crypt-Ex.

    Obviously people who are that advanced at breaking into programs arent really going to be trying to steal my scripts or whatever, as they can most probably do better on their own, But is it really only those people ( pro "hackers" ) who would  be able to get the data from my Crypt-Ex  - Encrypted game ?
     
    #45
  6. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,069
    Location:
    Toronto
    First Language:
    English
    That's a pretty bad way to conclude something. It works just fine; after reading your post I decided to grab cheat engine, start up an Ace game, and then went to modify things.


    I managed to change the gold and current HP (though I did cheat by initializing them to some arbitrary number so it's easier to find)


    The instructions I've read were to use the formula 2X+1 to search for your values, where X is the value you want to search for, and then you use the same formula to plug in the value you want it to be after you've found it.


    I don't know why it works like that, but at this point if I were only interested in getting lots of gold, I don't really care for why it works.
     
    Last edited by a moderator: Jan 26, 2013
    #46
  7. Gomi Boy

    Gomi Boy   Veteran

    Messages:
    921
    Likes Received:
    159
    First Language:
    the truth
    Why would you want to shut that sort of thing down in the first place? It isn't a method of theft, it doesn't hurt the game for the typical player, and it isn't likely to affect anyone's opinion of the game since whatever they do is done by them. If people get curious and want to Frick around with my game's code for fun, then more power to them.


    Bugfixing? That's important. Hack protection? All you're doing is trying to stop the fun, and the fun can't be stopped.


    p.s. rpg maker's memory handling is actually very simple and cheat engine works really well on it, you're just bad at using it
     
    Last edited by a moderator: Jan 26, 2013
    #47
  8. Kread-EX

    Kread-EX You're all bakas Veteran

    Messages:
    863
    Likes Received:
    81
    First Language:
    French
    As I said earlier every Integer is a single Ruby object and yeah, once you have the formula, it's pretty easy to cheat. The tricky part would be to get it, and Tsukihime apparently read it somewhere, so it's already public. But like virtually everybody in the thread said, it just doesn't matter.
    I'm not a "pro hacker". I have some knowledge in the field, but once all is said and done I'm nothing more than an amateur. For Crypt-EX, I merely used the DLL own decryption method against it. After all these years, I have yet to see a single encryption method genuinely difficult to break. But this isn't because their creators are unskilled, it's because of RPG Maker limitations.
    Unless you go with a custom executable and custom DLL to replace the RGSS DLL, then whatever you do is ultimately pointless.


    But then again, is it really that important? If you have a game full of custom resources, people will notice when they're stolen and the thieves will be shunned. Scripts are slightly harder to notice, but you could just modify the base scripts. That way, if someone put them in their game, they break compatibility with pretty much everything else.


    Even AAA games have their resources ripped. Do you really think you can avoid that on a RM game? And in any case, there's like, 99% chances that the people who steal from you will just make some shitty game which will never be completed.


    tl;dr: Start by making a good game.
     
    #48
  9. ??????

    ?????? Diabolical Codemaster Veteran

    Messages:
    6,264
    Likes Received:
    2,313
    Location:
    Your OS
    First Language:
    Binary
    Primarily Uses:
    RMMV
    I will have to try that formula.

    What if i want the only cheats used in my game to be cheats that i had set up to be used ? So that any save file that has cheated could be identified. 

    No denying that, im not much of a cheater when it comes to games. i like the feeling of earning my crap, whether it be cash / items or whatever.

    Yea , ive acctually been thinking this may be my best option for a while now. i mean, most of the default scripts have already been re-written ( in my current project) so it would just be a case of completely removing the "excess" script pieces.
     
    #49
  10. ??????

    ?????? Diabolical Codemaster Veteran

    Messages:
    6,264
    Likes Received:
    2,313
    Location:
    Your OS
    First Language:
    Binary
    Primarily Uses:
    RMMV
    just wondering if someone could upload a copy of a game they have encrypted with Cryp-ex.

    reason being , i encrypted a game and then tried to decrypt it using what people like to refer to as "that program" .

    it easily decrypted everything, so i assume i have encrypted it incorrectly, and i would like to test it against a game that someone else has encrypted to test if it was just something i done wrong. 
     
    #50
  11. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,069
    Location:
    Toronto
    First Language:
    English
    Send me "that program" and I will let you know whether you messed up or not.


    If you are getting everything from the rgss3a archive you're unpacking then yes.


    Your data files should be in data.rpack and your image files should be in image.rpack


    The rgss3a archive should be the stuff that WF provides.
     
    Last edited by a moderator: Feb 12, 2013
    #51
  12. ??????

    ?????? Diabolical Codemaster Veteran

    Messages:
    6,264
    Likes Received:
    2,313
    Location:
    Your OS
    First Language:
    Binary
    Primarily Uses:
    RMMV
    ill have a look at what im doing again and see how it goes, i would rather not post a link to the program as the dude who sent me it has been banned after 1 post, i assume it would be because of linking that..

    Also , on a lsightly different note..

    Last night my pc crashed while 3 projects where opened, lost a total of about 5 months worth of scripts ( most i can download from pastebin again if needed though)

    Is there any way of creating a hard cope of my game to protect that data is such a thing occurs.. maybe alike a way of telling the game to export a hard cope each time its laoded ( seems like it would be slow though )
     
    #52
  13. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,069
    Location:
    Toronto
    First Language:
    English
    http://himeworks.wordpress.com/2013/02/13/data-backup/


    People will usually only think about it after they lose their work though.


    Now, I haven't actually TESTED whether the backup files will be spared from corruption or not...but maybe someone can try it out. Maybe load up a virtual machine, open RM editor, and then kill the VM and see what happens.


    I can't imagine why the backups would be affected though. If you look at how the data files are corrupted, they are basically wiped out. This might have something to do with how file IO is performed, where it first reserves as many bytes as it needs before writing the data out. I don't know.
     
    Last edited by a moderator: Apr 17, 2015
    #53

Share This Page