I have looking at this script, and I found this strange coding that I've never seen before, what kind of coding is this? Here is an example of some of the coding (Not full code, code has too many Charcters);
108,111,99,97,108,32,83,111,110,103,115,32
This is an (extended) ASCII representation of text.
It corresponds to, in this case, the characters forming the string "local Songs "
.
Strings are lists of characters. In Lua, a character is exactly one byte, which is a fundamental unit of computer memory. One byte can be any of 256 values; so ASCII* assigns one character to each of the numbers 0
to 255
.
You can make strings by making a list of those character points.
Using string.char(byteValue)
you make a single character from a number; using string.byte(character)
you make a number from a single character.
The purpose of this most of the time is for scripters to attempt to obfuscate their code from people trying to read or modify it.
It is easy to undo this, though, so it's not particular effective, except that people not immediately familiar with it cannot understand what to do.
Since these strings can't actually be executed on their own, they need to be run through loadstring
; since ROBLOX doesn't allow bytecode anymore, this text needs to be (more or less) human readable.
So, we can always crack any amount of simple string manipulations like this trivially:
local floadstring = loadstring; function loadstring(s) print(s); -- Print anything run through loadstring. return floadstring(s); end
Asterisk:
Technically, what Lua uses is not ASCII. ASCII actually only assigns 128 characters, not all 256;
ROBLOX uses Windows 1252 I believe. The text inside of that used for Lua code, which is limited to the newlines, tab, letters, and basic math, are the same in most single byte formats (including ASCII).
That means the extensions are essentially just cosmetic (think Wingdings).