找回密码
 立即注册

QQ登录

只需一步,快速开始

1401软件论坛总版规【新人必看】如何正确发布收费帖子加入vip系统学习仅需498元免费获得1401软件安全论坛vip开通本站VIP会员请联系QQ 564853771
论坛纪念优盘Beyond EXE超强加密器V1.61401论坛破解工具包 2017-9-12[破解班vip]入门篇[破解班vip]基础篇
[破解班vip]脱壳篇[破解班vip]实战篇[破解班vip]网络验证篇[破解班vip]零基础HOOK教程[破解班vip]零基础易语言入门
[破解班vip]零基础c语言入门[破解班vip]零基础Delphi编程入门[破解班vip]寒假培训课程共7课[破解班vip]破解提高篇[破解班vip]易语言培训课程
[破解班vip]核心技术培训篇[破解班vip]pe格式与pe操作[破解班vip]2022全新封包-山寨-爆破全系列[原创课程]c++单文档框架课程[逆向班vip]汇编语句与反汇编基础
[逆向班vip]全自动扫雷辅助[逆向班vip]手机模拟按键[逆向班vip]植物大战僵尸辅助广告位招租...付费破解软件 +Q 564853771
查看: 2584|回复: 0

【OD实用技巧六则 】

[复制链接]
  • TA的每日心情
    开心
    2016-12-31 19:24
  • 签到天数: 148 天

    [LV.7]常住居民III

    335

    主题

    380

    回帖

    1693

    积分

    版主

    【KingSolomon】

    UID
    972
    元宝
    340
    威望
    458
    贡献
    19
    信誉值
    0
    精华
    17
    在线时间
    179 小时
    注册时间
    2014-5-16
    最后登录
    2017-1-4
    违规
    0
    积分
    1693

    最佳新人活跃会员热心会员灌水之王论坛元老吾爱富翁工具大师已有小成

    QQ
    发表于 2014-5-25 22:31:21 | 显示全部楼层 |阅读模式
    Ȧ
    OD实用技巧六则
                                  dOSKEY lEE
    关键词: OllyDbg、OD、技巧

    1、让跳转路径显示出来
        打开Options\Debugging Option。弹出Debugging Option对话框,选择CPU页,选定
    “Show direction to jumps”、“Show jump path”和“Show grayed path if jump is
    not taken”。如此以来在Disassembler窗口就会显示跳转的路径了。

    2、让OD显示MFC42.DLL中的函数
        如果程序是用MFC进行的动态编译,那么在OD中将只能显示MFC42.DLL中的函数为:
    00410E40  |.  E8 43000000  CALL    <JMP.&MFC42.#1576>
    1576是函数在MFC42.DLL中的序号。打开Debug\Select import libraries,单击弹出的对话
    框中“Add”,在弹出的打开文件对话框中选择“MFC42.LIB”并打开,重新载入MFC程序,
    你就可以看见函数名称变为:
    00410E40  |.  E8 43000000  CALL    <JMP.&MFC42.#1576_?AfxWinMain@@Y>
    [hide]IDA中分析出了来的东西一样了!呵呵,以后不用等待IDA的“细嚼慢咽”也可以轻松搞定
    MFC程序了。其他的DLL类似,如果有序号,可以在VC的LIB目录中找到相关的.LIB文件,加
    到OD中便可。如果你没有“MFC42.DLL”,你可以的到新论坛的下载区找,我已经上传到那
    里了。

    3、让OD轻松躲过“ANTI-DEBUG”
        很多“ANTI-DEBUG”的程序都是在程序开始时来检查是否安装调试器的。用这种特性我
    们可以轻松的用OD的“Attach”绕过检查部分。如“X语言”,如果你哟内TRW2K/S-ICE/OD
    直接加载它的话,程序回警告你安装了调试器并结束。但是我们在“X语言”开启后再运行
    OD,并用“Attach”系上它就就可以了,轻松通过检查。而且在OD系上它后仍然可以用
    CTRL+A进行分析。如此一来,快哉!:)

    4、轻松对付调用“MessageBoxA”以及类似的模态对话框的程序
        很多人都认为OD不好拦截“MessageBoxA”这类API函数。其实我们有个很简单的办法将
    API拦截下来,并且快速找到比较地点/主算法地点。首先用OD加载目标程序,如果不能加载,
    用上面的方法“Attach”目标程序。然后,F9运行目标程序,并且有意让目标程序显示“
    MessageBox”,然后切换到OD中,F12暂停,如
    0041201F  |>  53            PUSH    EBX                    ; /Style
    00412020  |.  57            PUSH    EDI                    ; |Title
    00412021  |.  FF75 08      PUSH    [ARG.1]                ; |Text
    00412024  |.  FF75 F4      PUSH    [LOCAL.3]              ; |hOwner
    00412027  |.  FF15 A8534100 CALL    DWORD PTR DS:[4153A8]  ; \MessageBoxA
    0041202D  |.  85F6          TEST    ESI, ESI              ; 停在此处
    0041202F  |.  8BF8          MOV    EDI, EAX
    00412031  |.  74 05        JE      SHORT 1551-CRA.00412038
    F8单步一下,切换到“MessageBox”中,确认,被OD中断。我们可以看见上面的代码41201F
    处有一个“〉”,说明可以从某段代码跳转到此处,我们选择41201F这一行,在
    “Information”栏看见一句“JUMP FROM 412003”,右键单击,选择“GO TO JUMP FROM
    412003”。回到412003,一般都是条件跳转,上面的内容就是比较的地方啦。:)

    5、使用OD的TRACK功能
        OD拥有强大的TRACK功能,在分析算法时十分有用。首先我们要设定OD的TRACK缓冲区大
    小,选择Option\Debugging Option,在弹出的对话框中选择TRACK页,
    “Size of run track buffer(byte/record)”,缓冲区大小,当然约大约好。其他的设置
    在我以前的OLLYDBG.INI中都已经设置好了。然后,开启目标程序,在DEBUG中选择“Open
    or clear run track”。然后我们就可以用CTRL+F11或CTRL+F12开启“Track into”和“
    Track over”了。当我们暂停程序的时候,可以用小键盘上的“+”,“-”,“*”来控制
    TRACK功能了。
    “Track into”和运行类似,但是记录所有指令以及寄存器变化。并且会自动进入所有的
    CALL中。
    “Track over”和“Track into”类似,但是不进入CALL
    “+”用来显示TRACK缓冲区中的下一条指令
    “-”用来显示TRACK缓冲区中的上一条指令
    “*”用来发返回当前指令

    6、不是技巧的技巧
        当你遇到花指令的时候一定会很头痛。但是如果你用OD进行分析的时候就会轻松得多。
    OD会自动标识出无效指令,即花指令。如果OD没有正确识别,你还可以用CTRL+↑/↓来单个
    字节的移动。可以很有效的识别出花指令的所在。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|1401软件安全 ( ICP备16034480号 )

    GMT+8, 2024-5-2 13:33 , Processed in 0.182275 second(s), 26 queries , Gzip On.

    Powered by Discuz! X3.5

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表