静态分析技术-IDA Pro简介
日期:2008年6月6日 作者:
查看:[大字体 中字体
小字体 ]
程式猎人翻译 对象:IDA Pro反汇编软件 目标: N/A 使用工具: Your brain 难度等级(级 1-5): 1 开始前 IDA Pro Avanced是一个极好的反汇编工具,它大的胜过了w32dasm。近来它的盗版已经在网上传播开了,你可以很轻松得到它。对于这方面的观点有如下几种:一些人认为这是好的,是自由的;而另一些人认为是可耻的,那些认为是可耻的人通常是这个软件的老用户,事实上他们买了那个程序,如果你花了$500买了那个程序的话,你就可以理解他们的反应了。 对于读者来说,你们做什么不是我的问题及我所关心的。而我的观点是如果认为非法的winzip软件同IDA Pro 4.0x一样好或坏。如果你使用非法的winzip,你就不应当使用非法的IDA Pro。I 介绍 几天前我烈军属了一篇关于解密程序的教程,而这篇也是一个对于高效的,极好的IDA Pro 4.0x教程。通常菜鸟不喜欢,而高手又崇拜它。不喜欢的原因是因为IDA相对于w32dasm来说有更多的附加功能和作用,有更大的复杂性 在下面的教程中由于你过去可能喜欢使用w32dasm,我将尽力给出一个简单和清楚的解释来介绍如何使用IDA。也将试差回答"什么是最好的反汇编?"这里其实没有一个简单的回答。对于更多的高手来说可以读这个:向菜鸟100%解释IDA的使用过程。II. IDA: 一个高效的反汇编工具 当你运行IDA Pro时,你所最先注意到的是它的界面比w32dasm更加专业,这里比w32dasm有更多的选项或更先进的地方。它的优点是可以更好的反汇编和更有深层分析。而缺点是使用IDA更困难。 实际上IDA同w32dasm有很多相同的功能:可以快速到达指定的代码位置;可以看到跳到指定的位置的jmp的命令位置;可以看参考字符串;可以保存静态汇编等。 现在让我们运行和反汇编一个小程序(我使用starclean.exe)一个窗口弹出来,那里有很多选项,不要动它,仅仅点击OK。让IDA来分析,当它结束后在name的选项中同w32dasm中参考字符串一样,查找"a"字符。在name窗口中搜索栏中按a,然后开始查找,一旦找到,按enter或双击它,它就将到达正确的位置。按ctrl+enter将到达下一个位置。参考字符串就在光标附近。IDA就可以到达相应的位置了。 另一个同w32dasm相同的:jmp和call参考在IDA也是有效的。在w32dasm反汇编的代码同IDA中相同的。
代码开始 (w32dasm)
* Referenced by a (U)nconditional or (C)onditional Jump at Address: :00403B50(C) :00403B5F 81FAFC000000 cmp edx, 000000FC :00403B65 0F8478010000 je 00403CE3 :00403B6B 8D8424B4000000 lea eax, dword ptr [esp+000000B4] :00403B72 6804010000 push 00000104 :00403B77 50 push eax * Reference To: KERNEL32.GetModuleFileNameA, Ord:00E9h :00403B78 8B2D88924000 mov ebp, dword ptr [00409288] :00403B7E 6A00 push 00000000 :00403B80 FFD5 call ebp :00403B82 85C0 test eax, eax :00403B84 7516 jne 00403B9C * Possible StringData Ref from Data Obj ->" " :00403B86 BE206A4000 mov esi, 00406A20 :00403B8B 8DBC24B4000000 lea edi, dword ptr [esp+000000B4] :00403B92 B905000000 mov ecx, 00000005 :00403B97 F3 repz :00403B98 A5 movsd :00403B99 66A5 movsw :00403B9B A4 movsb结束结束
代码开始 (IDA Pro 4.0x)
00403B5F loc_403B5F: ; CODE XREF: sub_403B00+50j 00403B5F cmp edx, 0FCh 00403B65 jz loc_403CE3 00403B6B lea eax, [esp+1B8h+var_104] 00403B72 push 104h 00403B77 push eax 00403B78 mov ebp, ds:GetModuleFileNameA 00403B7E push 0 00403B80 call ebp ; GetModuleFileNameA 00403B82 test eax, eax 00403B84 jnz short loc_403B9C 00403B86 mov esi, offset aProgramNameUnk ; " " 00403B8B lea edi, [esp+1B8h+var_104] 00403B92 mov ecx, 5 00403B97 repe movsd 00403B99 movsw 00403B9B movsb 代码结束
你在这里看到,IDA提供了更多的细节信息,它是更加清楚,用一个参考作为例子。
上一篇:DrawingHand v4.0(2)
下一篇:软件狗,dongle
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页 ] [关闭窗口 ] 转载请注明来源:http://www.abcdown.net