New Release: Prevent In-App Purchase theft and Cheating!

Stop In-App Purchases Theft!

Prevent Cheating!

Protect your game data and In-App Purchases state in Corona SDK projects!

Are you using clear text or sqllite3 to store in-app purchases and game data in your projects?  

It is extremely easy to modify both to cheat and steal content even without jailbreaking!

Check out TableScrambler:

https://gumroad.com/l/OEyo

Hi Chris.  This looks useful and thanks for sharing.  Just an FYI, I’ve removed the duplicate post.  Please only post items once.

Thanks

Rob

Sorry, figured it was a different section and relevant.

Chris,

Does this affect the submission to the app store? Meaning if I used this in an app would it need to get the additional approval due to some form of crypto?

thanks,

Rick

No it does not, it is not using key based encryption.

Now you have my interest…

You indicate this works on SQLite…

  1. How is the performance impacted? I have a new game in the works with thousands of records…any metrics?

  2. How do you initialize the data to be encypted? In other words, I already have my database included as part of my application how would I go about making it encrypted? I would assume I would need to run the encryption code across the database prior to using it?

  3. Is the tamper feature strictly for databases whose content does not change or can it be used for dynamic databases. If my records change does it recalculate the hash or whatever during the write so only I can muck with it programatically???

  4. cross platform?

Thanks!

It does not work on sqllite, it would replace using sqllite (as it is not encrypted or obfusicated).

I’ve tested with large tables and have seen neglect-able performance impact.  I can dig up a large example table and do some larger testing but it is near instant in all my tests.

This library is for storing tables, it will not affect sqllte, it is an alternative to just using json.encode to store a table or using sqllite all together (since it can easily be modified).

Tamper check is for testing if the data stored has been changed outside of the program.  A hash is stored whenever the a table is saved. It is crunched in the data and would be extremely unlikely an end user would be able to make sense of it and where it is stored.

Works on all platforms.  But it is not a plugin replacement of sqllite, you would need to store data in lua tables and “save” and “load” them.

Hi Chris.  This looks useful and thanks for sharing.  Just an FYI, I’ve removed the duplicate post.  Please only post items once.

Thanks

Rob

Sorry, figured it was a different section and relevant.

Chris,

Does this affect the submission to the app store? Meaning if I used this in an app would it need to get the additional approval due to some form of crypto?

thanks,

Rick

No it does not, it is not using key based encryption.

Now you have my interest…

You indicate this works on SQLite…

  1. How is the performance impacted? I have a new game in the works with thousands of records…any metrics?

  2. How do you initialize the data to be encypted? In other words, I already have my database included as part of my application how would I go about making it encrypted? I would assume I would need to run the encryption code across the database prior to using it?

  3. Is the tamper feature strictly for databases whose content does not change or can it be used for dynamic databases. If my records change does it recalculate the hash or whatever during the write so only I can muck with it programatically???

  4. cross platform?

Thanks!

It does not work on sqllite, it would replace using sqllite (as it is not encrypted or obfusicated).

I’ve tested with large tables and have seen neglect-able performance impact.  I can dig up a large example table and do some larger testing but it is near instant in all my tests.

This library is for storing tables, it will not affect sqllte, it is an alternative to just using json.encode to store a table or using sqllite all together (since it can easily be modified).

Tamper check is for testing if the data stored has been changed outside of the program.  A hash is stored whenever the a table is saved. It is crunched in the data and would be extremely unlikely an end user would be able to make sense of it and where it is stored.

Works on all platforms.  But it is not a plugin replacement of sqllite, you would need to store data in lua tables and “save” and “load” them.