[发明专利]基于模拟执行的Native动态链接库分析方法及系统在审
申请号: | 202310354866.1 | 申请日: | 2023-04-04 |
公开(公告)号: | CN116594861A | 公开(公告)日: | 2023-08-15 |
发明(设计)人: | 傅建明;徐贯虹 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/445 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 肖明洲 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 模拟 执行 native 动态 链接 分析 方法 系统 | ||
本发明公开了一种基于模拟执行的Native动态链接库分析方法及系统,首先以现有的符号执行工具及其扩展功能为基础,通过对JNI进行建模并hook其底层调用、完善Native层模拟调用处理,从而减少执行过程中的多余分支,有效避免传统符号执行的路径爆炸问题,提高了模拟执行的效率。其次,根据Android应用加载Native动态链接库的机制,模拟Native库加载过程,以满足JNI调用时的依赖,解决二进制文件内的程序混淆与数据加密问题,更加准确地分析Java与Native注册函数映射关系,解决现有的Android应用中跨层数据流分析断点问题。最后记录Native库中的关键JNI行为以及与Java层的交互,生成Native动态链接库的分析结果报告,为进一步的隐私数据泄露检测、漏洞挖掘等研究提供支持。
技术领域
本发明属于软件安全程序分析技术领域,涉及一种Native动态链接库分析方法及系统,具体涉及一种基于模拟执行的通过获取Java与Native注册函数映射进而获得Native动态链接库分析方法及系统。
背景技术
随着Android操作系统的广泛应用,越来越多的应用程序使用Native库来实现更高效的代码执行和底层硬件访问。开发人员常常使用Native库来实现一些性能要求较高的功能,如图形处理、音频处理、加密等。Native库是使用C/C++语言编写的动态链接库,可以被Java层代码使用。由于Native库中的函数由C/C++编写,而Java层代码则由Java编写,因此二者的交互存在一定的限制。在Android中,Java层代码通过JNI(Java NativeInterface)技术调用Native库中的函数,实现与底层系统的交互。在Java代码中,可以通过native关键字声明一个方法,并在Native代码中实现这个方法。在Native代码中,需要使用JNI函数RegisterNatives注册这个方法,并将其与Java代码中的方法名和参数类型一一对应。
在对Android应用进行程序分析时,由于Java层与Native层语言的不同以及运行机制的不同,难以对Android应用程序进行统一的分析。现有的Android应用程序分析工具大多忽略了对Native层的分析。工具FlowDroid在数据流分析时选择不考虑连通Native层分析;Wei Fengguo等人设计了静态分析框架JN-SAF,但由于其Native层的数据流分析基于符号执行,存在路径爆炸、容易崩溃等问题,无法用于实际应用中进行大量自动化处理。由此可见,Android应用的跨层数据流分析断点,是对其进行程序分析的一个障碍。
综上,由于Java代码和Native代码是通过JNI(Java Native Interface)进行交互的,因此在进行Android应用安全分析时,需要获取Java与Native注册函数之间的映射关系,以便准确地了解Java层代码和Native层代码之间的函数调用关系,更好地理解应用程序的行为和特征。传统的获取Java与Native注册函数映射的方法通常采用静态分析技术,对应用程序进行反编译或动态调试,但这些方法往往需要大量的人工干预,并且容易受到代码混淆等因素的影响,导致分析结果不准确或不完整;而静态符号执行技术容易产生路径爆炸,并且由于符号执行与真实运行的差异性,分析容易遇到各种未知问题与错误,难以适用于大规模数量实际应用的自动化分析。
发明内容
针对上述背景技术中存在的问题,本发明提出一种基于模拟执行的通过获取Java与Native注册函数映射进而获得Native动态链接库分析方法及系统,该方法利用强符号执行框架为基础,建模JNI结构及其API,模拟Native动态链接库的加载过程,能够对抗控制流混淆、数据混淆、反调试等程序保护手段,对Android应用进行分析,准确、高效地获取Java与Native注册函数之间的映射关系,模拟执行结束后,生成Native动态链接库的分析结果报告。
本发明的方法所采用的技术方案是:一种基于模拟执行的Native动态链接库分析方法,包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310354866.1/2.html,转载请声明来源钻瓜专利网。