为了学习目的,我试图反编译其中一个Lua脚本,但我得到了原始代码,但是代码被混淆了如下:
local L0_0, L1_1, L2_2, L3_3, L4_4, L5_5, L6_6, L7_7, L8_8, L9_9, L10_10, L11_11, L12_12, L13_13, L14_14, L15_15, L16_16, L17_17, L18_18, L19_19, L20_20, L21_21, L22_22, L23_23, L24_24, L25_25, L26_26, L27_27, L28_28, L29_29
L0_0 = require
L1_1 = "comm.NetworkClock"
L0_0 = L0_0(L1_1)
L1_1 = require
L2_2 = "comm_ads.fullscreenAds"
L1_1 = L1_1(L2_2)
L2_2 = require
L15_15 = L14_14.init
L15_15()
L15_15 = L4_4.log
L16_16 = "IN main"
L15_15(L16_16)
function L15_15()
local L0_30, L1_31
end
print = L15_15
有没有办法恢复这些代码以达到原始代码?
答案 0 :(得分:2)
您可以返回原始来源吗?不,不太可能。
源代码经过优化,可供人类读取,字节代码经过优化,可供机器读取。编译通常会导致单向转换,其中恢复原始源所需的信息将丢失。
此时最好的选择是手动简化它和一堆查找&在确定变量或函数实际执行的操作后进行替换。
如果您确实找到(或构建)一个工具来简化反编译的源代码,使其更易于阅读,那么它仍然无法复制原始源代码。