00427FA9|.BA0>movedx,2
00427FAE|.E8B>call00509664
00427FB3|.A12>moveax,dwordptr[52E328]
00427FB8|.8B08movecx,dwordptr[eax]
00427FBA|.80B9>cmpbyteptr[ecx+3E4],0
00427FC1|.0F84>je004281E6
第十三章明明白白CALL的含义---给基本CALL自动加注释
IDA的流程图很直观地显示上述关键变量处的程序流程分歧点。
但对关键CALL的判断不如OD好理解。但IDA可以省却不少猜CALL的
工作量。
OD中:
00427F85|.E8F>call004D8188
IDA中:
call@TControl@GetText$qqrv;TControl::GetText(void)
这又说明了IDA的一大优势:大部分的基本的CALL不用猜具体含义。前提是
要有该软件的签名文件。
我们可以通过IDA创建MAP文件,再通过OD中的GODUP插件载入此MAP,
从而使OD获得IDA在这方面的功能。
最近几年开始受到老手欢迎的Windbg级的动态调试器在这方面同样具有
巨大的优势。但它同样具有软件体积大,symbol文件巨大的笨重的缺点。
Windbg可以用于Kernel模式调试是受欢迎的主要原因。
第十四章程序流程把握能力的三种培养方法
3.注册判断的程序流程。具体又分为两部分:
A.注册正确的程序流程。
B.注册正确的程序流程所要求的一些条件。
我说过:程序流程的把握能力是算法分析的核心。怎样培养
程序流程的把握能力?个人的经验认为有三种方法可行:
one:阅读程序段,手工画出流程图。初学者推荐此法。
two:学会编程。老手建议用此法。
three:使用IDA。磁碟机病毒传播途径逆向大工程和密码学推荐。
平时练习时,建议前两种方法。IDA可以做为答案帮助自己理解
程序流程。从上可以看出,科班生学破解在此处很轻松。我自己是
深有体会,一位同时学破解的科班朋友在此处的提高让我羡慕了好
一阵子。
第十五章OD的MAP文件
破解到一定的水平和层次,要求多看多想少调试。即要求提高自己的
静态汇编破解的能力。IDA的流程图功能在程序流程的把握上具有巨大的优势。
提高静态汇编理解能力有助于提高IDA的使用效率。
载入IDA转换的MAP文件后的OD,许多CALL地址的地方变成了有注释含义的语句,
注册判断主程序段:
00427EB0>/.5>pushebp
00427EB1|.8>movebp,esp
00427EB3|.8>addesp,-64
00427EB6|.8>movdwordptr[ebp-60],edx
00427EB9|.8>movdwordptr[ebp-5C],eax
00427EBC|.B>moveax,0052462C
00427EC1|.E>call<@__InitExceptBlockLDTC>
00427EC6|.8>movedx,dwordptr[52E328];001._IconConverter
00427ECC|.8>movecx,dwordptr[edx]
00427ECE|.8>cmpbyteptr[ecx+3E4],0
00427ED5|.0>jnz<loc_428215>
00427EDB|.6>movwordptr[ebp-48],8
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32335-10.html
你想成为第几个死的
这年头