[Trykle MaxScript 混淆器设计] 抽离常量的注意事项
抽离常量是我给取的名字
实际的描述应该是:给内置的大部分函数起个别名
操作后长这样
showMsg = messagebox showMsg "trykle"
或者
fe230e9 = "messagebox" (execute fe230e9) "trykle"
或者在进行更绕一点的变形,不管绕多复杂,它们的强度都是1
在分析器中,只需要识别到messagebox
这个常量并将其抽取替换即可
想象很简单
但实际
目标代码可能带着那么一点点“歧义”
这里面的“常量”均不可替换
global messagebox, spline, trykleTestVar = 123 ( messagebox = 1 true = false if true == false then ( local print = #(1, 2, true) for box in print do messagebox = box ) )
如果直接按单词替换,第一句代码就会语法错误
global (execute showMsg) ...
那么需要识别,目标标识符在当前作用域是否被定义为变量,
如果是变量就不进行抽离
如果希望对bool值进行单独处理,也需要做相同的判断
如你所见,true = false
也是一种混淆
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步