符号执行法提取Android原生代码控制流图
51 浏览量
更新于2024-08-28
收藏 618KB PDF 举报
“基于符号执行的Android原生代码控制流图提取方法是一种新的技术,旨在从Android应用软件的原生代码中生成控制流图。这种方法利用符号执行来模拟JNI函数调用,并通过约束求解器解析符号,从而实现对原生库中函数的控制流图提取。开发的原型系统CFGNative能够准确识别样本中的所有JNI函数和原生方法,并能在合理的时间内达到高代码覆盖率。”
在计算机科学领域,控制流图(Control Flow Graph, CFG)是一种重要的程序分析工具,它表示了程序中各个指令的控制流程。在Android应用中,原生代码(Native Code)通常指的是用C/C++编写的部分,这些代码可以通过Java Native Interface (JNI)与Java代码交互。由于原生代码的复杂性和动态性,传统的静态分析方法往往难以完全理解和提取其控制流图。
符号执行是一种程序分析技术,它将程序的输入视为符号变量而不是具体的值,并跟踪程序执行路径上的所有可能状态。在Android原生代码控制流图提取中,符号执行被用来创建一个虚拟的执行环境,模拟JNI函数调用的过程。JNI是Java平台的一部分,允许Java代码调用本地(非Java)代码,通常是为了提升性能或利用特定硬件功能。
在这个研究中,研究人员提出了一个名为CFGNative的原型系统,该系统利用符号执行来处理原生库中的函数。当遇到JNI函数调用时,系统会对其进行模拟,这涉及到生成对应的约束,并使用约束求解器来解决这些符号表达式,以确定可能的执行路径。这种技术的优势在于可以覆盖到多种可能的执行情况,从而生成更完整的控制流图。
实验结果证明了CFGNative的有效性,它能够准确地识别并处理样例中的所有JNI函数调用和原生方法。此外,系统在可接受的时间内达到了较高的代码覆盖率,这意味着它能够分析大量的代码路径,这对于理解和调试复杂的Android应用原生代码非常有价值。
这项工作为Android应用的安全分析和逆向工程提供了新的工具和技术,有助于提高对原生代码的理解和漏洞检测的效率。通过符号执行和控制流图提取,开发者和安全专家可以更好地理解应用程序的行为,发现潜在的安全问题,以及优化代码性能。
2020-12-16 上传
点击了解资源详情
2024-11-13 上传
2024-11-13 上传
weixin_38559866
- 粉丝: 1
- 资源: 903
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载