基于中间语言的JNI内存泄漏检查 |
| |
引用本文: | 蒋挺宇, 王鹏, 杨述, 褥震, 董渊, 王生原, 嵇智源. 基于中间语言的JNI内存泄漏检查[J]. 计算机研究与发展, 2015, 52(4): 898-906. DOI: 10.7544/issn1000-1239.2015.20131909 |
| |
作者姓名: | 蒋挺宇 王鹏 杨述 褥震 董渊 王生原 嵇智源 |
| |
作者单位: | 1(清华大学计算机科学与技术系 北京 100084);2(科技部高技术研究发展中心 北京 100044) (Jiangty08@gmail.com) |
| |
基金项目: | 国家自然科学基金项目(61272086);“核高基”国家科技重大专项基金项目(2012ZX01039-004-08) |
| |
摘 要: | JNI技术支持Java与本地C/C++的相互调用,在Android等混合语言实现的系统中有着广泛应用,但语言之间的安全特性差异使其成为安全薄弱环节,现有的分析方法难以处理多语言相互调用产生的安全缺陷.以JNI调用中易产生的内存泄漏为例,开展Java/C++JNI跨语言分析的研究.采用扩展的Java Bytecode(Bytecode*)指令作为C++语义的解释来消除跨语言分析的障碍.围绕JNI调用中内存泄漏的问题,做了以下3方面工作:1)定义兼容Java/C++语言的分块内存模型;2)基于LLVM/LLJVM,设计实现了C++到Bytecode*的翻译策略;3)建立方法调用图,提取方法摘要,利用过程间分析方法检测JNI调用中的内存泄漏.针对具有典型内存泄漏特征的JNI实例翻译检测表明,该工作能够准确检测出Java/C++混合语言中的内存泄漏,对于JNI混合语言编程的理解和漏洞分析具有重要价值.
|
关 键 词: | Java本地调用 跨语言分析 语义扩展 字节码 内存泄漏 |
本文献已被 CNKI 等数据库收录! |
| 点击此处可从《计算机研究与发展》浏览原始摘要信息 |
|
点击此处可从《计算机研究与发展》下载免费的PDF全文 |
|