MoonSec Obfuscator Macros

This documentation will show you how to use macros properly.

Encrypt a string:

If you want to encrypt a specific string, use this macro. Just add "ENCRYPT:" in a string as a prefix.

local str1 = "ENCRYPT:Hi LOL"
local str2 = [[ENCRYPT:Whats good?]]
local api = game:HttpGet("ENCRYPT:https://f3d.at")
local a = [[ENCRYPT:
Multiline
thing]]

Exclude string from encryption:

If you want to encrypt all strings but a specific one, include 'NO_ENCRYPT:' in the string.

local c = "NO_ENCRYPT:Hello there";
local f = [[NO_ENCRYPT:Hello world!]]
local x = 'NO_ENCRYPT:Hello!';
local s = [[NO_ENCRYPT:
Multiline
string
]]

Get decrypted string table: GetDST(<void>)

Returns the table that stores decrypted strings. This can be used for debugging purposes or to modify a string directly from the script.

table.foreach(GetDST(), print)

for i,v in pairs(GetDST()) do
    if v == "Hello world" then
        GetDST()[i] = "New value"
    end
end

EQ Macro: __secureeq(variable1, variable2)

This macro is still under development and currently not public, but here is the usage.

This macro encrypts the if-else statement and decrypts it only if statement actually equals true, therefore stops JMP / EQ hooking based attacks to crack whitelist systems.

local WhitelistedHWID = "abcd1234" -- example string 1
local MyHWID = Player:GetHWID() -- example string 2

if __secureeq(MyHWID, WhitelistedHWID) then
    print("Authorized")
end

if __secureeq("1244", "12".."44") then
    print("Equals")
end

if __secureeq(nil, 7) then
    print("No way")
end

Last updated

Was this helpful?