频道栏目
读书频道 > 安全 > 逆向工程核心原理
1.2.1 逆向分析法
2014-04-24 11:16:55     我来说两句
收藏   我要投稿

本文所属图书 > 逆向工程核心原理

本书十分详尽地介绍了代码逆向分析的核心原理。作者在Ahnlab 研究所工作多年,书中不仅包括其以此经验为基础亲自编写的大量代码,还包含了逆向工程研究人员必须了解的各种技术和技巧。彻底理解并切实掌握逆向工  立即去当当网订购

分析可执行文件时使用的方法大致分为两种:静态分析法和动态分析法。

1. 静态分析法 

静态分析法是在不执行代码文件的情形下,对代码进行静态分析的一种方法。静态分析时并不执行代码,而是观察代码文件的外部特征,获取文件的类型(EXE 、DLI、DOC、ZIP等)、大
小、PE头信息、Import/Export API 、内部字符串、是否运行时解压缩、注册信息、调试信息、数字证书等多种信息,如图1-1所示。此外,使用反汇编工具(Disassembler)查看内部代码、分析代码结构也属于静态分析的范畴。

我们通过静态分析方法会获得多种信息,这些信息是进行动态分析的重要参考资料,对代码的动态分析非常有帮助。

2. 动态分析法 

动态分析法是在程序文件的执行过程中对代码进行动态分析的一种方法,它通过调试来分析代码流,获得内存的状态等。通过动态分析法,我们可以在观察文件、注册表(Registry)、网络等的同时分析软件程序的行为,如图1-2所示。此外,动态分析中还常常使用调试器(Debugger )分析程序的内部结构与动作原理。

我在逆向分析代码时,通常先采用静态分析法收集代码相关信息,然后通过收集到的信息推
测程序的结构与行为机制。这些推测对动态分析具有非常高的参考价值,能为动态分析提供很多创意。对程序代码进行逆向分析的过程中,灵活使用静态与动态两种分析方法,动静结合,可以极大地提高代码的分析效率,增加分析的准确性,缩短代码分析时间。

 

提示

有人会误认为代码逆向分析就是调试代码。虽然代码调试在代码逆向分析过程中占据很大比重,也十分有意思,但它只是代码逆向分析的一个从属概念。请记住,代码逆向分析的方法多种多样,实际的代码逆向分析过程中通常会同时使用多种分析方法。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.2 代码逆向工程
下一篇:1.2.2 源代码、十六进制代码、汇编代码
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站