软件逆向分析介绍.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件逆向分析介绍

软件逆向工程简介 目录 软件逆向工程的概念 软件逆向工程的应用 软件逆向分析的一般流程 软件逆向分析的发展现状 实际工作中相关的逆向分析 软件逆向工程的概念 正向工程解决了功能的实现,说明了哪些功能需要增加和删除; 逆向工程解决了程序理解的问题; 再工程改变了系统的功能和方向,最具根本和深远影响的扩展(再工程除了正向和逆向的分析,还有重构的问题,它是在抽象的层次上改变表示形式,改变了系统,但不改变功能)。 抽象逻辑设计 具体物理实现 正向工程 (Forward Engineering) 逆向工程 (Reverse Engineering) 再工程 (Reengineering) 软件逆向工程的概念 逆向工程 从任何人造的东西中提取知识或者设计规划的过程。 说明:逆向工程的概念早在计算机或者说现代技术出现之前就已经存在。因此逆向工程的范围也不止计算机领域,还包括科学研究和工业制造等。 计算机领域的逆向工程 逆向分析 硬件逆向 软件逆向 系统级逆向 代码级逆向 大范围的分析观察,整体把握 程序二进制码中提取设计理念和算法 软件逆向工程的概念 软件逆向工程 高级语言程序 中间语言程序 具体目标代码 编译、链接 exe lib dll sys 反编译 汇编语言程序 反汇编 编译和反编译不一定要生成汇编代码,一般生成某种设计好的中间语言。但在反编译的二进制解码过程中,首先会生成一种类汇编或汇编代码,因此二进制解码也可称为反汇编,并且反编译的过程中中间代码也有很多级别,类汇编或汇编代码只是低级中间语言。 编译器或反编译器作 词法和语法分析 软件逆向工程的应用 帮助理解 交互协同工作 算法的理解学习 代码检查 比较代码 查找恶意软件 查找软件漏洞 查找软件BUG 代码编译 平台上优化 平台间移植 修复BUG 添加新的特性 代码恢复 Atari和Nintendo游戏开发兼容 根据算法特征进行(主要密码算法) 比较程序的相似性 漏洞的利用和挖掘(还需结合软件调试技术) 分析理解目标代码,学习吸收别人的技术思路,并向更深层次发展 在逆向分析得到的代码高级抽象表示基础上进行正向工程 软件逆向工程的应用 实际工作重要应用——反汇编 漏洞挖掘和利用 对于操作系统和应用软件,漏洞的挖掘和利用,是主动攻击的重要手段,一旦成功效果明显,应用起来也比较广泛,难度工作量较大,现阶段的一般研究方法是在反汇编分析的基础上,结合动态跟踪、调试技术来进行。 Rootkit的深入 Rootkit VS HIPS(主机入侵检测):胜负取决于谁做得更底层,谁知道更多没有公开的底层内容,这需要在反汇编的基础上进行内核的调试,探索底层未知的部分,网上发表的都是过时的或者不是非常重要的“点拨”。 原意是根权限工具,而实际中常指使用了Rootkit技术的病毒、木马,他与传统木马(R3)的不同在于:通过加载一个驱动或者其它手段,使部分代码或者全部代码都在内核(R0)中进行 熟练的汇编语言基础 熟练掌握常用反汇编调试工具的使用 熟练掌握相关操作系统的知识及调试技巧 《软件调试》,张银奎,电子工业出版社 《ROOTKITS—Windows内核的安全防护》,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:支持不同的

文档评论(0)

docman126 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档