预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共19页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN114186233A(43)申请公布日2022.03.15(21)申请号202111521024.8(22)申请日2021.12.13(71)申请人奇安信科技集团股份有限公司地址100032北京市西城区新街口外大街28号102号楼3层332号申请人网神信息技术(北京)股份有限公司(72)发明人柴华君应凌云(74)专利代理机构成都维飞知识产权代理有限公司51311代理人张巧燕(51)Int.Cl.G06F21/56(2013.01)G06F21/14(2013.01)权利要求书2页说明书12页附图4页(54)发明名称代码的反混淆方法、装置、电子设备及存储介质(57)摘要本申请提供一种代码的反混淆方法、装置、电子设备及存储介质,方法包括:获取待处理代码的Token列表;所述Token列表中的各Token为构成所述待处理代码的各代码单词;对所述Token列表中的各Token进行反混淆处理,得到第一反混淆代码;对所述第一反混淆代码进行解析,得到所述第一反混淆代码的AST;对所述AST的目标节点中的内容进行模拟执行得到第一执行结果,并根据所述第一执行结果替换所述目标节点的内容;所述目标节点为所述AST中属于设定类型的节点;根据替换后的AST得到最终的反混淆代码。上述方案降低了混淆语句遗漏风险,提高了反混淆效果。CN114186233ACN114186233A权利要求书1/2页1.一种代码的反混淆方法,其特征在于,包括:获取待处理代码的Token列表;所述Token列表中的各Token为构成所述待处理代码的各代码单词,所述待处理代码为经过混淆后的代码;对所述Token列表中的各Token进行反混淆处理,得到第一反混淆代码;对所述第一反混淆代码进行解析,得到所述第一反混淆代码的抽象语法树AST;对所述AST的目标节点中的内容进行模拟执行得到第一执行结果,并根据所述第一执行结果替换所述目标节点的内容;所述目标节点为所述AST中属于设定类型的节点;根据替换后的AST得到最终的反混淆代码。2.如权利要求1所述的代码的反混淆方法,其特征在于,对所述AST的目标节点中的内容进行模拟执行得到第一执行结果,并根据所述第一执行结果替换所述目标节点的内容,包括:后序遍历所述AST的各个节点;在当前遍历到的节点属于所述设定类型的目标节点时,对所述当前遍历到的节点中的内容进行模拟执行,得到所述当前遍历到的节点的第一执行结果;根据所述当前遍历到的节点的第一执行结果,替换所述当前遍历到的节点中的内容,直至所述AST的所有节点遍历完毕。3.如权利要求2所述的代码的反混淆方法,其特征在于,在后序遍历所述AST的各个节点的过程中,所述方法还包括:获取当前遍历到的节点的子节点中的内容;将当前遍历到的节点中与该子节点相对应的内容,替换为所述子节点中的内容。4.如权利要求2所述的代码的反混淆方法,其特征在于,根据所述当前遍历到的节点的第一执行结果,替换所述当前遍历到的节点中的内容,包括:判断所述第一执行结果中是否存在预设的混淆执行命令;所述混淆执行命令为进行代码混淆时需要用到的命令;若存在,获取所述混淆执行命令的参数部分;对所述参数部分中的各代码单词进行反混淆处理,得到处理后的参数部分;对所述处理后的参数部分进行模拟执行,得到第二执行结果;将所述第一执行结果中的所述参数部分替换为所述第二执行结果;在所述第二执行结果不存在所述混淆执行命令时,将所述当前遍历到的节点中的全部内容替换为所述第一执行结果。5.如权利要求1所述的代码的反混淆方法,其特征在于,在目标节点中的内容存在变量时,在对该目标节点中的内容进行模拟执行之前,所述方法还包括:从预先建立的记录表中,获取该目标节点所属作用域下所述变量的变量值;将所述变量值写入所述变量中。6.如权利要求5所述的代码的反混淆方法,其特征在于,在得到所述第一反混淆代码的AST之后,对所述AST的目标节点中的内容进行模拟执行之前,所述方法还包括:从所述AST的赋值类节点中,获取变量值以及各变量值的作用域;在所述记录表关联记录各变量值和各变量值的作用域。7.如权利要求1‑6任一项所述的代码的反混淆方法,其特征在于,对所述Token列表中2CN114186233A权利要求书2/2页的各Token进行反混淆处理,得到第一反混淆代码,包括:逆序遍历所述Token列表;按照预设的Token修正规则,对当前遍历到的Token进行修正,直至所述Token列表遍历完毕;根据修正后的Token列表得到第一反混淆代码。8.如权利要求1‑6任一项所述的代码的反混淆方法,其特征在于,根据替换后的AST得到最终的反混淆代码,包括:将替换后的AST转换为第二反混淆代码;对所述第二反混淆代码中的变量名