为OllyDbg增添“内存硬件条件断点”功能(1)

感谢OllyDbg的作者,写出了这么好的调试器,感谢cao_cong老师做的汉化,感谢众多插件作

者,我常用的是OllyDbg v1.1【汉化第二版】(一下简称OD)。API的参数总是通过堆栈

交换,局部变量也是安排在堆栈中,比如说一个数值在堆栈0012DACC位置出现了,追踪这些值的

一般做法是,查找到该位置上下较近的一个“返回到XXXX”,参考这个“xxxx”位置,不难定位

到哪句代码把0012DACC处的值写入的。当堆栈该处上下位置位置很远处找不到“返回到XXXX”

时,不得已,下内存断点吧:在OD的数据区右击鼠标,用菜单"转到-> 0012DACC,将堆

栈映射到数据区,在“0012DACC”处下内存写入断点,跑起OD,运气好的话,n次断下后,目

标出现了(心情激动),运气不好,由于在堆栈区下断,断下太频繁,人累的不行,目标却在10万

8千里之外。。。搞不好被调试代码出个“蓝屏”罢工了,只好放弃。可以设想:在0012DACC处

下断时设置一个条件“该处值为XXXX时断下,不是该值则继续跑”,这是一个好主意。可惜的是,

美中不足,OD没有这项功能。很长一段时间,我一直想也许新版本能增加这项功能,可是2.0版没

有增加。用罗聪的OllyMachine写脚本,几句代码可以搞定,但是效率不能令人满意。在OD上直

接动手吧,一是没有参考资料,二是对OD的敬畏之情,迟迟不能下手。前几天登陆论坛,一下子找

到了好东西,武汉科锐学员: angelqkm的《OllyDBG分析报告系列》,这么好的东西我竟

然没看见。也是因为个人一些状况,我已经5年多没登陆了,感谢看雪论坛保留了我的ID。经过一

周的努力,“为OllyDbg添加内存条件硬件断点功能”有了初步成果,现在准备贴出,请高手指

点。

我为OD增加的功能如下:在数据区下内存硬件断点(访问、写入)时,弹出一个对话框,输入该内

存处的数值作为断下条件,当条件满足时断下,不满足时继续跑。原理如下:由于硬件断点的原理

是通过设置调试寄存器dr0---dr7后,代码运行时触发中断,

代码断下,OD就把中断的一些信息报告出来,等待用户下一步的操作,用户按下F9后,代码再次

跑起来。好了如果OD不是简单的报告信息,而是报告之前先行判断一下这个断下是否是用户需要

的,如果是用户需要的就报告给用户,等待用户处理,不是用户需要的就不再报告信息,继续跑代

码,这就是条件硬件断点最好的实现方法。由于我一时没搞清OD的硬件断点异常处理的细节,就采

取了变通的做法:OD继续以自己的方式报告中断信息,等待用户处理时判断一下这个中断是否是用

户期望的,如果不是,就“替代用户按一下F9”,代码再次跑起来。这个变通做法从效率上讲,是

OD做了一些无用功,既然不是用户期望的中断理当直接处理现场跑代码,不需再做报告信息的工作

了。但是以上变通做法的效率比用OllyMachine写脚本,提高了很多。[/SIZE][/SIZE]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
程序名称:OllyDBG版 本:1.10汉 化 人:cao_cong联系方式:cao_cong_hx@yahoo.com.cn汉化日期:2005.11.28汉化说明: 本来是想等 OllyDBG 2.0 出来再汉化的,可看到dyk158兄弟的修改版说明中对我原来汉化版本的汉化质量提了一点小小的意见,想想也是,我原来的汉化版是OllyDBG 1.10 的最终版本刚出来时汉化的,距今已经一年多了也没有更新过,当时只顾不出因汉化造成的Bug,汉化嘛确实不咋的。看到BoOMBoX/TSRh2004他们制作的美化界面,确实也觉得漂亮,最后决定再出个汉化版本。这个版本的汉化加测试、修改花了我整整两个星期的业余时间,其中的非标字符对照文本有4000多行,看一遍都半天。这个版本中的所有翻译我都重新过了几遍,绝大部分都重新翻译过,力求做到准确,希望能给大家一个比较完美的汉化版本。在制作过程中参考了TT小组翻译的OllyDBG帮助及dyk158修改、聆风听雨汉化的ODbyDYK修改版,主要是想让翻译更准确一点,能让新手把汉化版和TT小组汉化的帮助文档对照起来学习。在此对以上提到的各位表示衷心的感谢! 这个软件汉化起来确实是个苦差事,不光是要翻译的资源多,还有一个重要的方面就是稍不留神就会出现汉化引起的Bug。经常是用原版来调试汉化版找问题,象原来菜单上的“&Window”汉化后会出错,还是调试后才知道原来它内部加载菜单时还有个这个“&Window”,只有两个都汉化才不会出错。另外其它的许多问题都只好靠调试来解决。原来汉化时又没有把要注意的地方写下来,这次光测试就花了好几天。 这个汉化版本除因汉化必要而打补丁外,我不准备再对它打任何补丁。一是我怕打补丁影响 OllyDBG 的兼容性;二是已经有Fly和dyk158他们做了,我想我自己再做的话也不会比他们做的更好;三是我实在是感到太累了!如果大家要想要修改的版本的话,推荐使用freecat兄弟制作的AutoPath,我把这个插件放在 FixOD 目录下,我把freecat兄弟发布时所用的说明也放在同一目录下,大家可以根据说明来使用这个插件改造你的OllyDBG。 在这里我要感谢看雪论坛上的看雪老大和论坛上各位兄弟的支持,正是有了他们的测试和建议,经过多次修正后,才有了今天的这个最终版本,由衷的感谢看雪论坛上的各位兄弟!汉化第二版主要更新:1、界面采用 BoOMBoX/TSRh2004 制作的美化界面,主要为了好看一点。2、绝大部分句子都重新翻译过,力求做到准确。3、配置文件中除字体、语法高亮、颜色这几个部分保留为中文外,其它的都恢复为英文。保留字体、语法高亮、颜色这几个部分为中文的目的是因为我发现若先运行过英文版配置好后,汉化版中对应这几个部分的一些菜单也会取原英文版配置中的英文字串,而不是汉化过的字串。我觉得翻译后既能保持与英文版的兼容性,又能让英文版与中文版的界面等互不干扰。4、dyk158 建议我把配置文件中的字体、语法高亮、颜色这几个部分恢复为英文,我专门做了个恢复为英文配置的补丁(如果你以前运行过英文版进行了相应配置,则补丁后的汉化版本对应这几个部分的相应菜单将会显示英文,若你是用打过这个补丁的汉化版本生成配置文件,则相应菜单将会显示中文)放在英文配置补丁目录下,需要字体、语法高亮、颜色这部分也用英文配置的朋友可以把这个补丁放到我做的汉化版的安装目录,选择 Ollydbg.exe 补丁就可以了。这个补丁同样适用于原版界面的汉化版本。5、上一版中部分未汉化的内容这次除了不能汉化的外,基本上都已汉化。6、另有一个界面未作美化的汉化版放在原版界面目录,可以按自己的喜好选择使用哪一个。7、FixOD 目录下放的是用 freecat 的 AutoPath.dll 打过补丁的 OllyDBG,使用前请先备份好你原来的Ollydbg.exe文件,再把这个目录下的Ollydbg.exe、AutoPath.dll、AutoPath.ini复制到你的OllyDBG安装目录下就可以了。在上一版的基础上,插件做了如下更新:1、脚本插件 ODbgScript.dll (v1.23 汉化版)2、快捷命令插件 CmdBar.dll (v3.10.109c 汉化版,这个版本有支持运行 OllyScript 脚本的命令:OSC)3、标签插件 Labeler.dll (v1.33.108 汉化版)4、图表插件 OllyFlow.dll (v0.71 汉化版,我从IDA中提取了个wingraph32.exe放在插件目录下,用于配合这个插件)5、断点管理 olly_bp_man.dll (汉化版,在我机器上不能用,放在备用目录)6、字串参考修改版本 ustrrefadd.dll (汉化版)另外还添加了dyk158 汉化的两个插件:1、脱壳插件 OllyDump.dll (V3.00.110 dyk158 汉化版)2、脱壳插件 pedumper.dll (v3.03 dyk158 汉化版) 推荐大家试用一下这两个插件:ApiBreak 插件,用于在对话框、字串、注册表、时间、内存API 函数上设置断点,还可设置万能断点,简单易用;GODUP 插件,包含 Map 载入器、资源查看器、进程查看器、IDA 签名载入程序及自带的一个记事本这五个工具。感觉它自带的记事本用来在调试时记一些东西比较方便。 如果你以前没用过OllyDBG的话,我要提醒你使用前先在菜单的 选项->界面->目录 中把插件和 UDD 的路径设置好,以免影响使用! 此汉化版中的插件除了一个 PuntosMagicos.dll 插件没汉化外(我实在是弄不懂是哪国语言),其它的插件都已汉化。目录下的OLLYDBG.HLP帮助文件是由TT小组翻译的中文帮助,在此对TT小组的辛勤劳动表示感谢!(OLLYDBG_EN.HLP为原版英文帮助)声明: 1.本汉化软件包内的所有英文及其他语言的源程序的版权归原作者(公司)所有。 2.本人不对使用本汉化软件造成的任何情况的损失负责。 3.本汉化软件仅供学习研究之用。严禁用于商业用途。本人不对使用本汉化软件造成的任何法律纠纷负责。 4.如果你对本汉化软件有什么建议请联系我。 5.请在转载时保留此汉化版的完整性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值