反编译中的数据类型恢复问题--《东南大学》2005年硕士论文 收藏本站 首页 期刊全文库 学位论文库 会议论文库 年鉴全文库 学术百科 工具书 CNKI学问 注册|登录|我的账户 基础科学|工程科技I辑|工程科技II辑|医药卫生科技|信息科技|农业科技|哲学与人文科学|社会科学I辑|社会科学II辑|经济管理 高级搜索:用" 反编译技术 局部性原理 "到知网平台检索,点击这里搜索更多... 《东南大学》 2005年 加入收藏 获取最新 反编译中的数据类型恢复问题 夏靓 【摘要】:反编译技术是将机器代码程序变换成与其功能等价的高级语言形式的代码的有关技术。它对于软件的移植、理解、维护以及开发都起着重要作用。 目前,反编译技术研究的热点问题是数据类型恢复问题,比较成熟和完善的数据类型恢复技术尚未被提出。本文对该问题进行了理论上的探讨,并提出了一个局部性原理的假设。基于该假设,我们提出了一套反编译的数据类型恢复算法。并给出了该算法的一个具体实现,该实现利用到了编译器设计中常用的两个工具:Lex和Yacc.实验结果说明,我们的数据类型恢复算法的效果比较理想。 该数据类型恢复算法具有如下几个特点:严格且完备的理论基础、对数据类型恢复问题讨论地比较全面、实现简单、具有较强的实用性和可推广性。 我们还对面向对象编程语言中的类class)类型的识别问题进行了研究,并得出了该问题本质上已不再是简单的数据类型恢复,而是程序的结构化问题的结论。 为了从理论上对数据类型恢复问题进行探讨,我们建立了两个形式化的简化的语言模型:源语言模型(C-Sub)和目标语言模型(Assembly-Sub)。通过研究它们之间的编译和反编译的数据变化的实质,提出了局部性原理的假设。并在该假设基础上,为Assembly-Sub语言定义了一个类型系统。在此系统中,我们为每条指令都制定严格的类型推导规则。我们的数据类型恢复算法依照这组规则对Assembly-Sub程序的所有指令按一定顺序进行逐条分忻,收集其中的基本类型变量的类型信息。算法最后再对这些信息进行综合分析,以识别程序中可能存在的复杂类型变量。从而达到了数据类型恢复的目的。 我们还将该算法的实现推广到了源语言为C语言,编译器为Turbo C v2.0,目标语言为Intel 8086汇编的情况,实现过程中我们利用到了编译器设计中常用的两个工具:Lex和Yacc.它们在很大程度上简化了我们算法的实现。 【关键词】:反编译技术 局部性原理 数据类型恢复算法 形式化语言模型 类型系统 class类型 【学位授予单位】:东南大学【学位级别】:硕士【学位授予年份】:2005【分类号】:TP314【目录】: 摘要5-6 Abstract6-9 第一章 背景介绍9-15 §1.1 反编译技术简介9 §1.2 发展历史和现状9-12 §1.3 本文的主要工作及内容安排12-15 第二章 反编译技术综述15-26 §2.1 运行时环境15-16 §2.1.1 程序的机器代码格式15-16 §2.1.2 运行时的堆栈结构16 §2.1.3 机器代码中数据的存贮16 §2.2 反编译过程的模块划分16-17 §2.3 控制流分析17-21 §2.3.1 控制流分析基本原理17-18 §2.3.2 常用的高级控制结构18-19 §2.3.3 区间理论19 §2.3.4 可归约控制流图的结构化算法19-20 §2.3.5 不可归约控制流图的结构化算法20-21 §2.3.6 总结21 §2.4 数据类型恢复问题简介21 §2.5 库函数识别21-22 §2.6 反编译过程中的其他模块22-25 §2.6.1 反汇编22-23 §2.6.2 语言和编译器版本识别23 §2.6.3 中间语言23 §2.6.4 数据流分析23-25 §2.6.5 翻译器25 §2.7 总结25-26 第三章 数据类型恢复算法及其理论基础26-49 §3.1 概述26-27 §3.2 数据类型恢复问题的研究方法27-28 §3.3 数据类型恢复算法的理论基础28-34 §3.3.1 两个模型语言的形式化定义28-31 §3.3.2 编译器本质及局部性原理31-34 §3.4 Assembly-Sub的类型系统及其类型恢复算法34-42 §3.5 数据类型恢复算法实例分析42-47 §3.6 class类型识别的讨论47-49 第四章 数据类型恢复算法的实现技术49-57 §4.1 Lex和Yacc在数据类型信息收集中的应用49-53 §4.2 对数据类型信息进行综合分析的实现53-54 §4.3 一些特殊的变量类型的识别54-55 §4.4 与其它数据类型恢复技术的比较55-57 第五章 结论及进一步的工作57-59 §5.1 结论57-58 §5.2 进一步的工作58-59 参考文献59 下载全文 更多同类文献 团体订阅中心 CAJ全文下载 (如何获取全文? 欢迎:购买知网充值卡、在线充值、在线咨询) CAJViewer阅读器支持CAJ、PDF文件格式 【引证文献】 中国硕士学位论文全文数据库 前1条 1 周丽娜;ARM反编译中的类型分析技术研究[D];解放军信息工程大学;2010年 【参考文献】 中国期刊全文数据库 前2条 1 赵蕾,王开铸;C 反编译库函数特点及识别[J];哈尔滨工业大学学报;1997年05期 2 陈凯明,刘宗田;非纯变量下标的数组类型恢复[J];计算机工程与设计;2001年05期 【共引文献】 中国博士学位论文全文数据库 前1条 1 陈凯明;逆编译中几项关键技术研究[D];合肥工业大学;2004年 中国硕士学位论文全文数据库 前2条 1 周丽娜;ARM反编译中的类型分析技术研究[D];解放军信息工程大学;2010年 2 何宏亮;基于SWF中AS的反编译的研究[D];武汉理工大学;2009年 【同被引文献】 中国期刊全文数据库 前2条 1 刘宗田;李力;;8086C逆编译数据类型恢复技术[J];计算机研究与发展;1992年04期 2 陈凯明,刘宗田;非纯变量下标的数组类型恢复[J];计算机工程与设计;2001年05期 【二级引证文献】 中国硕士学位论文全文数据库 前1条 1 刘絮颖;反编译中控制流重构与控制结构恢复技术研究[D];解放军信息工程大学;2011年 【二级参考文献】 中国期刊全文数据库 前6条 1 刘宗田;;68000C反编译程序的设计方法[J];计算机研究与发展;1986年06期 2 刘宗田;李力;;8086C逆编译数据类型恢复技术[J];计算机研究与发展;1992年04期 3 刘宗田;程序变换的一种规范说明方法[J];计算机研究与发展;1998年01期 4 候文永,陆纪权,史树民,傅铭;软件移植和理解工具——VAX-C反编译系统的研究和实现[J];计算机工程;1992年03期 5 刘宗田;68000C反编译系统中的变量类型恢复[J];微计算机应用;1989年06期 6 申利民,唐勇;基于CFA和DTA的逆编译方法[J];小型微型计算机系统;1998年03期 【相似文献】 中国期刊全文数据库 前10条 1 胡荣贵,陈意云,郭帆;机器语言的类型化及代码的安全检查[J];计算机研究与发展;2004年06期 2 丁志义;宋国新;邵志清;;类型系统与程序正确性问题[J];计算机科学;2006年01期 3 袁霖;王亚弟;韩继红;;一种基于扩展Spi演算的类型系统[J];计算机工程与应用;2007年03期 4 余万涛;胡光锐;;一种基于程序语言的移动计算安全模型[J];计算机工程;2006年12期 5 赵秀凤;郭渊博;方青坡;;基于信息流分析的C代码安全编译技术研究[J];微电子学与计算机;2006年S1期 6 李文化;;基于.NET的大整数类设计与实现[J];海南大学学报(自然科学版);2010年02期 7 王立斌,陈克非;为π演算建立具有安全级别的简单类型系统(英文)[J];中国科学院研究生院学报;2002年03期 8 傅城,尤晋元;类型化移动资源(英文)[J];软件学报;2005年05期 9 魏磊;谢立;;基于源代码的指针分析算法的安全性改进[J];计算机应用与软件;2008年12期 10 李留英,齐璇,张猛,齐治昌;程序设计语言及相关领域的研究方向[J];计算机工程与科学;1999年02期 中国重要会议论文全文数据库 前10条 1 胡茂福;侯整风;;一种高效流分类加速器的设计与实现[A];第四届中国智能计算大会论文集[C];2010年 2 黄玉兰;龚才春;许洪波;程学旗;;基于局部性原理的有意义串提取方法[A];第四届全国信息检索与内容安全学术会议论文集(上)[C];2008年 3 苏剑煌;赵致琢;李慧琪;李松斌;侯米娜;;Gdel语言编译中多态多类类型的实现技术简报[A];2006年全国理论计算机科学学术年会论文集[C];2006年 4 赵秀凤;郭渊博;方青坡;;基于信息流分析的C代码安全编译技术研究[A];2006年全国开放式分布与并行计算机学术会议论文集(三)[C];2006年 5 侯米娜;赵致琢;李慧琪;苏剑煌;李松斌;;逻辑程序设计语言Gdel中等词的研究及实现简报[A];2006年全国理论计算机科学学术年会论文集[C];2006年 6 祁鹏;宫云战;金大海;;面向故障的C++程序全局静态分析框架[A];第三届全国软件测试会议与移动计算、栅格、智能化高级论坛论文集[C];2009年 7 赵建昌;张荣安;;营口中板厂炼钢工程水处理自动控制系统[A];第二届全国冶金节水、污水处理技术研讨会论文集[C];2005年 8 徐信兰;卢乃弟;王学海;;兰花蕉花粉的扫描电镜样品制备技术[A];第十次全国电子显微学会议论文集(Ⅰ)[C];1998年 9 李鹏;赵成勇;;利用Java技术实现基于XML的Web服务[A];Java技术及应用的进展——第七届中国Java技术及应用交流大会文集[C];2004年 10 易绵竹;姚爱钢;;一种基于语义词典的俄语文本自动语义分析技术SemLP[A];中文信息处理前沿进展——中国中文信息学会二十五周年学术会议论文集[C];2006年 中国重要报纸全文数据库 前10条 1 李琨;IBM百度共拓企业搜索[N];中国计算机报;2006年 2 ;浅谈数据库新技术[N];中国计算机报;2003年 3 谢海燕;WSD依靠多种技术和规范[N];计算机世界;2007年 4 本报记者 蒙华 刘荣慧;设计多类型系统 完善太阳能热利用市场[N];中国建材报;2007年 5 李玉祥 沈刘军;别被Web Service搞糊涂[N];电脑报;2003年 6 广州市信息中心应用开发处 秦中广;服务器性能评估的实战技巧[N];计算机世界;2004年 7 记者 陈勇、实习生 胡帆、刘霄;华中科大填补国内一空白[N];湖北日报;2006年 8 边歆;商务智能:进化与简化[N];网络世界;2007年 9 郑经;央行“能源消耗统计系统”通过专家评审[N];中国改革报;2008年 10 刘清秀;软件人的福音[N];中国邮政报;2003年 中国博士学位论文全文数据库 前10条 1 姚剑波;基于句法分析的安全信息流[D];贵州大学;2006年 2 左天军;Java虚拟机安全性的形式化分析和验证[D];西安电子科技大学;2005年 3 胡燕;编译过程安全性基础研究[D];中国科学技术大学;2007年 4 陈波;基于软件体系结构的构件模型和语言研究[D];国防科学技术大学;2007年 5 余万涛;基于Agent的移动计算及其安全性研究[D];上海交通大学;2007年 6 姜励;基于程序设计语言的安全降密模型研究[D];浙江大学;2008年 7 华保健;一种用于指针程序安全性证明的指针逻辑[D];中国科学技术大学;2008年 8 项森;基于逻辑的程序验证方法在高可信软件开发上的应用[D];中国科学技术大学;2006年 9 吴刚;面向网络计算的移动智能体研究与实现[D];中国人民解放军国防科学技术大学;2000年 10 李兆鹏;汇编指针程序安全性验证的研究[D];中国科学技术大学;2008年 中国硕士学位论文全文数据库 前10条 1 夏靓;反编译中的数据类型恢复问题[D];东南大学;2005年 2 刘丹;XML数据库类型系统研究[D];华中科技大学;2004年 3 孙伟;基于P2P技术的网格资源管理模型的研究[D];辽宁工程技术大学;2006年 4 黄邵;Web服务组合的形式化建模与相容性分析[D];湖南师范大学;2006年 5 袁霖;基于Spi演算的密码协议自动化分析技术研究[D];中国人民解放军信息工程大学;2005年 6 郭庆北;基于用户可信度的入侵检测系统的研究[D];山东大学;2006年 7 刘国清;网格环境下层次式资源发现方法研究[D];湖南大学;2007年 8 昌杰;逻辑程序设计语言G(?)del的形式化过程性语义[D];厦门大学;2009年 9 苏剑煌;G(?)del语言编译系统的设计与实现[D];厦门大学;2007年 10 李松斌;G(?)del语言编译系统中推理机的设计与实现[D];厦门大学;2007年 相关机构 >贵州大学 >浙江大学 >上海交通大学 >西北大学 >西北工业大学 >华中科技大学 >中国科学技术大学 >西安电子科技大学 >清华大学 >中国科学院研究生院(软件... 相关作者 >卢亚辉 >项森>胡燕 >葛琳>陈波 >郭宇>姚剑波 >李兆鹏>华保健 >吴刚>余万涛 >杨红丽>张涛 >林春晓>辜希武 >黄文集>王宇德 >左天军>姜励 快捷付款方式 订购知网充值卡 订购热线 帮助中心 银行卡 支付宝 神州行 知网卡 手机短信 更多>> 免费送卡上门 银行汇款购卡 邮局汇款购卡 400-819-9993 800-810-6613 010-62985026 常见问题 在线咨询 阅读器下载 广告服务 知网卡 关于知网 主办:中国知网 数字出版:《中国学术期刊(光盘版)》电子杂志社 地址:北京清华大学 84-48信箱 知识超市公司京ICP证040431号互联网出版许可证 新出网证(京)字008号 订购热线:400-819-9993 010-62982499 服务热线:800-810-6613 010-62791813 在线咨询:http://help.cnki.net 传真:010-62780361 北京市公安局海淀分局 备案号110 1081725