2.4软件逆向工程概述软件逆向工程(Reverse Engineering,叉称反向工程)是指软件开发过程的逆向过程,即从可运行的程序系统出发.对目标文件进行反汇编,得到其汇编代码,然后对汇编代码进行理解和分析,从而得出对应的源程序、系统结构以及相关设计原理和算法思想等。
一般将软件逆向工程分为系统级逆向和代码级逆向两个阶段:第一阶段分析目标系统,标识目标系统的组件以及它们之问相互关系,第二阶段创建不同形式或更高抽象层次的系统表示。系统级逆向包括在程序上运行各种不同的工具和操作系统服务获取信息,检查程序可执行文件,并跟踪程序的输入输…等等。这些信息大多数来自操作系统,因为根据定义,一个程序与外部世界的任何交互行为都必须通过操作系统14】。代码级逆向是从程序的■进制码lI,提取设计理念和算法的复杂过程,它要求软件分析师不但要掌握逆向技术,而且还要对软件开发、CPU以及操作系统有相当深入的认识。软件的复杂度深不可测,即使有编写良好、文档齐伞的源代码,人们也会难以理解软件的内部。而代码级逆向是对低级指令的分析,更是难上加难'4]。
Powered by Zoundry
转载于:https://blog.51cto.com/5505294/930328