[发明专利]程序反混淆处理方法、装置、设备及存储介质有效
申请号: | 202010664908.8 | 申请日: | 2020-07-10 |
公开(公告)号: | CN111814120B | 公开(公告)日: | 2021-04-23 |
发明(设计)人: | 蒋杰 | 申请(专利权)人: | 北京嘀嘀无限科技发展有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京超成律师事务所 11646 | 代理人: | 郭俊霞 |
地址: | 100193 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 混淆 处理 方法 装置 设备 存储 介质 | ||
本申请提供一种程序反混淆处理方法、装置、设备及存储介质,涉及信息安全技术领域,该方法包括:根据预设规则,确定目标程序对应的多个流程链,流程链包括:入口链、循环链和返回链,每个流程链包括至少一个基本块,基本块包括:真实块或虚假块;以目标程序的分发器为起始,遍历目标程序,确定每个流程链所包含的真实块;根据每个流程链的出口上下文环境、以及流程链中真实块的地址,合并多个流程链,获取逻辑链;将逻辑链中的虚假块无效,重构获取目标程序对应的原始程序。本方法实现了程序的逆向分析,达到辅助分析程序的目的,有效避免恶意逃避程序检测,获取非法利益的行为。
技术领域
本申请涉及信息安全技术领域,具体而言,涉及一种程序反混淆处理方法、装置、设备及存储介质。
背景技术
近年来,伴随着移动互联网的高速发展,端上的攻防对抗也是愈演愈烈。为了更好的保护自己的核心程序,越来越多的开发者选择将其转移至Native层。这中间也不乏一些病毒木马开发者、作弊器软件制作者等等,它们试图借由APP加固混淆技术逃避检测。在这样的背景下,Ollvm的应用也是越来越广泛,并还有大量在此之上进行二次开发的魔改版本。控制流平坦化作为当中最常用的混淆手法,需要提出一种方法对其进行反制、推导出程序的正常执行逻辑,以辅助我们进行逆向分析。
但是,对于程序如何进行反混淆,目前还没有一种行之有效的解决方法。
发明内容
有鉴于此,本申请实施例的目的在于提供一种程序反混淆处理方法、装置、设备及存储介质,以实现程序反混淆,有效避免恶意逃避程序检测,获取非法利益的行为。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种程序反混淆处理方法,包括:
根据预设规则,确定目标程序对应的多个流程链,所述流程链包括:入口链、循环链和返回链,每个所述流程链包括至少一个基本块,所述基本块包括:真实块或虚假块;
以所述目标程序的分发器为起始,遍历所述目标程序,确定每个流程链所包含的真实块;
根据每个所述流程链的出口上下文环境、以及所述流程链中真实块的地址,合并多个所述流程链,获取逻辑链;
将所述逻辑链中的虚假块无效化,重构获取所述目标程序对应的原始程序。
可选地,所述根据每个所述流程链的出口上下文环境、以及所述流程链中真实块的地址,合并多个所述流程链,获取逻辑链,包括:
模拟执行所述目标程序,获取除所述返回链以外所述流程链返回所述分发器时的上下文环境;
根据所述上下文环境,调用分发器获取对应的下一个真实块入口地址,得到关联关系;
根据所述关联关系,合并多个所述流程链,生成所述逻辑链。
可选地,所述根据预设规则,确定目标程序对应的多个流程链,包括:
根据预设规则,将所述目标程序中预设程序分解为多个基本块;
根据每个基本块的引用数量,从所述多个基本块中确定分发器;
根据所述分发器的调用关系,确定所述目标程序对应的多个流程链。
可选地,所述以所述目标程序的分发器为起始,遍历所述目标程序,确定每个流程链所包含的真实块,包括:
以所述目标程序的分发器为起始,遍历所述目标程序,首次匹配到预设跳转指令时,根据所述预设跳转指令对应的目标跳转地址、以及所述每个流程链对应的下一个基本块的地址,确定所述每个流程链所包含的真实块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京嘀嘀无限科技发展有限公司,未经北京嘀嘀无限科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010664908.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电解电容器
- 下一篇:一种洗碗机换水方法、装置、电子设备和存储介质