逆向工程简介

定义

指对软件的结构,流程,算法,代码等进行逆向拆解和分析

研究目标

导出软件产品的源代码,设计原理,结构,算法,处理过程,运行方法及相关文档等

应用领域

主要应用于 软件维护 , 软件破解 , 漏洞挖掘 , 恶意代码分析 逆向分析流

  • 研究保护方法,去除保护功能
  • 反汇编目标软件,跟踪,分析代码功能
  • 生成目标软件的设计思想,架构,算法等相关文档
  • 注入代码,开发出更完善的应用软件

软件逆向的历史

20 世纪 60 年代 为挽救第二代计算机软件及加速第三代计算机软件开发,美国研制专用反编译工具进行软件移植 1993 年 Chikofs等人于发起逆向工程会议并每年举行一次,研究和讨论软件逆向工程的问题,技术及其支持工具 80 年代后期到 90 年代 关于解决软件逆向工程和软件版权的矛盾基本上有了结果,各国纷纷针对软件逆向工程进行立法,不是约束而是规范该领域的研究工作 2007 年 1 月 17 日 最高人民法院发布司法解释: 通过自行开发研制或者反向工程等方式获得的商业秘密,将不被认定为反不正当竞争法有关条款规定的侵犯商业秘密行为。

逆向研究的目的和意义

  • 充分利用和改造现有软件,对现有软件进行再设计,再工程,使软件功能得到大幅提高以满足用户的需要
  • 通过软件逆向工程将过时的软件系统转化为易演化系统
  • 破除商业闭源,技术保护(这阻碍了软件科学的发展).开放源代码

CTF竞赛中的逆向

涉及Windows/Linux/Android平台的多种编程技术,要求利用常用工具对源代码及二进制文件进行逆向分析,掌握Android移动应用APK文件的逆向分析,掌握加解密、内核编程、算法、反调试和代码混淆技术。 —— 《全国大学生信息安全竞赛参赛指南》

要求

  • 熟悉如操作系统,汇编语言,加解密等相关知识
  • 具有丰富的多种高级语言的编程经验
  • 熟悉多种编译器的编译原理
  • 较强的程序理解和逆向分析能力

results matching ""

    No results matching ""