generic image
Processing...
  • Games
  • Catalog
  • Develop
  • Robux
  • Search in Players
  • Search in Games
  • Search in Catalog
  • Search in Groups
  • Search in Library
  • Log In
  • Sign Up
  • Games
  • Catalog
  • Develop
  • Robux
   
ROBLOX Forum » Game Creation and Development » Scripters
Home Search
 

Re: good obfuscating practices

Previous Thread :: Next Thread 
cpmoderator12345 is not online. cpmoderator12345
Joined: 26 Jan 2013
Total Posts: 15651
15 Aug 2015 12:30 AM
pls
Report Abuse
71428 is not online. 71428
Joined: 06 Aug 2015
Total Posts: 339
15 Aug 2015 12:32 AM
Stop. Why does obfuscating of scripts even take place on Roblox? You gonna copyright scripts or something? The only reason is if you're hiding something malicious. Leave.
Report Abuse
TimeTicks is not online. TimeTicks
Joined: 27 Apr 2011
Total Posts: 27115
15 Aug 2015 12:32 AM
Here is my list:

1. Its unnecessary to obfuscate code. Now stop. 1 copied script from some skid expliter won't be the end of the world.


"Talk is cheap. Show me the code." - Linus Torvalds
Report Abuse
cpmoderator12345 is not online. cpmoderator12345
Joined: 26 Jan 2013
Total Posts: 15651
15 Aug 2015 02:51 PM
stfu, i love trolling
Report Abuse
wurzer is not online. wurzer
Joined: 08 Jul 2015
Total Posts: 71
15 Aug 2015 02:52 PM
@cpmoderator12345

Shouldn't you be in school?
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 02:52 PM
Just use ModuleScripts and keep the copylocked so they can only require.
Report Abuse
cpmoderator12345 is not online. cpmoderator12345
Joined: 26 Jan 2013
Total Posts: 15651
15 Aug 2015 07:33 PM
"Shouldn't you be in school?"
no
school is on 8/31/15
Report Abuse
BothAngles is not online. BothAngles
Joined: 01 Dec 2011
Total Posts: 9604
15 Aug 2015 07:35 PM
funny how nobody was saying its unnecessary when places were being stolen a few days ago LOL
btw obfuscation is impossible in rbx.lua
the closest you'll get is converting your code to bytecode but gskw told me how to deobfuscate it XD
Report Abuse
awotn is not online. awotn
Joined: 01 Nov 2014
Total Posts: 226
15 Aug 2015 07:37 PM
there are almost no easy mechanisms for obf in Lua, and especially Rbx.Lua
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 07:55 PM
'btw obfuscation is impossible in rbx.lua'
No

'the closest you'll get is converting your code to bytecode but gskw told me how to deobfuscate it XD'
You don't know what bytecode is, and there is no way to "decode" it, only decompile it. And the code won't be exactly the same.

Report Abuse
morash is not online. morash
Joined: 22 May 2010
Total Posts: 5834
15 Aug 2015 08:01 PM
Convert all your variable names into random characters.
Report Abuse
cpmoderator12345 is not online. cpmoderator12345
Joined: 26 Jan 2013
Total Posts: 15651
15 Aug 2015 08:02 PM
actually
you can convert strings to hex or bytecode, like others said, remove whitespaces according to wiki, and something i thought of myself: calling functions via function via function. Basically a whole thread gets executed with a bunch of functions... All in the mininum number of lines... That must be hard to read. But elunate suggested using loadstring oddly... er... why?
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 08:05 PM
'you can convert strings to hex or bytecode'
Uhm, no

"\91" == "a"
They're byte escapes, and they don't make it harder to read considering you can print it. Also you're using the term "bytecode" wrong.
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 08:06 PM
when you do

local var = "\91"
The variable at this point (when it is initialized) is "a", hence why your method won't be good for 'obfuscation' alone
Report Abuse
BothAngles is not online. BothAngles
Joined: 01 Dec 2011
Total Posts: 9604
15 Aug 2015 08:08 PM
'btw obfuscation is impossible in rbx.lua'
"No"
Yes

you know what im talking about -_-
with the code i tested, it looked like i was able to convert it to the original code
i only tested with ~4 simple lines though
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 08:12 PM
Do you know the definition of obfuscation? 'make obscure or unclear'
Here is something that is pretty damn hard to read:

setfenv((math.ceil(math.log(math.abs(math.tan(-(math.pi/4)))))+math.log10(math.log(math.exp(6))+math.sin(math.pi/2)+math.abs(math.cos(math.pi))+math.tan(math.pi/4)+(math.log10(100) - 1))*math.log(math.exp(math.log(math.exp(math.log10(math.deg(math.pi/2)-math.abs(100-math.deg(math.pi)))))))),getfenv(math.cos(math.pi/2))[string["r"..[[everse]]]("elbatatemtes")]({x=math.pi,print=print,getfenv=getfenv,math=math,string=string},{}))getfenv(math.exp(math.log(math.sin(math.pi/2))))[string.lower(string.gsub(string.gsub("XXPXrXXX1XNTX", "X", ""), "1", "I"))](x)

Like, I wonder what that does (it's not hard to figure out) but it prints math.pi
I wrote a couple of these sorts of things and it's not fun to read.
Report Abuse
BothAngles is not online. BothAngles
Joined: 01 Dec 2011
Total Posts: 9604
15 Aug 2015 08:14 PM
i do but its useless if i can deobfuscate it in a few minutes

print((math.ceil(math.log(math.abs(math.tan(-(math.pi/4)))))+math.log10(math.log(math.exp(6))+math.sin(math.pi/2)+math.abs(math.cos(math.pi))+math.tan(math.pi/4)+(math.log10(100) - 1))*math.log(math.exp(math.log(math.exp(math.log10(math.deg(math.pi/2)-math.abs(100-math.deg(math.pi)))))))),getfenv(math.cos(math.pi/2))[string["r"..[[everse]]]("elbatatemtes")]({x=math.pi,print=print,getfenv=getfenv,math=math,string=string},{}))getfenv(math.exp(math.log(math.sin(math.pi/2))))

print(string.lower(string.gsub(string.gsub("XXPXrXXX1XNTX", "X", ""), "1", "I")))
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 08:15 PM
Okay, a 'few' minutes is much longer than a single second
x = math.pi; print(x)
Report Abuse
TickerOfTime is not online. TickerOfTime
Joined: 02 Sep 2012
Total Posts: 2030
15 Aug 2015 08:22 PM
Bytecode is impossible to "reverse", as it is the minimum instructions required for the compiler. You cannot get the source from it. It is the same as trying to decompile an exe file.
Report Abuse
76km is not online. 76km
Joined: 14 Aug 2015
Total Posts: 5455
15 Aug 2015 08:23 PM
wiki.roblox.com

start there its a great place.

wiki.roblox.com

start there its a great place.

wiki.roblox.com

start there its a great place.

wiki.roblox.com

start there its a great place.

wiki.roblox.com

start there its a great place.
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 08:25 PM
'Bytecode is impossible to "reverse", as it is the minimum instructions required for the compiler. You cannot get the source from it. It is the same as trying to decompile an exe file.'
Generally, that usually implies. The ANSI C Lua compiler however doesn't really do optimizations, so code as simple as:

local xyz = 123;
print(xyz);

Can exactly be reverted back (the local variable name can if debug data was stored during compilation, which it usually is anyways)
Report Abuse
TickerOfTime is not online. TickerOfTime
Joined: 02 Sep 2012
Total Posts: 2030
15 Aug 2015 08:41 PM
Well, for simple stuff, yes, that would apply.
But for API calls and such, like PostAsync, it cannot, only be approximated.
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 08:43 PM
It still can (to an extent).
Like if you did
game:GetService("HttpService"):PostAsync("blah")

Can easily be reversed (sort of). The decompiler might assume that you are doing:
local var = game:GetService("HttpService")
var:PostAsync("blah")

Or something.
Report Abuse
TickerOfTime is not online. TickerOfTime
Joined: 02 Sep 2012
Total Posts: 2030
15 Aug 2015 08:44 PM
The second one is shown as the first when parsing bytecode. It removes variables from the string
Report Abuse
cntkillme is not online. cntkillme
Joined: 07 Apr 2008
Total Posts: 44956
15 Aug 2015 08:46 PM
What do you mean it removes variables from the string? What string? You mean the source code?
Report Abuse
Previous Thread :: Next Thread 
Page 1 of 1
 
 
ROBLOX Forum » Game Creation and Development » Scripters
   
 
   
  • About Us
  • Jobs
  • Blog
  • Parents
  • Help
  • Terms
  • Privacy

©2017 Roblox Corporation. Roblox, the Roblox logo, Robux, Bloxy, and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.



Progress
Starting Roblox...
Connecting to Players...
R R

Roblox is now loading. Get ready to play!

R R

You're moments away from getting into the game!

Click here for help

Check Remember my choice and click Launch Application in the dialog box above to join games faster in the future!

Gameplay sponsored by:
Loading 0% - Starting game...
Get more with Builders Club! Join Builders Club
Choose Your Avatar
I have an account
generic image