软件逆向分析介绍.ppt_第1页
软件逆向分析介绍.ppt_第2页
软件逆向分析介绍.ppt_第3页
软件逆向分析介绍.ppt_第4页
软件逆向分析介绍.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件逆向工程简介,目录,软件逆向工程的概念 软件逆向工程的应用 软件逆向分析的一般流程 软件逆向分析的发展现状 实际工作中相关的逆向分析,软件逆向工程的概念,正向工程解决了功能的实现,说明了哪些功能需要增加和删除; 逆向工程解决了程序理解的问题; 再工程改变了系统的功能和方向,最具根本和深远影响的扩展(再工程除了正向和逆向的分析,还有重构的问题,它是在抽象的层次上改变表示形式,改变了系统,但不改变功能)。,抽象逻辑设计,具体物理实现,正向工程 (Forward Engineering),逆向工程 (Reverse Engineering),再工程 (Reengineering),软件逆向工程的概念,逆向工程 从任何人造的东西中提取知识或者设计规划的过程。 说明:逆向工程的概念早在计算机或者说现代技术出现之前就已经存在。因此逆向工程的范围也不止计算机领域,还包括科学研究和工业制造等。 计算机领域的逆向工程,逆向分析,硬件逆向,软件逆向,系统级逆向,代码级逆向,大范围的分析观察,整体把握,程序二进制码中提取设计理念和算法,软件逆向工程的概念,软件逆向工程,高级语言程序,中间语言程序,具体目标代码,编译、链接,exe lib dll sys,反编译,汇编语言程序,反汇编,编译和反编译不一定要生成汇编代码,一般生成某种设计好的中间语言。但在反编译的二进制解码过程中,首先会生成一种类汇编或汇编代码,因此二进制解码也可称为反汇编,并且反编译的过程中中间代码也有很多级别,类汇编或汇编代码只是低级中间语言。,编译器或反编译器作 词法和语法分析,软件逆向工程的应用,帮助理解 交互协同工作 算法的理解学习 代码检查 比较代码 查找恶意软件 查找软件漏洞 查找软件BUG 代码编译 平台上优化 平台间移植 修复BUG 添加新的特性 代码恢复,Atari和Nintendo游戏开发兼容,根据算法特征进行(主要密码算法),比较程序的相似性,漏洞的利用和挖掘(还需结合软件调试技术),分析理解目标代码,学习吸收别人的技术思路,并向更深层次发展,在逆向分析得到的代码高级抽象表示基础上进行正向工程,软件逆向工程的应用,实际工作重要应用反汇编 漏洞挖掘和利用 对于操作系统和应用软件,漏洞的挖掘和利用,是主动攻击的重要手段,一旦成功效果明显,应用起来也比较广泛,难度工作量较大,现阶段的一般研究方法是在反汇编分析的基础上,结合动态跟踪、调试技术来进行。 Rootkit的深入 Rootkit VS HIPS(主机入侵检测):胜负取决于谁做得更底层,谁知道更多没有公开的底层内容,这需要在反汇编的基础上进行内核的调试,探索底层未知的部分,网上发表的都是过时的或者不是非常重要的“点拨”。,原意是根权限工具,而实际中常指使用了Rootkit技术的病毒、木马,他与传统木马(R3)的不同在于:通过加载一个驱动或者其它手段,使部分代码或者全部代码都在内核(R0)中进行,熟练的汇编语言基础 熟练掌握常用反汇编调试工具的使用 熟练掌握相关操作系统的知识及调试技巧,软件调试,张银奎,电子工业出版社 ROOTKITSWindows内核的安全防护,Butler,J/Hog lund,G,清华大学出版社 Reverse Engineering Code with IDA Pro,软件逆向工程的应用,实际工作重要应用反汇编(续) 代码恢复理解 分析有价值的二进制程序,获取并理解其(关键)功能结构,提高自己的技术水平,扩展学习、获取技术的渠道,摆脱自身研究的不足。 算法的识别 利用(密码)算法在汇编级别的特征,进行相关的算法识别;当然也有在抽象语言级别上进行的(现阶段研究不太成熟,非主要手段)。,可能有些时候还需要脱壳方面的技术,软件逆向分析的一般流程,解码/反汇编 (Decode/Disassemble),目标二进制代码,中间语言翻译 (Intermedia Language Translate),数据流分析 (Data Flow Analysis),控制流分析 (Control Flow Analysis),其它分析和优化 (Others),高级抽象代码,汇编/类汇编代码,各级中间语言,软件逆向分析的发展现状,根据应用用途大致分为反汇编核反编译两个发展方向 反汇编 IDA 全名(IDA Pro Disassembler and Debugger),DataRescue公司的强大专业反汇编调试软件; 最好的静态反汇编工具,针对80X86架构作了许多的优化和额外的识别分析(现今分析最为透彻的产品),当然也支持其它架构的处理器,另外也支持跟踪调试。 强大的功能扩展 Processor:扩展处理器支持 Plug-in:IDA功能扩展 Loader:支持不同的可执行文件支持 Debugger:不同平台和(远程)调试的支持,静态密码算法识别有很广泛应用,特别是嵌入式系统的非X86结构,研究比较成熟(OpenRCE),软件逆向分析的发展现状,OllyDbg 32位Windows系统环境下的二进制文件分析调试工具,其重点在于动态跟踪分析二进制代码,但由于这些操作都是在目标代码进行反汇编后进行,因此也常被作为一款反汇编工具使用。 D32Aam 国产的针对Windows平台下PE格式文件的优秀反汇编器,其提供快速的静态反汇编和16进制文件编辑功能,另外还有一些便利的内存操作和修改功能。 其它开源反汇编引擎,静态反汇编: IDA最全面强大; C32Asm比较轻快;,软件逆向分析的发展现状,反编译 dcc/UQBT/Boomerang dcc:Cristina Cifuentes在澳大利亚昆士兰大学博士论文中的反编译原型系统,作为从DOS到C反编译EXE文件的先驱代表,主要通过传统编译优化技术和图论来执行相关分析操作,1994年停止发展更新,有许多的局限,只是概念上的证明程序。 UQBT:主要作者Cristina Cifuentes,其作为一个通用的二进制翻译框架,输入的二进制代码通过逆向分析产生高级的C代码,再通过普通的C编译器编译和优化,最终生成目标平台上对应代码。UQBT目标识二进制翻译,但其框架中前端技术可供逆向分析借鉴使用。 Boomerang 主旨为通过开源社区发展一个通用的反编译器。其重用了dcc和UQBT中的相关技术,并成为新代码逆向研究的主题,不过其也存在不足。,现研究的是动态二进制翻译UQDBT,软件逆向分析的发展现状,CodeSurfer和CodeSufer/x86 CodeSurfer:GRAMMATECH公司的一款功能强大的代码分析、理解、查看工具。 CodeSurfer/x86:整合IDA Pro和CodeSufer两大工具,后者在前者反汇编的结果上进行逆向分析,目标是Inte x86下的可执行文件,作用在于帮助用户进行代码理解和安全性分析等,并被美国空军、海军和其它安全部门广泛采用。,软件逆向分析的发展现状,Hex-rays 反汇编调试器IDA的商业插件,针对Intel x86系列下的程序,在IDA反汇编的基础上进行全局或者拒不的代码逆向分析,得到类C的高级代码表示。 其它 国外对逆向分析的研究一直在发展进行,国内的研究在80年代合肥工业大学进行一系列的研究后,没有再进行较为系统的研究开发。,实际工作中相关的逆向分析,结合实际工作,可能使用最多的逆向分析技术为反汇编,其次是(局部)反编译。 反汇编 常用工具IDA、OllyDbg和C32Asm IDA:全面系统的静态分析,把握整体结构和某些代码细节; OllDbg:动态跟踪调试常用软件; C32Asm:快速静态反汇编和修改。 工具结合使用,分析手段动静结合 如理解有价值的二进制程序,IDA可以全局把握整个程序的架构和构造,并在可知的执行路径上进行相关的实际跟踪; 又如免杀处理OllyDbg和C32Asm都可以结合使用进行免杀时的脱壳和写覆盖处理; 密码算法的识别中IDA的运用。,请输入内容,实际工作中相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论