学习:断点

Posted zpchcbd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习:断点相关的知识,希望对你有一定的参考价值。

断点介绍:

shark恒老师说有四种说法,但是其实都是相同的

第一个读法:普通断点
第二个读法:F2断点
第三个读法:INT3断点( int3其实就是汇编指令 )
第四个读法:CC断点 (CC其实就是断点时候的十六进制的数据)


断点的实现:

1、载入OD找到以下地址进行断点,然后进行运行,发现运行到了该地址
0040101A |. /74 01 je short CRACKME.0040101D

技术图片

那么断点是如何实现的呢?自己根据shark恒老师讲的复述一遍

其实十六进制会发生改变的,我们自己把这个断点的地址的中的HEX数据放在eax寄存器中进行观察

首先观察到0040101A地址中的数据为74 01
技术图片

然后我们在下面随机挑选一个地址 进行反汇编指令为mov eax,dword ptr ds:[0x40101A],然后单步步过,发现EAX中的数据为A1C301CC,如下
技术图片

重点观察后面01CC,发现JE跳转的HEX 74 变成了 CC ,然后就会出现异常,接着OD就会进行异常的捕获最后完成了断点的实现


CC和INT3的关系

其实都是一样 一张图就可以明白了

技术图片


bp MessageBoxA 和 bpx MessageBoxA之间的区别

都是OD中的快捷键进行断点,但是是有区别的

bp MessageBoxA的断点设置是断在user32.dll动态链接库模块领空中的首地址
技术图片

bpx MessageBoxA的断点设置是断在当前程序领空中的所有调用MessageBoxA windows api函数的CALL
技术图片

然后我们进行反汇编跟随看看,可以看到都是在当前程序下CALL地方处下的断点
技术图片

以上是关于学习:断点的主要内容,如果未能解决你的问题,请参考以下文章

为啥这段js代码设置断点单步调试能够走通,得到结果;但取消断点直接运行就不行了?

MTSP遗传算法解决

使用 pdb 进行调试

大文件上传下载实现思路,分片断点续传代码实现,以及webUpload组件

Android学习笔记Android Studio简单断点调试

Android 多线程下载,断点续传,线程池