收藏本站
《合肥工业大学》 2004年
收藏 | 手机打开
二维码
手机客户端打开本文

逆编译中几项关键技术研究

陈凯明  
【摘要】: 逆编译是软件逆向工程的重要组成部分,在支持可执行代码的分析和维护方面起关键的作用。其研究早在1960年就已开始,当时,美国研制针对特定软件的专门用途的逆编译工具用来进行软件移植。随着软件技术的不断发展,对现有软件的学习、理解、改造、维护和复用日益变得重要。在不侵犯软件版权或者经授权的情况下,对引进软件的消化、吸收和汉化也具有广泛的应用。目前软件重用技术被广泛采用,大量第三方的软件构件和中间件被取来应用,这对于安全重要的系统构成了潜在的威胁,逆编译系统将能找到新的应用领域。 逆编译是高度智能的识别过程,是不完全信息的推理过程。虽然其研究开始较早,但至今还没有形成一套系统的理论和方法。并且随计算机理论和技术的发展,研究的对象和内容也在不断变化。尤其在军工和航天等应用领域,出于安全考虑,一些关键软件需通过逆编译验证可执行代码与源码的等价性。 基于这些理由,几年来,作者就逆编译的理论、方法和技术做进一步的探索和研究,尤其是影响逆编译系统实用性的一些关键问题。通过引用人工智能技术、模式匹配技术和程序变换技术等,从不同的方面进行深入分析和综合,不仅在一些新的研究领域取得了明显的创新性成果,也对已有一些困难问题提出了改进的解决方法。具体如下: 1.提出了难度和复杂性都大于系统库函数的用户库函数识别方法,并建立了用户库函数识别模型。过去很少有关于用户库函数的恢复和识别的研究报导。究其原因可能是多方面的,但主要还是与用户库函数的一些必要信息如函数名和参数类型等不易得到有关。通过潜心研究发现,可以根据用户库函数的组织结构和代码特征,将识别过程分为两个阶段,首先将库函数中间代码翻译为可以逆编译的中间语言程序,然后通过现有方法和技术恢复出相应的库函数名、参数个数及类型等。第二阶段根据这些恢复的信息按照系统库函数识别的方法和技术来构造用户库函数识别模板,并进行识别。这些方法和技术已用于某军用软件的分析中。实践证明效果良好。 2.提出了将开关结构的半自动恢复改进成全自动恢复的方法。开关结构恢复是逆编译中的重要部分,也是很困难的部分。本文分析了C语言开关结构在可执行文件中的形式、特点和表示;定义了一种模式语言,用以描述开关结构引导区识别模板;给出了开关结构识别程序和恢复程序的设计原理及实现方 法。识别程序使用这些模板,识别开关结构引导区类型,获取相关信息。恢复 程序可以根据这些信息将不同开关结构转换成统一格式的中间代码形式。使用 该方法可以很容易地针对新编译器或新版本,在逆编译系统中增添新模板。 3.改进类型恢复方法,提出按特征恢复数据类型。逆编译中数据类型恢 复是最困难的部分。文中针对数据类型恢复的困难提出了一种从中间语言代码 中提取各种特征信息,并量化表示,然后按照特征进行分析和综合的数据类型 恢复方法。该方法不仅表达方便,易于维护和移植,而且还能在一定程度上发 现数据类型恢复的错误。文中给出了部分类型的规则表,以实例显示了该方法 的实际使用效果,并对数组和结构恢复的可能情况作了有益的探讨。该方法已 在基于知识的逆编译系统DECLER中被实现。 4.定义一种面向用户阅读、理解、修改和编程的中间语言并探讨了其编 译器的实现方法和技术。当恢复的数据类型不明确时,利用现有技术和工具重 新编译几乎不可能。为此从许多不同中间结果中抽取了一种类型无关的中间格 式,并进行适当规范,命名为1c语言。通过该语言的语法和语义描述可以看 出,该语言具有很多特点:类型说明缺省,控制结构简单,其某些形式类似于 汇编语言,但又包含诸如函数名,条件语句等许多符号信息。针对缺少数据类 型说明的特点,研究设计和实现相应编译器框架,存储分配和语法制导的语义 子程序翻译,将汇编代码翻译为可执行程序和在自定义的代码中连接库函数等 一序列方法和技术。
【学位授予单位】:合肥工业大学
【学位级别】:博士
【学位授予年份】:2004
【分类号】:TP314

【引证文献】
中国期刊全文数据库 前2条
1 黄飞;尹青;蒋烈辉;余弦;李继中;;ARM静态库函数识别技术研究[J];计算机工程与设计;2010年18期
2 王成;王彬;;利用软件逆向工程实现注册算法解密[J];通化师范学院学报;2008年10期
中国博士学位论文全文数据库 前1条
1 齐宁;静态二进制翻译中基于软件规范的函数识别及恢复技术研究[D];解放军信息工程大学;2006年
中国硕士学位论文全文数据库 前5条
1 车少敏;基于逆向工程的工资管理系统的设计与实现[D];南昌大学;2010年
2 王强;基于反编译的可疑行为标注技术的研究与实现[D];解放军信息工程大学;2009年
3 周正;HCO网络操作系统的Cx51实现[D];合肥工业大学;2006年
4 王成;基于Win32的软件逆向工程的研究与应用[D];吉林大学;2008年
5 何宏亮;基于SWF中AS的反编译的研究[D];武汉理工大学;2009年
【参考文献】
中国期刊全文数据库 前10条
1 赵蕾,王开铸;C反编译库函数识别的算法研究及实现[J];计算机研究与发展;1997年04期
2 候文永,陆纪权,史树民,傅铭;软件移植和理解工具——VAX-C反编译系统的研究和实现[J];计算机工程;1992年03期
3 陆纪权;C反编译控制流分析非结构化代码的处理[J];计算机工程;1992年06期
4 陈凯明,刘宗田,王武荣,叶勇;符号执行过程的DFA和CFA[J];计算机工程;2002年11期
5 刘宗田,朱逸芬;符号执行技术在68000C反编译程序中的应用[J];计算机学报;1988年10期
6 赵蕾,王开铸;C反编译控制流恢复的形式描述及算法[J];计算机学报;1998年01期
7 侯文永,徐志宏;反编译过程中的结构变换[J];上海交通大学学报;1996年06期
8 陈凯明,刘宗田;非纯变量下标的数组类型恢复[J];计算机工程与设计;2001年05期
9 刘宗田;可执行程序中的源对应代码区的自动识别技术[J];计算机工程与设计;1997年04期
10 周孔伟,蔡经球;符号执行—介于程序验证和程序调试之间的方法[J];小型微型计算机系统;1982年04期
【共引文献】
中国期刊全文数据库 前10条
1 夏靓;反编译的基本数据类型恢复技术及Lex和Yacc在其中的应用[J];怀化学院学报;2004年05期
2 刘宗田,兰群;C子集程序到C语言程序的变换[J];计算机研究与发展;1991年03期
3 刘宗田;;从机器代码到高级语言程序的转换技术[J];计算机研究与发展;1992年11期
4 许向阳,雷涛,朱虹;反编译中的静态库识别研究[J];计算机工程与应用;2004年09期
5 胡政;陈凯明;;C++逆编译中库函数识别研究[J];计算机工程与应用;2006年03期
6 陈凯明,刘宗田,王武荣,叶勇;符号执行过程的DFA和CFA[J];计算机工程;2002年11期
7 秦青文;王戟;孙旭光;梅文华;;基于IDA-Pro的软件逆向分析方法[J];计算机工程;2008年22期
8 方霞;尹青;蒋烈辉;黄海;何红旗;;基于数据流分析的寄存器参数恢复方法[J];计算机工程;2009年22期
9 刘宗田,朱逸芬;符号执行技术在68000C反编译程序中的应用[J];计算机学报;1988年10期
10 吴伟峰;赵荣彩;;反编译中用户函数与库函数同名的区分技术研究[J];计算机学报;2011年04期
中国重要会议论文全文数据库 前1条
1 陈凯明;钱海;张军;王煦法;;获取用户库函数接口及源代码[A];2005年“数字安徽”博士科技论坛论文集[C];2005年
中国硕士学位论文全文数据库 前10条
1 周丽娜;ARM反编译中的类型分析技术研究[D];解放军信息工程大学;2010年
2 殷文建;面向ARM体系结构的代码逆向分析关键技术研究[D];解放军信息工程大学;2010年
3 黄海;基于IDA的代码解析与中间语言翻译[D];解放军信息工程大学;2009年
4 肖戌;基于符号执行的软件脆弱性分析技术研究[D];电子科技大学;2011年
5 吴滨;汇编级程序辅助分析中的库函数识别技术研究[D];解放军信息工程大学;2011年
6 刘絮颖;反编译中控制流重构与控制结构恢复技术研究[D];解放军信息工程大学;2011年
7 雷涛;可执行程序的反编译[D];华中科技大学;2004年
8 张金波;嵌入式ECMA解释器研究与实现[D];河海大学;2006年
9 厉蒋;SmartASM:面向嵌入式系统的目标代码协同分析工具[D];浙江大学;2006年
10 胡政;C++逆编译中模板库函数识别研究[D];中国科学技术大学;2006年
【同被引文献】
中国期刊全文数据库 前10条
1 李文龙,刘利,汤志忠;软件流水中的循环展开优化[J];北京航空航天大学学报;2004年11期
2 田光辉,黄洁,艾波;关于模块独立性的定量分析[J];北京邮电大学学报;2000年02期
3 杨晴雯,周宇,李晓;WEB图形格式SVG及基于XML+XSL的动态生成技术[J];成都信息工程学院学报;2004年04期
4 徐凯;张明;;C51开发串行总线程序的优化[J];电测与仪表;2005年11期
5 赵蕾,王开铸;C 反编译库函数特点及识别[J];哈尔滨工业大学学报;1997年05期
6 刘宗田;;68000C反编译程序的设计方法[J];计算机研究与发展;1986年06期
7 刘宗田;李力;;8086C逆编译数据类型恢复技术[J];计算机研究与发展;1992年04期
8 张志猛,庄越挺,潘云鹤;面向对象软件的逆向工程[J];计算机研究与发展;2003年07期
9 杜波,李丽娜,吴川;Keil C51与A51的混合编程[J];长春工业大学学报(自然科学版);2003年03期
10 陆伯鹰,谭文安;一种对函数调用优化的方法[J];计算机工程与应用;2002年18期
中国博士学位论文全文数据库 前1条
1 王新宇;大型遗留系统再工程研究[D];浙江大学;2007年
中国硕士学位论文全文数据库 前10条
1 李小英;基于Java的逆向变换方法及工具的研究[D];汕头大学;2002年
2 金海东;基于XML的医学图像存储表示和解析技术研究[D];苏州大学;2002年
3 魏志广;基于C语言的逆向工程的分析与实现[D];河北工业大学;2004年
4 王勇;基于编译原理技术的反汇编实现[D];吉林大学;2004年
5 陈勇;基于XML的地图网络发布技术的研究[D];解放军信息工程大学;2004年
6 雷涛;可执行程序的反编译[D];华中科技大学;2004年
7 王振锋;基于AOP的逆向工程框架及工具的研究[D];西安电子科技大学;2005年
8 解雅坤;基于XML的电力系统图形信息表示的应用研究[D];华北电力大学(河北);2006年
9 马竹根;形式化技术在逆向工程中的应用研究[D];长沙理工大学;2006年
10 符凯;软件架构重构技术的研究与实现[D];西北大学;2007年
【二级引证文献】
中国期刊全文数据库 前1条
1 王茹;;基于软件逆向工程技术和系统研究[J];煤炭技术;2012年09期
中国硕士学位论文全文数据库 前10条
1 余弦;Symbian智能手机固件剖析技术研究[D];解放军信息工程大学;2010年
2 黄玉宁;基于NAC的内网恶意程序防护系统设计与实现[D];电子科技大学;2011年
3 蔡智力;IA-64 Linux平台上的ELF文件加壳技术研究[D];西安电子科技大学;2010年
4 董建业;加密网络程序的逆向分析技术研究[D];北京邮电大学;2011年
5 吴滨;汇编级程序辅助分析中的库函数识别技术研究[D];解放军信息工程大学;2011年
6 魏振方;针对x86_64的二进制翻译若干关键技术研究[D];解放军信息工程大学;2011年
7 邵长侠;Flash组成元素的内容特征提取与标注研究[D];山东师范大学;2012年
8 崔平非;IA-64二进制翻译中软件流水消除技术的研究与实现[D];解放军信息工程大学;2007年
9 孙维新;静态二进制翻译中基本数据类型分析的研究与实现[D];解放军信息工程大学;2007年
10 郑红阳;改进QEMU的多模式指令解码研究[D];华中科技大学;2009年
【二级参考文献】
中国期刊全文数据库 前10条
1 朱逸芬 ,史展和 ,申利民 ,曹蕴锐 ,李宏芒;基于中间语言的逆编译系统CDS[J];合肥工业大学学报(自然科学版);1988年04期
2 刘宗田;;68000C反编译程序的设计方法[J];计算机研究与发展;1986年06期
3 刘宗田,兰群;C子集程序到C语言程序的变换[J];计算机研究与发展;1991年03期
4 刘宗田;李力;;8086C逆编译数据类型恢复技术[J];计算机研究与发展;1992年04期
5 刘宗田;程序变换的一种规范说明方法[J];计算机研究与发展;1998年01期
6 候文永,陆纪权,史树民,傅铭;软件移植和理解工具——VAX-C反编译系统的研究和实现[J];计算机工程;1992年03期
7 陆纪权,侯文永;反编译程序图设计与控制流分析[J];计算机工程;1992年06期
8 孙永强,宋国新,杨澜;程序的结构化和变换[J];计算机学报;1987年04期
9 刘宗田,朱逸芬;符号执行技术在68000C反编译程序中的应用[J];计算机学报;1988年10期
10 赵蕾,王开铸;C反编译控制流恢复的形式描述及算法[J];计算机学报;1998年01期
【相似文献】
中国期刊全文数据库 前10条
1 申利民,唐勇,柯汉水,陈晓谦;基于中间语言的逆编译方法[J];燕山大学学报;1997年01期
2 陈凯明,刘宗田,任传胜;逆编译中面向用户的中间语言设计和实现[J];小型微型计算机系统;2002年10期
3 周会平;王挺;史晓东;陈火旺;齐璇;;一个基于中间语言的汉英机器翻译系统[J];计算机科学;1998年05期
4 CSDN;;微软中间语言和即时编译[J];程序员;2002年04期
5 陈涵生;陈宇能;;Ada程序设计环境的中间语言DIANA[J];计算机应用与软件;1986年05期
6 李筱青,陈晖,陈意云;一种新型类型化中间语言的优化实现技术[J];计算机工程;2005年05期
7 胡燕武,白光野;中间语言X-code的设计思想[J];计算机学报;1983年02期
8 陈欣荣,孟红霞;易于移植的测试图形程序编译器[J];计算机辅助设计与图形学学报;1997年04期
9 恽纪昌;安振庄;;ATLAS语言介绍[J];电子测量技术;1983年03期
10 戴志锋;管建和;;C#中属性定义value参数的值传递机制分析[J];电脑编程技巧与维护;2007年09期
中国重要会议论文全文数据库 前10条
1 熊文新;;提升自然语言向中间语言转换准确性的增强处理[A];第二届全国学生计算语言学研讨会论文集[C];2004年
2 陈发纲;程汉湘;;并联电容器投切开关结构优化研究[A];武汉(南方九省)电工理论学会第22届学术年会、河南省电工技术学会年会论文集[C];2010年
3 陈巍;朱欣华;;数据类型对SINS中导航算法计算精度的影响分析[A];中国仪器仪表学会第五届青年学术会议论文集[C];2003年
4 杨晓峰;李堂秋;洪青阳;;汉英机器翻译系统中的一种词义排歧方法[A];自然语言理解与机器翻译——全国第六届计算语言学联合学术会议论文集[C];2001年
5 黄永平;莫永冬;覃正强;;油料保障数据实时采集系统研究[A];第13届全国计算机、网络在现代科学技术领域的应用学术会议论文集[C];2007年
6 王正良;白林生;王奎;唐炜;;系统贮存可靠性综合评估模型[A];中国工程物理研究院科技年报(1999)[C];1999年
7 李洪涛;丁伯南;谢卫平;邓建军;王厚明;王玉娟;傅贞;万步勇;任靖;孟维涛;龚德森;;200kV/100kA低抖动低预击穿概率环形轨道场畸变开关[A];中国工程物理研究院科技年报(2001)[C];2001年
8 王俊;于爱荣;曹雷;;.NET Web Services的DataSet数据类型在Delphi中的处理与研究[A];'2006系统仿真技术及其应用学术交流会论文集[C];2006年
9 侯月华;刘玉英;王华;裴立端;;提高数据库访问效率的几个技巧[A];第十六届全国煤炭自动化学术年会、中国煤炭学会自动化专业委员会学术会议论文集[C];2006年
10 于成;张沛玲;仲顺安;;基于CPW的MEMS开关的有限元分析[A];2003'全国微波毫米波会议论文集[C];2003年
中国重要报纸全文数据库 前10条
1 贵州 王伟;表名和数据类型[N];电脑报;2004年
2 福建 忠英;手机翻译时代的到来[N];电脑报;2004年
3 王彦明;Sybase中numeric数据类型的使用[N];计算机世界;2002年
4 EMC执行副总裁兼开发总监 Mark Lewis;应该重新划分数据类型[N];中国计算机报;2007年
5 磁动力工作室 明浩;单片机C语言入门讲座(三)—认识数据类型[N];电子报;2005年
6 上海 高博;奔向64位[N];电脑报;2004年
7 王涛;DB2 9 之优劣分析[N];中国计算机报;2007年
8 上海 彭树林;C51编程优化浅谈[N];电子报;2005年
9 刘丽华 金水高 胡凯 梁子柱;国际主流卫生信息模型一览[N];计算机世界;2006年
10 南京邮电学院 李建忠;“Hello,World!”程序[N];计算机世界;2002年
中国博士学位论文全文数据库 前10条
1 陈凯明;逆编译中几项关键技术研究[D];合肥工业大学;2004年
2 郑逢斌;关于计算机理解自然查询语言的研究[D];西南交通大学;2004年
3 齐璇;汉语语义知识的表示及其在汉英机译中的应用[D];国防科学技术大学;2002年
4 马红妹;汉英机器翻译中汉语上下文语境的表示与应用研究[D];中国人民解放军国防科学技术大学;2002年
5 江鹰;国家卫生数据字典XML Schema的构建及应用研究[D];第四军医大学;2007年
6 闵长俊;亚波长金属结构中表面等离子体调控机理及应用研究[D];中国科学技术大学;2008年
7 李剑慧;动态翻译和优化若干关键技术研究[D];复旦大学;2006年
8 辜希武;Web服务组合形式化模型研究[D];华中科技大学;2007年
9 张志宏;基于神经网络理论的难溶性药物渗透泵处方设计专家系统的研究[D];沈阳药科大学;2009年
10 周翀;搜索引擎中文档聚类方法研究[D];华中科技大学;2009年
中国硕士学位论文全文数据库 前10条
1 黄海;基于IDA的代码解析与中间语言翻译[D];解放军信息工程大学;2009年
2 黄大科;分布式异构数据源查询与优化[D];清华大学;2004年
3 周立民;基于.NET高校人力资源管理和自主服务系统的设计与实现[D];电子科技大学;2008年
4 张涛;基于IEC61131-3标准的嵌入式软PLC研究[D];电子科技大学;2007年
5 洪青阳;汉英机器翻译英文生成模块XMGEN的设计与实现[D];厦门大学;2001年
6 蒋晓科;中文数据库自然语言查询技术研究[D];暨南大学;2008年
7 包苏鲁德;多语种机器翻译平台关键技术研究[D];复旦大学;2008年
8 韩冬;基于虚拟寄存器的中间语言[D];西南交通大学;2009年
9 魏欢;安全数据库管理系统中的用户自定义数据类型的研究与实现[D];华中科技大学;2004年
10 何新;跷板式开关装置机械动态性能分析[D];南京理工大学;2008年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62791813
  • 010-62985026