利用OllyDbg进行源码级调试(Win32汇编语言)

OllyDbg是一款能够在Windows环境下的动态调试软件,与Softice不同的是,它运行在用户模式下,且结合了动态调试与静态分析的功能。
OllyDbg通常用于反汇编调试,但事实上,它也能进行源码级调试,这对众多程序员来说是个福音。
下面我就以Win32汇编语言为例,简单介绍一下OllyDbg的源码级调试方法。

=================================================================
先来看一段示例代码:

代码文件列表:
ODbgTest.Asm
ODbgTest.Inc
DlgProc/DlgProc.Asm
ODbgTest.Rc
主要代码如下:
-------------------
ODbgTest.Asm:
-------------------
.386
.model flat, stdcall
option casemap :none
include ODbgTest.inc
include DlgProc/DLgProc.asm
.code
start:
  invoke GetModuleHandle,NULL
  mov    hInstance,eax
  invoke InitCommonControls
  invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
  invoke ExitProcess,0
end start
-------------------
DlgProc/DlgProc.Asm
-------------------
.code
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
   mov eax,uMsg
   .if eax==WM_INITDIALOG
   .elseif eax==WM_COMMAND
      mov eax,wParam
      mov edx,eax
      shr edx,16
      and eax,0FFFFh
      .if edx==BN_CLICKED
         .if eax==IDC_BTN1
             invoke EndDialog,hWin,NULL
         .endif
      .endif
   .elseif eax==WM_CLOSE
      invoke EndDialog,hWin,0
   .else
      mov eax,FALSE
      ret
   .endif
   mov  eax,TRUE
  ret
DlgProc endp
---------------------------------------------------------------
下面的编译链接所用的选项比较重要,就是要添加调试信息供OllyDbg调试:
rc ODbgTest.Rc
ml /c /coff /Cp /Zi ODbgTest.Asm
link /SUBSYSTEM:WINDOWS /DEBUG /DEBUGTYPE:CV ODbgTest.obj ODbgTest.res
完成后,我们便可以得到可执行程序ODbgTest.exe。

===============================================================&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值