|
| 30 Nov 2014 03:41 PM |
Right now I'm obfuscating my scripts because roblox doesn't give a dam if someone steals your place I could accidently uncopylock it one day or someone could make a place-stealing exploit
Here's an example local q=string.char local r=string.reverse local a=script[q(80,97,114,101,220/2,116)] a[r(q(101,109,97,78))]=q(91,67,113-2,110,116,101,110,116,32,68,99+2,108,101,116,101,100,71+22)
function aa(ba, bb) end
Is there anything else that might help? How long do you think it'll take a good scripter to deob a script like this with a couple hundred lines? |
|
|
| Report Abuse |
|
|
eLunate
|
  |
| Joined: 29 Jul 2014 |
| Total Posts: 13268 |
|
|
| 30 Nov 2014 03:46 PM |
| Make sure you do confusing stuff, like changing lua's keywords, hiding declerations, using loadstring oddly and changing the names of builtin variables (Hell, even get rid of anything using the colon and call it straight from the root member) |
|
|
| Report Abuse |
|
|
|
| 30 Nov 2014 03:51 PM |
a while ago i made an obfuscated function that adds two numbers... here it is ;)
http://pastebin.com/egzKL1yD |
|
|
| Report Abuse |
|
|
Fedorakid
|
  |
| Joined: 17 Jul 2010 |
| Total Posts: 7079 |
|
|
| 30 Nov 2014 03:54 PM |
| I remember that forever, you had this in a most confusing script challenge xd |
|
|
| Report Abuse |
|
|
eLunate
|
  |
| Joined: 29 Jul 2014 |
| Total Posts: 13268 |
|
|
| 30 Nov 2014 03:58 PM |
Oh and remember to exploit locale for variables
i,ī,ï,î=math.random,math.sin,Instance.new,CFrame.new
And remember to do a lot of garbage variable stuff
i,ì,î,í,i,ī,î = game,workspace,CFrame.new,Instance,CFrame.new,i,game |
|
|
| Report Abuse |
|
|
|
| 30 Nov 2014 04:04 PM |
| thanks eLunate and ForeverDev that's some nice obfuscation lol |
|
|
| Report Abuse |
|
|
|
| 30 Nov 2014 05:20 PM |
| @luna lets say you define those variable in your script.. Wouldn't the values still be visible in the actual script if it were stolen? Or maybe you could make a global table with them in a well hidden script in your place? |
|
|
| Report Abuse |
|
|
|
| 30 Nov 2014 05:28 PM |
That's why you obfuscate the values
You can tell what a is local a=script.Parent
Now you have to spend time figuring it out local a=script[q(80,97,114,101,220/2,116)] |
|
|
| Report Abuse |
|
|
eLunate
|
  |
| Joined: 29 Jul 2014 |
| Total Posts: 13268 |
|
|
| 30 Nov 2014 05:29 PM |
| They're still visible, but it's harder for the stealer to understand. This level of obfusication makes it super easy to hide backdoors and stuff inside your own game or free models. |
|
|
| Report Abuse |
|
|
|
| 30 Nov 2014 05:32 PM |
and how would I do what you said about removing the colon
Like this local a = Instance.new
But with FindFirstChild? |
|
|
| Report Abuse |
|
|
| |
|
|
| 30 Nov 2014 11:06 PM |
| If they steal your place, then what is the point of obfuscation if they already have a working place? Keeping obfuscated code up to date can be a difficult task. Instead I would recommend creating a state machine interpreter, and a compiler that turns lua code into a middle language for the state machine interpreter. This way it is very hard to edit once it is compiled and compiling can be done fast. |
|
|
| Report Abuse |
|
|
cntkillme
|
  |
| Joined: 07 Apr 2008 |
| Total Posts: 44956 |
|
|
| 30 Nov 2014 11:50 PM |
Use CntLuaQ for CHARBS!!11 11
How to print Hello, world! 666 21 1 "Hello, world!" 21 2 666 1 1 1 2 2 2 103 print 3 1 4 |
|
|
| Report Abuse |
|
|
cntkillme
|
  |
| Joined: 07 Apr 2008 |
| Total Posts: 44956 |
|
|
| 30 Nov 2014 11:50 PM |
yay so this is hard to read even though you can get the gist of it. But with crazy stuff, not so easy
21 1 "Hello, world!" 21 2 666 1 1 1 2 2 2 103 print 3 1 4 |
|
|
| Report Abuse |
|
|
|
| 30 Nov 2014 11:52 PM |
oh f*k you confused me..... i cant hide anything with my scripts... how do i make my scripts obfuscated? |
|
|
| Report Abuse |
|
|
cntkillme
|
  |
| Joined: 07 Apr 2008 |
| Total Posts: 44956 |
|
|
| 01 Dec 2014 12:01 AM |
Here is how an infinite loop printing Hi each time may look (with a wait(0.1)): Untested but yolo
21 1 Hi 21 2 0.1 41 4 1 2 2 1 103 wait 3 3 3 3 3 3 1 1 2 1 103 print 3 3 41 4 4 |
|
|
| Report Abuse |
|
|
|
| 01 Dec 2014 12:08 AM |
| I don't think that'll work on roblox ?_? |
|
|
| Report Abuse |
|
|
cntkillme
|
  |
| Joined: 07 Apr 2008 |
| Total Posts: 44956 |
|
|
| 01 Dec 2014 12:12 AM |
| Nah but I made an interpreter thingy |
|
|
| Report Abuse |
|
|
eLunate
|
  |
| Joined: 29 Jul 2014 |
| Total Posts: 13268 |
|
|
| 01 Dec 2014 01:32 AM |
FindFirstChild would just be like,
₣=Instance.FindFirstChild
And then you can do stuff like
î,ì,í,ï,ī,i=workspace,Instance.new,Instance.FindFirstChild,"Part","Parent",Instance.Destroy -- Or even better obfusicate those too ₣=í ï ₣[ī]=î i í(î,("etalpesaB"):reverse()) |
|
|
| Report Abuse |
|
|
|
| 01 Dec 2014 01:46 AM |
Those chars don't work The script doesn't work either ?_? |
|
|
| Report Abuse |
|
|
| |
|
eLunate
|
  |
| Joined: 29 Jul 2014 |
| Total Posts: 13268 |
|
|
| 01 Dec 2014 02:18 AM |
It won't let you use those chars? :( Try this for FindFirstChild then, if it won't let you take it from the root
F=Instance.new("Part").FindFirstChild
Then you use
F(ThingToSearchIn, "NameToSearchFor", doRecursive=true) |
|
|
| Report Abuse |
|
|
| |
|
zaniac10
|
  |
| Joined: 18 Aug 2009 |
| Total Posts: 10000 |
|
|
| 01 Dec 2014 06:11 AM |
why do you want to obfuscate in the first place
don't you want a script to be clean and short and less confusing? |
|
|
| Report Abuse |
|
|
|
| 01 Dec 2014 06:16 AM |
| The whole point of this is to make it unreadable, so that people don't understand it. |
|
|
| Report Abuse |
|
|