TL;DR - I can ‘secure’ your game code or sell you a tool to do it via the marketplace. Would you be interested?
The Idea
Over the many years I’ve been a member of these forums, one of the top questions I’ve seen is,
The answer has always been one or more of these:
- Yes, but it won’t stop the dedicated hackers.
- No, there isn’t a free tool or even a paid tool to do this that is compatible with Corona.
The Solution
I recently saw this question again and it occurred to me, “I can do that!”
My question for you is, “Is it worth me making a paid tool to do this?” AND/OR “Would you pay me to do this on a case by case basis for you?”
I’m thinking:
- I will sell a interactive tool (in the marketplace) that allows you to secure your own scripts in an easy push-button way.
- I will provide a service where I do the work and send you back the encoded scripts.
I figure, the tool will be $100 and the service will be $25.
However, before I bother making the tool I need to know if anyone even thinks this would be worthwhile for them.
Example
This game has been secured: asteroids.apk (https://github.com/roaminggamer/RG_FreeStuff/raw/master/ForumsImages/obfuscated/asteroids.apk)
Here is a sample of an original script:
local asteroidM = {} -- Builder Function -- function asteroidM.new( params ) -- Draw an 'empty hole' local asteroid = newImageRect( common.layers.content, "images/kenney/asteroid.png", common.asteroidW, common.asteroidH ) asteroid.x = params.x asteroid.y = params.y physics.addBody( asteroid, "dynamic", { radius = common.asteroidW/2} ) asteroid.isSensor = true -- Track this asteroid in the list of known asteroids common.asteroids[asteroid] = asteroid -- Set velocity of asteroid local vx,vy = util.angle2Vector( params.angle ) local rate = mRand( params.minRate, params.maxRate ) asteroid:setLinearVelocity( vx \* rate, vy \* rate ) -- Give asteroid a random spin -- asteroid.angularVelocity = mRand( -90, 90 )
And the same code, but obfuscated:
~Y`}~v}#y$=YVapvAvP+ 55vm:V~a$=vc:-`yVY- 55 F:-`yVY-v}#y$=YVap.-$h*vM}=}j#vz 55v(=}hv}-v'$jMy8v)Y~$' ~Y`}~v}#y$=YVavAv-$hTj}\<$ $`y*v`YjjY-.~}8$=#.`Y-y$-y? "Vj}\<$#OG$--$8O}#y$=YVa.M-\<"? `YjjY-.}#y$=YVaS?v`YjjY-.}#y$=YVaovz }#y$=YVa.evAvM}=}j#.e }#y$=YVa.8vAvM}=}j#.8 M)8#V`#.}aamYa8\*v}#y$=YVa?v"a8-}jV`"?vPv=}aV:#vAv`YjjY-.}#y$=YVaSOB+vz }#y$=YVa.V#\_$-#Y=vAvy=:$ 55vn=}`Gvy)V#v}#y$=YVavV-vy)$v~V#yvYFvG-Yh-v}#y$=YVa# `YjjY-.}#y$=YVa#b}#y$=YVa,vAv}#y$=YVa 55v\_$yvK$~Y`Vy8vYFv}#y$=YVa ~Y`}~vKe?K8vAv:yV~.}-\<~$Bq$`yY=*vM}=}j#.}-\<~$vz ~Y`}~v=}y$vAvj }-a\*vM}=}j#.jV- }y$?vM}=}j#.j}e }y$vz }#y$=YVaL#$yCV-$}=q$~Y`Vy8\*vKev/v=}y$?vK8v/v=}y$vz 55v4VK$v}#y$=YVav}v=}-aYjv#MV-
All comments are welcomed!