您好,欢迎访问三七文档
转Draren总结的ollydbgv1.09d中文版使用说明一点一滴的积累,也就会了.之所以选择ollydbg1.我的os是winXP,无法使用trw2000,而softice装了多次均未成功,还蓝屏死机多次.郁闷.2.友好的gui界面,不像softice.可以边干活边听歌,不像softice,把整个os都挂起了.多用两次,连时间都不知道了.3.强大的内存查看功能,再不用什么-d了,而且跳转方便,爽!一目了然.4.强大的右键菜单功能ollydbg的界面:菜单:文件:1.其中包括该菜单的下部有上次打开的纪录,该纪录保存有上次未清除的断点.2.附加.对付那些Anti-Debug程序.先运行程序,再运行od,文件--附加.查看:1.执行模块(Alt+E),查看程序使用的动态链接库2.查看断点.Alt+B调试:1.运行(F9)加载程序后,运行!2.暂停(F12)3.单步进入(F7)遇见CALL进入!进入该子程序.4.单步跳过(F8)遇见CALL不进去!5.执行到返回(ALT+F9)就是执行到该子程的返回语句ollydbg的16进制编辑功能.类似与hiew,hexworkshop查看--文件二进制文件编辑功能.查看--文件,打开的文件是二进制显示.选中要改变的机器指令,空格,修改,右击--保存.ollydbg的四个区域左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色显示.cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态.不错;左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息;右下角的是当前堆栈情况,还有注释啊.F3选择打开程序.使用F9执行程序.下断点:1.对函数下下断点在代码区右击--搜索--当前模块中的名称(ctrl+N),在跳出来的对话框中选择需要下的断点函数.-右击-查找导入参考(enter),按F2下断点.如果有多个地方调用了该函数就这样操作。2.在需要的地方下断点F2添加注释:在代码区第四列,右击--注释查看内存地址右击内存地址列--前往--输入要查看的内存地址在函数lstrlen的注释的上方,有一个变量string,当执行到该函数的时候,string后面会出现lstrlen函数的参数字符串.在实际使用中一般是输入的字符串.(很好用哦)类似的还有lstrcmp,上面有string1,string2能够显示将要比较的两个字符串.另外,一般在执行getwindowtext等函数后,右边寄存器列,eax会显示函数的返回值,即取到的内容.同时内存中也会有显示.在反汇编中选中一条命令,如果其中有用到内存中的地址,右击--在转存中跟随--直接常数此时内存地址会显示指令中引用到的内存字符拷贝功能十分强大.直接选择要拷贝的内容.右击--复制--文件or剪贴板ollydbg的条件断点可以按寄存器,存储器,消息(必须是消息的数字,如wm_command就是111)等等设断,非常强大,一旦设了之后记录到文件中,下次restart程序还能用,不用拿笔记,很方便。显示跳转路进:选项--调试设置--cpu页--显示跳转的方向,显示跳转的路径,如果跳转没有实现则显示灰色路径。在cpu窗口中,机器码的前面显示符号.同时,在cpu窗口下的小缝中会显示跳转路径,从何跳转而来.右击--前往...一般都是条件跳转,上面的内容就是比较的地方啦。:)跟踪功能:选项--调试跟踪--跟踪:设置运行跟踪的缓存大小.越大越好.调试--打开或清除运行跟踪然后我们就可以用CTRL+F11或CTRL+F12开启“跟踪进入”和“跟踪跳过”了。当我们暂停程序的时候,可以用小键盘上的“+”,“-”,“*”来控制跟踪功能了。其中,“跟踪进入”和运行类似,但是记录所有指令以及寄存器变化。并且会自动进入所有的CALL中。“跟踪跳过”和“跟踪进入”类似,但是不进入CALL“+”用来显示跟踪缓冲区中的下一条指令“-”用来显示跟踪缓冲区中的上一条指令“*”用来发返回当前指令让OD显示MFC42.DLL中的函数打开调试--选择导入库--添加--选择MFC43.LIB加入.重新载入MFC程序,就可以看到call后面的api函数了.动态暂停以messagebox为例)先运行目标程序,再运行od,选择文件--附加.在目标程序运行出现对话框时,切换至od,F12暂停.字符串参考:在汇编代码区,右击--搜索--字符参考更改二进制文件:方法1.查看--文件,打开文件,找到欲修改的偏移,使用机器码修改,然后右击保存文件.缺点是需要使用其他软件来获取偏移地址.方法2.直接在反汇编代码区更改,这时可以使用汇编代码更改,不用记机器码.完了.右击--复制到可执行文件--保存文件.很是方便哪!关于虚拟地址和偏移地址:ollydbg果然强大,太强大了,在欲修改的指令处右击--复制到可执行文件,弹出窗口中光标所在行即是欲修改的指令所在的偏移地址,右击--汇编,直接修改汇编指令,不用记机器码,又不用虚拟地址到偏移地址的转换.改完后保存文件.爽丫!olldbg下怎么下消息断点?如在softice中下BMSG0084WM_DESTROY,在olldbg下该怎么做?不如下断SendMessage,PostMessage,程序中的消息不一定都经过消息循环。Ollydbg下消息断点的一个方法原文:SoftIcecantraceapplicationmessages.AndOlly?byFuZzYBiTSoftIcecantraceapplicationmessages.AndOlly?AndsodoesOllyDbg.That’savery“hiddenfeature”.Iguessitissooouseful.1.Openprogram2.Nameswindow[CTRL+NinCPUWindow]3.FindUser32.TranslateMessageAPI4.rightclick/FindReferences5.conditionalbreakpoint[SHIFT+F4]6.expression:MSG7.Logfunctionarguments:AlwaysIfyoucannotfindit,tryrightclickSEARCHFOR-ALLINTERMODULARCALLS.ButifIwanttotrapaspecificmessagelikeWM_COMMAND?ToLogOnlyWM_COMMANDDoitinthisfashion:1.Openprogram2.Nameswindow[CTRL+NinCPUWindow]3.FindUser32.TranslateMessageAPI4.rightclick/FindReferences5.conditionalbreakpoint[SHIFT+F4]6.Condtionbox:MSG==WM_COMMAND7.Logfunctionarguments:OnConditionIfyoucan’tfindUser32.TranslateMessageAPI,dothesameasabove.翻译:SoftIce能够跟踪应用程序的消息,那么OllyDbg呢?byFuZzYBiTOllyDbg也是可以的,那是一个非常隐蔽的功能。它是如此的有用。1.打开程序2.名字窗口[在CPU窗口中按CTRL+N]3.查找User32.TranslateMessageAPI4.右击/FindReferences(查找参考)5.下条件断点[SHIFT+F4]6.表达式:MSG7.记录函数参数:永远如果你不能找到它,试试右击鼠标,然后搜索全部模块中的名称。但是如果我想要捕捉一个特定的消息如WM_COMMAND呢?只对WM_COMMAND记录用这个方法做:1.打开一个程序2.名字窗口[在CPU窗口中按CTRL+N]3.查找User32.TranslateMessageAPI4.右击/FindReferences(查找参考)5.下条件断点[SHIFT+F4]6.条件框:MSG==WM_COMMAND7.记录函数参数:条件满足时如果你不能找到User32.TranslateMessageAPI,象上面那样做。以下命令适用于OllyDbg的命令行插件Cmdline.dll(显示于程序的插件菜单中)聆风听雨整理===============================================================命令行插件支持的命令CALC判断表达式WATCH添加监视表达式AT在指定地址进行反汇编FOLLOW跟随命令ORIG反汇编于EIPDUMP在指定地址进行转存DA转存为反汇编代码DB使用十六进制字节格式转存DC使用ASCII格式转存DD转存在堆栈格式DU转存在UNICODE格式DW使用十六进制字词格式转存STK前往堆栈中的地址AS(AS+地址+字符串)在指定地址进行汇编BP进行条件中断(有条件的断点)BPX中断在全部调用(Call)BPD清除全部调用中的断点BC清除断点MR内存断点于访问时MW内存断点于写入时MD清除内存断点HR访问时进行硬件中断HW写入时进行硬件中断HE执行时进行硬件中断HD清除硬件断点STOP停止运行程序调试PAUSE暂停执行程序调试RUN运行程序进行调试GE运行和通过例外SI单步进入Call中SO步过CallTI跟踪进入直到地址TO跟踪步过直到地址TC跟踪进入直到满足条件TOC跟踪步过直到满足条件TR运行直到返回TU运行直到用户代码LOG查看记录窗口MOD查看模块窗口MEM查看内存窗口CPU查看CPU窗口CS查看Call堆栈BRK查看断点窗口OPT打开选项设置窗口EXIT退出OllyDbgQUIT退出OllyDbgOPEN打开一个可执行文件CLOSE关闭可执行文件RST重新运行当前程序HELP查看API函数的帮助OllyDbg应用方法大全--请补充!所有文章均为散落在DFCG论坛各处或其他网络文集的经典。雪很冷搜集整理于学习笔记或与朋友讨论之中Ollydbg中断方法Quote:Originallypostedbydongat2004-6-110:29PM:我问个问题在od中怎么下断点呢??现在有的程序一点注册就没反映了这样的怎么下断点呢??能介绍下什么情况下什么断点吗?在转存中下硬件访问-Word断点,下断之后,怎么取消!9398944(老菜鸟)11:09:59alt+D按H然后删除这个没有万能的方法,只能视具体情况而定,就我的经验而言:第一步,反汇编找有用信息,有时候虽然点击注册按钮后,没有任何反映,但软件也许包含了可用的信息,比如“未注册”,“已注册”等等之类的,都可用做断点的。第二步,如果反汇编也找不到有用信息,如果用OD可以下HMEMECPY断点,在每个调用的函数上下断,虽然这个法子太笨,但我试过,几乎有70%以上的机会可找到断点,找到断点后再慢慢跟吧!这只是个人的看法,关键只要找到断点,有什么办法都无所谓。在命令行下bpxhmemcpy断点,然后回车,在每个调用的函数上下断。有的程序甚至无法用API中断,可以在OD载入程序后上下翻动反汇编窗口查看字符串参考下断,在反汇编窗口里直接找到的,右键查找那里找不到转发Ollydbg中断方法浅探-各种断点常识知识Ollydbg中断方法浅探――国庆节小礼Ollydbg是一个新的32位的汇编层调试软件。适应于windows98、me、2000、xp和2003操作系统。由于他具有图形窗口界面,所以操作方便、直观,是cracker的好工具。由于Ollydbg没有了TRW2000的万能断点,所以许多的新手感觉到用Ollydbg断点不好找。现在我来的说说Ollydbg下中断的几种方法。本人是个菜鸟,水平有限
本文标题:od使用方法
链接地址:https://www.777doc.com/doc-7285875 .html