第1来携采客工具启程金 图1.4快速精干的OllyDbg 厘5t=p1时rCt圆Cmn4 Cele Curl23=m1wC13 1的女irt4t 图1.5调试内核态驱动程序的Syser调试器 目前,许多程序员非常活跃地使用Microsoft WinDeb,免费的调试工具包Debugging Tools中 提供了这个工具(如图1.6所示)。这个调试器同样适合于黑客攻击。不过,一些习惯了SoCE 黑屏模式的黑客觉得Microsoft WinDeb用起来不方便。 5 溜客安全网WwW.I76Ku.CoM
黑客反汇编揭秘(第二版) 的wa回包口园口位旺 G 型器流他器 言三宗器 sor al.[onsedit] 400B性3i-地 图1.6 WinDeb调试器 1.2反汇编器 DAPro(http:/www.idapro,com)是唯一适合专业人员使用的反汇编器(见图1.7与图1.8)。 ...W 器 的 PDG 图L.7 DAPro反汇编器的控制台版本 溜客安全网WwW.I76Ku.CoM
第1幸携黑客工具启程了 图1.8 IDAPro的图形用户界面 DA Pro能编译多种文件格式,支持许多处理器类型。它可以轻松地处理Java和NET虚拟机 字节码,支持宏、插件与脚本语言.DA Pro提供的集成调试器,能够同时支持在MS-DOS、Windows 与Liux平台上的调试工作(如图1.9所示)。此外,DA Pro还有一种独特的能力,能够借助于标 准库函数的签名来识别函数名。 周 多⑧>3合画而”四 Bettnecinnery-1.I PDG 图l.9在Linux平台上运行的DA Pro 溜客安全网WwW.I76Ku.CoM
黑客反汇编揭秘(第二版) 最重要的一点是,DAPO是一个交互式的反汇编器。这意味着,黑客可以用它直接处理二进 制文件,凭想象随心所欲地研究,从而为创造性活动提供了许多可能性。相比之下,大多数批处理 反汇编器都是一些闷头闷脑的自动化工具,它们吞下去那些被“黑”的程序,生成一堆没什么用的 错误百出的反汇编清单。 最新的DAPO版本,在自动进行文件解包与混码消除方面达到了新的高度。一些相当不错的 插件与脚本集,可以从DA Pro的官方网站或者http:www.openrce,.org下载。 毫无疑问,DAPo在竞争中遥遥领先。不过,还是有许多程序员在活跃地下载免费的(今后 不再免费了)WDasm(http:/www.woodmann.com/fravia/projectt0,.htm),它是反汇编器与调试器 的结合体(如图1.10所示)。尽管在我看来,这个软件用起来不是很方便,也不适合于做专业性工 作,但它确实拥有自己的粉丝。 a>上图 6yo73 040107555 Refereace To:EEHNEL32.SetconuolectriMandler.Ordi02K wddoie 0401090 ·Peani51e8 rinuBoca Ret from Date0b1-y“Setconsoluctr1其and1erfe11n” 88878g89387oo 2,88817900 e y uconditiaeal ar (C)osditimsl Jemp ddrs: 868 。 :e画n6务 图1.l0 WDasm反汇编器 其他一些反汇编器甚至更为差劲.因此,我不打算在这里介绍它们了。唯一值得提到的是Hacker Disassembler Engine(http:/patkov-site.narod..ru/eng.htm),它是一个以源代码形式发布的长型反 汇编器(说“长”是指,它能够确定任意一条x86指令的长度),能够被开发成各种类型的黑客程 序,完成各种黑客操作,比如,捕获函数,执行自动解包,生成多态代码,等等。 1.3反编译器 所谓反编译,是指从二进制程序文件中提取源代码(或者类似事物)的过程。达到完全反编译 DG 是不可能的,因为编译是一个不可逆转的单向过程,会引起数据损耗。尽管如此,反编译器仍有自 己存在的价值,并能很好地履行自已的任务。 8 溜客安全网WwW.I76Ku.CoM
第1章携黑客工具启程 对于用Delphi与用到运行时类型信息(RTTI)的Borland Builder编写的程序,可以从类的源 代码结构重建出类成员函数的函数名,并且,还可以重建表单以及计算出每个元素的句柄的地址。 假定有一个“Registration”对话框,带有一个“OK”按钮。你需要知道,是哪个过程读取了序列 号并对它做了些什么。这再容易不过了!下载免费DeDe反编译器(htp:programmerstools.orgl node/120),并反编译这个程序(如图1.11所示)就能知道答案。 DeDe3.5062()19992002yDe ☒ EaA特E uNsm5 Pt DFM0lt▣ Version:D7 004FD0000000000 000 040760 0000000 00407E58 00000000 004016的4 00000U00 0040058 0000000m 00401080 00000000 000000 00411130 0000000 上■1t4ce风d 00411620 003U0D 004111E800000000 图1.l1“黑”了HTTPProxy的DeDe反编译器 有专门用于Visual Basic程序的反编译器。其中无可争辩的领头羊的是GPcH开发的VB Decompiler(http:/Www.vb-decompiler.org/index.php?p=Products)。我还向你推荐另外一些Basic 程序反编译器来扩充你的工具集,包括VB RezQ(http:/www.vbrezq.com/)、VBDE (http://programmerstools.org/node/129)Spices.Decompiler (http://programmerstools.org/node/ 635)。 最受关注的是专为安装工具程序开发的反编译器。这是因为许多检查(例如,针对试用截止日 期与序列号或者针对密钥进行的检查)是在安装阶段执行的。最流行的安装工具程序是Install Shield。这里有几款专门针对该工具程序开发的便捷反编译器: InstallShield X Unpacker (http://programmerstools.org/node/154) Windows InstallShield Decompiler (http://programmerstools.org/node/118) .InstallShield Decompiler (http://programmerstools.org/node/114) IsDcc (http://programmerstools.org/node/115) 由于与Java和.NET平台相关,DA Pro很适合处理它们。如果手边没有IDA Pro,可以使用专 门的反编译器,在CrackLab站点(http:fwww.cracklab.ru)能找到这样的工具。这些网站也提供 Fox Pro、Clipper与其他另类开发工具的反编译器。 PDG ①针对英语访客的CrackLab页面是htp:/www.cracklab.ru/english.php。 9 溜客安全网WwW.I76Ku.CoM