OllyDBG 入门系列(三)-函数参考

导读: <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 现在进入第三篇,这一篇我们重点讲解怎样使用 OllyDBG 中的函数参考(即名称参考)功能。仍然选择  crackmes.cjb.net 镜像打包中的一个名称为 CrackHead 的crackme。老规矩,先运行一下 这个程序看看: 呵,竟然没找到输入注册码的地方!别急,我们点一下程序上的那个菜单“Shit”(真是 Shit 啊,呵呵),在下拉菜单中选“Try It”,会来到如下界面:   我们点一下那个“Check It”按钮试一下,哦,竟然没反应!我再输个“ 78787878”试试,还是没反应。再试试输入字母或其它字符,输不进去。由此判断注册码应该都是数字,只有输入正确的注册码才有动静。用  PEiD 检测一下,结果为 MASM32 / TASM32,怪不得程序比较小。信息收集的差不 多了,现在关掉这个程序,我们用 OllyDBG 载入,按 F9 键直接让它运行起来,依次点击上面图中所说 的菜单,使被调试程序显示如上面的第二个图。先不要点那个“Check It”按钮,保留上图的状态。现在我们没有什 么字串好参考了,我们就在 API 函数上下断点,来让被调试程序中断在我们希望的地方。我们在  OllyDBG 的反汇编窗口中右击鼠标,在弹出菜单中选择 查找->当前模块中的名称 (标签),或者我们通过按  CTR+N 组合键也可以达到同样的效果(注意在进行此操作时要在 OllyDBG 中保证是在当前被调试程 序的领空,我在第一篇中已经介绍了领空的概念,如我这里调试这个程序时 OllyDBG 的标题栏显示的就是“ [CPU - 主线程, 模块 - CrackHea]”,这表明我们当前在被调试程序 的领空)。通过上面的操作后会弹出一个对话框,如图: 对于这样的编辑框中输注册码的程序我们要设断点首选的 API 函数就是 GetDlgItemText 及  GetWindowText。每个函数都有两个版本,一个是 ASCII 版,在函数后添加一个  A 表示,如 GetDlgItemTextA,另一个是 UNICODE 版,在函数后添加一个  W 表示。如 GetDlgItemTextW。对于编译为 UNCODE 版的程序可能在  Win98 下不能运行,因为 Win98 并非是完全支持 UNICODE 的系统。而  NT 系统则从底层支持 UNICODE,它可以在操作系统内对字串进行转换,同时支持  ASCII 和 UNICODE 版本函数的调用。一般我们打开的程序看到的调用都是 ASCII  类型的函数,以“A”结尾。又跑题了,呵呵。现在回到我们调试的程序上来,我们现在就是要找一下我们调试的程序有没有调用  GetDlgItemTextA 或 GetWindowTextA 函数。还好,找到一个  GetWindowTextA。在这个函数上右击,在弹出菜单上选择“在每个参考上设置断点”,我们会在  OllyDBG 窗口最下面的那个状态栏里看到“已设置 2 个断点”。另一种方法就是那个  GetWindowTextA 函数上右击,在弹出菜单上选择“查找输入函数参考”(或者按回车键),将 会出现下面的对话框:   看上图,我们可以把两条都设上断点。这个程序只需在第一条指令设断点就可以了。好,我们现在按前面提到的第一条方法,就是“在每个参考上设置 断点”,这样上图中的两条指令都会设上断点。断点设好后我们转到我们调试的程序上来,现在我们在被我们调试的程序上点击那个“ Check It”按钮,被 OllyDBG 断下: 00401323 |. E8 4C010000         CALL 
上传的附件
crackhead.zip (2006-02-14 23:34, 0, 6888 次下载)
本文转自 http://bbs.pediy.com/showthread.php?s=&threadid=21330
<script type="text/JavaScript"> alimama_pid="mm_10809884_1047205_2647689"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E6E6E6"; alimama_linkcolor="008000"; alimama_bottomcolor="FFFFFF"; alimama_anglesize="8"; alimama_bgpic="7"; alimama_icon="0"; alimama_sizecode="16"; alimama_width=658; alimama_height=60; alimama_type=2; </script> <script src="http://a.alimama.cn/inf.js" type=text/javascript> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值