自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 【翻译】链接器算法 【转】

转自:http://bbs.pediy.com/showthread.php?t=49872&highlight=win32+asm1 【翻译】链接器算法  标 题: c作 者: zhzhtst时 间: 2007-08-18,01:40:55链 接: http://bbs.pediy.com/showthread.php?t=49

2010-03-26 16:11:00 1116

原创 使用伪寄存器来帮助检查每段语句运行的时间

方法很简单,利用@CLK来显示当前的时间,因为每次中断都会计算一下表达式的值,因而在观察窗口中写@CLK=0则可以在每次中断的时候将这个时间清零,而每次@CLK都可以记录程序运行的时间,因而在你需要调试的代码段的开始和结束都设置一个断点,在观察窗口中写一个“@CLK,d”和一个“@CLK=0”可以记录下这段程序执行的时间。

2010-03-25 15:40:00 436

原创 通过vc的断点来调试程序

 1.条件断点,在函数中设置一个断点,但可以在断点窗口中设置它的条件,即它不一定会断下来,但当它满足了设置的条件的时候则会断下来,条件通常是一个表达式,但表达式为true的时候会断,也可以不是一个bool的表达式,但它被更改的时候就会断下来2.命中断点,它和条件断点是一样的,就是它的条件是一个bool表达式,当它为true的次数达到了一定的数目才会断下来。3.数据断点,数据断点和前面的两个断点

2010-03-25 15:25:00 699

原创 通过vc的观察窗口调程序

 1.在观察窗口中输入某个变量名,value中会显示变量的值,你不仅可以看,而且可以在运行时修改,修改可以影响下面的程序2.可以直接在快速观察窗口中直接调用一个函数,在函数中传入正确的参数就可以得到正确的返回,这个用来调试函数相当的有效。3.可以直接在观察窗口中输入寄存器的名字,从而查看它的值,同时注意在寄存器的名称前面加上一个@可以避免与程序中的变量名称冲突,比如写为"@EAX"4.可以直接

2010-03-25 14:39:00 567

原创 通过符号文件来找崩溃地址

这个一定要保证你的源文件和崩溃的pe文件对应1.将程序工程装载进vc2.在调试器中执行程序,显示出反汇编窗口3.在反汇编窗口的上面的“地址”中输入程序崩溃的地址,回车。4.这样就在反汇编窗口中找到了崩溃的汇编位置,在这个位置点击右键选择转到源代码,就回到出错的源代码了。

2010-03-25 11:13:00 725

原创 通过崩溃地址使用map文件来定位

1.map文件的开头部分是map的创建时间,它一定要崩溃的pe文件的创建日期相同才有作用2.map文件的第2行给出了pe文件的默认加载地址,如果没有冲突,这个地址将是pe文件在内存中的base地址3.下面是函数,模块与地址的对应关系有了崩溃地址,假设崩溃地址为0x100010bF,在map中看见最佳装载地址为0x10000000,假设这个就是装载base地址,通过崩溃地址在rva+base的地

2010-03-25 11:04:00 903

原创 写容易调试的代码程序

1.使用/w4等级的调试2.但由于/w4可能会要求过于严格了,使得某些stl库没法通过,这样可以使用  #pragma warning(disable:4702)  #pragma warning(default:4702)  来临时的是编译通过,  也可以使用下面的语句来临时使用/w3来调试  #pragma warning(push 3)  ... ...  #pragma warning(p

2010-03-25 09:36:00 505

转载 MFC中实现自绘菜单

转自:http://blog.csdn.net/tg2003/archive/2009/04/26/4126337.aspx 为了实现菜单的自绘,花了我几个小时,其实真正解决后又发现很简单。实现菜单的自绘只需要三个步骤:第一步:将所有菜单项设置为MF_OWNERDRAW,即自绘模式第二步:在WM_MEASUREITEM消息中设置菜单项的大小第三步:在WM_DRAWITEM消息中

2010-03-23 15:37:00 1088

原创 ollydbg简单体验5

消息断点的应用还是不是很清楚,为什么要这样断,这样断了能给我一些什么帮助? 其实不用什么消息断点是可以直接通过消息函数来进行断点的,这里对对话框程序进行分析。 1.ctrl+N(查找 当前模块的名称),找到函数:USER32.DialogBoxParamA,右击->“在每个参考上设置断点”。这个是对话框的调用函数,选择在每个参考上设置断点,这样就在每次调用的时候都断下来。 

2010-03-22 01:56:00 531

原创 ollydbg简单体验4

windows程序当然最好是使用消息来跟踪了,ollydbg同样可以在消息上设置断点,选择查看-》窗口,这样就打开了所有的窗口 ,在感兴趣的窗口上点击右键,选择在classpro上设置消息断点,然后在弹出的对话框中设置要跟踪的消息,当程序执行这个消息的时候就会中断了,当然打开run跟踪配合使用更好了, “RUN 跟踪是干什么的?简单的说,RUN 跟踪就是把被调试程序执行过的指令保存下来

2010-03-22 01:30:00 547

原创 ollydbg简单体验3

如果没有api跟踪,又没有好的字符串参考怎么办,这里可以跟踪一片内存的变化, 1.CTR+F2重新调试你的程序。2.在数据窗口中点击右键,选转到-》表达式,然后输入你需要跟踪的内存地址,点击确定,这样你就来到了你需要定位的内存地址,拖到方式选定你需要的地址然后右击,选择有两种,一是内存访问 ,二是内存写入,内存访问表示在内存被访问的时候中断,内存写入表示在内存被写入的时候中断。选择一个

2010-03-22 01:04:00 575

原创 ollydbg简单体验2

当没有可以参考的字符串时候,可以采用追踪api的方法来定位位置。 方法也很简单1.调试程序2.点查找-》当前模块中的名称  这里会列出你所需要的所有调用的api(当前模块调用的)3.在需要跟踪的api上点击右键,选择在每个参考上设置断点,这样就可以在没有这种api的调用处设置断点了4.F9运行程序,这样会在调用api处停住5.api的调用常会让你在F8或F7的时候进入系

2010-03-22 00:39:00 471

原创 ollydbg简单调试体验

使用ollydbg调试程序 1.先使用右键-》查找-》所有参考文本字串,将你要找的线索的字符串输入,这样ollydbg可以帮你找到这个字符串出现的所有位置。2.在找到的字串上右击,再在出来的菜单上点击“反汇编窗口中跟随”,就可以在反汇编窗口中来到找到的字符的位置。3.为了看看是否还有其他的参考,可以通过选择右键菜单查找参考->立即数,会出来一个对话框,在这个窗口中点击相应的条目就可

2010-03-22 00:04:00 560

转载 转载:VC的MFC中重绘函数的使用总结

在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘InvalidateRect(&Rect)Invalidate()UpdateWindow()当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化)--WM_NVPAINT系统会自己搞定--WM_PAINT消息对应的函数是OnPaint(),它是系统默认的接受WM

2010-03-17 11:09:00 1481

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除