微比恩 > 信息聚合 > 代码反混淆太难,让 AI 来帮你自动起函数名

代码反混淆太难,让 AI 来帮你自动起函数名

2021-08-01 14:04:02来源: IT之家

有的人能把代码写成推理小说。需要一个临时变量的时候就叫 temp,需要多个就叫 var1,var2。甚至用拼音缩写当函数名,比如查询订单就叫 cxdd。要想看懂这样的代码,得联系上下文反复推敲,还原每个部分的真实作用。这个过程叫做反混淆 (Deobfuscation)。麻烦,着实麻烦。就没有省事儿点的办法吗?让 AI 来啊!最近,Facebook 就出了这样一个语言模型 DOBF,专治代码混淆。像下图这种,所有不影响运行的变量名、函数名、类名,都被替换成无意义的符号,AI 都能作出猜测并尝试还原。来看看和正确答案的对比,虽然不是完全一样,但 AI 的改法也大大提高了代码的可读性。像 FUNC_0,源代码中是“重置参数”,AI 改成“初始化权重”,也完全说得通。DOBF 模型目前除了 Python 还支持 C++ 和 Java。编码不规范的人毕竟是少数,这个模型更广泛的用途是恢复故意做混淆以保护知识产权的代码,比如这种:代码写好后

关注公众号
标签: AI