第35章 优秀分析工具的五种标准

本文最后更新于:2022年5月27日 下午

第35章优秀分析工具的五种标准

35.1 工具

无论哪个领域,技术人员(工程师)都有适合自己的工作环境以及用着顺手的工具(装备)。所谓技术人员,就是指熟练使用某一类工具并用这些工具完成特定任务的人。即便是同一套工具,不同水平的技术人员使用时也会产生完全不同的效果(甚至有人会亲自制作要使用的工具)。并 且,技术人员拥有并熟悉了一套适合自己的工具后,一般会长期使用,不到万不得已是不会换用其他工具的(即使更换,也会换同一公司生产的新品)。不管怎样,使用别人的工具、在别人的工作环境下做事,总让人感觉不方便。也就是说,只有在自己的工作环境下使用自己用着顺手的工具,才能100%发挥出自己的技术水平。

35.2代码逆向分析工程师

代码逆向分析工程师(Reversed是什么样的呢?代码逆向分析工程师是IT工程领域的工作人员,他们与上面提到的普通技术人员在本质上并没有什么不同。代码逆向分析领域中使用的工具有数十种之多,各类工具又有多种不同的产品。此外,IT领域的特性又会导致不断涌现出大量新工具。代码逆向分析中用到的工具种类相当多,常用的列出如下(此外还有大量未提及的工具):

逆向分析工具的种类:

□ disassembler

□ debugger-PE、script 等

□ development tool-assembly、C/C <- f 等

□ editor(viewer)-text、hex、resource、registry、string、PE 等

□ monitoring tool-process、file、registry、network、message 等

□ memory dump

□ classifier

□ calculator-hex、binary

□ compare tool-text、hex

□ packer/unpacker

□ encoder/decoder

□ virtual machine

□ decompiler-C、VB、Delphi 等

□ emulator

35.3 优秀分析工具的五种标准

以下是我选择分析工具时使用的5种标准(指导),供各位参考。希望各位根据自身实际情况确立自己的工具选用标准。

35.3.1 精简工具数量

不能因为别人都用某个工具所以自己也准备很多还不了解功能的工具,这样是没用的。自己需要用的工具每种1个就够了。刚开始要根据自身水平选择相应工具,然后随着水平的提高慢慢增加即可。此外,还有很多工具功能都是重复的,这样的工具用1个就行了。

35.3.2 工具功能简单、使用方便

随着水平的提高,使用的工具数量也会增加。此时工具的功能越简单、用户界面越直观,使用起来就越方便。这里说的“功能简单”是作为代码逆向分析工具而言,从一般人的视角来看,它仍是使用方法非常复杂的工具。所以无论多么简单的逆向分析工具,都要花费相当时间来熟悉。

35.3.3 完全掌握各种功能

再好的工具首先也要懂得使用,不然就毫无用处。很多时候本来是自己所用工具已有的功能,但因为不熟悉,需要该功能时不得不找其他工具来代替。选中某个工具后,要认真阅读使用说明,熟悉各种功能。常用功能的快捷键要记住,这会使工作更加容易,提高工作效率(学会灵活使用工具快捷键就会越来越喜欢,用起来也更得心应手)。

35.3.4 不断升级更新

逆向分析技术发展相当快,随着新技术的不断涌现,与之对应的工具变化也很快,所以经常更新所用工具是非常重要的。因此,建议大家选择能够持续更新的工具。 .

35.3.5 理解工具的核心工作原理

理解工具的工作原理能够帮助我们更好地使用工具。当然,在此基础上能够开发出测试原型(prototype)更是锦上添花。我们使用某个工具时通常不怎么关心其工作原理,但若想真正提高自身的代码逆向分析水平,了解工作原理是非常必要的。比如,理解了调试器的工作原理后就能很好地避开反调试技术的阻碍。如果不理解工具的工作原理,一味依赖它,程序中的一些简单花招就都无法解决,不得不寻找新的工具,最后沦为“工具的奴隶”(一定要警惕这一点)。

35.4 熟练程度的重要性

各位听说过debug.exe这个程序吗?它从MS-DOS时代就存在,是16位的调试器(Windows XP

中也有)。在命令窗口运行debug.exe,输入“?”命令,显示帮助选项。

图35-1显示的就是全部指令,很简单。我曾看到一个朋友使用debug.exe调试分析16位的DOS

程序。当时只看见他运行某个工具,快速敲击键盘,画面不断滚动切换,我就站在他身旁,但根

本看不岀他在干什么(眼睛根本跟不上他的调试速度),甚至没有意识到刚开始运行的是debug.exe程序(那时我接触debug.exe已经一个多月了,但是仍然没有意识到这点)。后来我知道他用的是debug.exe时被惊得目瞪口呆,“只使用那么简单的debug.exe,竟然能那么快解决问题?”从那以后,我选择某个工具时就立下了一条规矩,并且有了更深层次的认识。

“即便是普通的工具,对其认真研习并运用到极致,它也能成为天下独一无二的优秀工具。”

就像武林高手经过木断修炼、再修炼,丢弃有形的“剑”,他们眼里任何东西都是剑器,如 草、木、竹、石等,达到“手中无剑心中有剑”的境界。各位意下如何呢?


第35章 优秀分析工具的五种标准
https://m0ck1ng-b1rd.github.io/1999/03/05/逆向工程核心原理/第35章 优秀分析工具的五种标准/
作者
何语灵
发布于
1999年3月5日
许可协议