OD加载程序的方式

1. OllyDbg可以用两种方式加载被调试的目标程序,一是通过CreateProcess创建进程,二是用函数DebugActiveProcess将OD
    绑定到一个正在运行的程序上。
    1.1 用CreateProcess创建进程
          1.1.1  单击菜单“File / Open” 或 快捷键F3打开要调试的可执行程序,OD会调用CreateProcess创建一个用以调试的新进程。
                   OD将接收新进程发生的调试事件,而对新进程创建的子进程的调试事件不予理会。
          1.1.2 如何调试需要带命令行参数的程序:
                  用1.1.1中方法打开可执行程序时,在打开对话框中的“Arguments”栏中输入需要的参数即可。
    1.2 把OD附加到一个正在运行的程序上
          1.2.1 用调试器调试一个正在运行的程序叫附加(Attach)。其原理是利用DebugActiveProcee函数可以把调试器 绑定到一
                   个正在运行的程序上。
          1.2.2 方法是单击菜单“File/Attach”打开附加对话框,在正在运行的进程列表中选择要调试的进程,再单击Attach按钮即可。
                    附加后,目标进程会暂停在Ntdll.dll中的DbgBreakPoint处,按 F9 或 Shift + F9即可让程序继续运行。
          1.2.3 附加到隐藏进程。
                   OD有一个命令行启动参数  -p ,先用其它工具获取到隐藏进程的pid,再在命令行上用 -p 参数附加即可。
                    > OllyDbg.exe  -p  pid   
                   (注意:pid是十进制的值)
    1.3 用OD的即时调试器功能来调试。
           1.3.1 设置OD为即时调试器
                     单击 “ Options/Just-in-time debugging”。

            1.3.2 举例说明:
                      有两个exe文件:A.exe 和 B.exe,运行A.exe时,其会调用B.exe,此时用OD附加B.exe,OD无法调试B.exe。
                      若将B.exe的程序入口点处指令改为0xCC,再运行A.exe,当其调用B.exe时会产生INT 3 ( 0xCC )异常,此时
                      OD将作为即时调试器调试B.exe,将INT 3指令恢复为原始指令后进行调试。

 

你可能感兴趣的:(汇编)