Как Deobfuscation Lua Script?

local script = string . дамп ( функция () 
        print ( «Привет» ) конец )
    
    


buff = ""

для v = 1 , строка . len ( script ) do 
    buff = buff .. '.' .. string . byte ( script , v ) end 


print ( buff )   prettyprinted ">luac -l

скрипт превращается в байтовый код, любая идея, как его отменить?

string,lua,byte,obfuscation,deobfuscation,

3

Ответов: 2


Вы не можете отменить байт-код на источник Lua, но вы можете перечислить инструкции VM 24.


0

Чтобы найти разницу между байт-кодом VM и байт-кодом Lua, в байт-коде VM всегда будет (virtual machine)впереди.

В этом случае это string.dumpбайт-код VM . Эта обфускационная вещь также использует функцию и может быть легко отменена.local script= string.dump( function() print('Hi') end ) buff="" for v=1,string.len(script) do buff=buff..'.'..string.byte(script,v) end buff = "'"..buff.."'" print("print("..buff..")")

Вот модифицированная версия декомпилятора:

print

Эта версия просто использует эту printфункцию для печати string.dumpсозданного в скрипте. Источник хорошо заметен, и я уверен, что это работает для всех небезопасных обфускаторов VM.

строка, Lua, байты, запутывание, деобфускация,