冥界3大法王 发表于 2019-8-8 09:05

Cmdbar ---- [bp与bpx的区别]

bp与bpx的区别
bp address,string -- Break with condition   [对address或string下断点]
bpx string -- Break on all calls            [对call string下断点]
下面以记事本为例进行说明,在此分别利用bp与bpx对函数CreateFileW下断.
bp CreateFileW
--------------------------------------------------------------------------------------------------
7C810800 >8BFF            mov   edi, edi                         ; bp CreateFileW ----断点位置[系统领空]
7C810802    55            push    ebp
7C810803    8BEC            mov   ebp, esp
7C810805    83EC 58         sub   esp, 58
7C810808    8B45 18         mov   eax, dword ptr
0x7c810800就是函数CreateFileW的地址,大家可以利用工具dllexp.exe查看,显示的信息如下:
函数名称          : CreateFileW
偏移地址          : 0x7c810800
相对偏移地址      : 0x00010800
顺序数            : 83 (0x53)
文件名            : kernel32.dll
完整路径          : C:\WINDOWS\system32\kernel32.dll
类型            : 导出函数
bpx CreateFileW
--------------------------------------------------------------------------------------------------
Breakpoints
Address    Module                     Active                     Disassembly                                       Comment
01002653   Gall_NOT                   Always                     call    dword ptr [<&KERNEL32.CreateFileW>]
01002DAA   Gall_NOT                   Always                     call    dword ptr [<&KERNEL32.CreateFileW>]
010033AA   Gall_NOT                   Always                     call    dword ptr [<&KERNEL32.CreateFileW>]
0100423E   Gall_NOT                   Always                     call    edi
010043D0   Gall_NOT                   Always                     call    dword ptr [<&KERNEL32.CreateFileW>]
01004A07   Gall_NOT                   Always                     call    dword ptr [<&KERNEL32.CreateFileW>]
01004A5B   Gall_NOT                   Always                     call    dword ptr [<&KERNEL32.CreateFileW>]
01004ED8   Gall_NOT                   Always                     call    dword ptr [<&KERNEL32.CreateFileW>]
相信不用多说,大家已经知道bp与bpx的区别了吧

在OD里
bp 断是直接把入口改成CC
bpx 是哪里调用的函数 就哪里CC
两种区别在于
bp是 在 MOV EDI,EDI 类似的代码里下的断
bpx 是在CALL XXXX.XXXX 类似的代码的下的断XXX 表示某个已知dll的函数   
下BPX断时 能找到 多个CALL函数代码

多谢指点,把bp和bpx的区别讲的很清楚。
bp CreateFileW   -- 在函数CreateFileW的入口设置断点
bpx CreateFileW -- 在所有调用CreateFileW的地方设置断点

xiaomm250 发表于 2022-4-21 14:21

bp 断是直接把入口改成CC
bpx 是哪里调用的函数 就哪里CC
两种区别在于
bp是 在 MOV EDI,EDI 类似的代码里下的断
bpx 是在CALL XXXX.XXXX 类似的代码的下的断XXX 表示某个已知dll的函数   
下BPX断时 能找到 多个CALL函数代码

多谢指点,把bp和bpx的区别讲的很清楚。
bp CreateFileW   -- 在函数CreateFileW的入口设置断点
bpx CreateFileW -- 在所有调用CreateFileW的地方设置断点

学到了!!!!!!!!!!!

huangyutong 发表于 2019-8-8 09:35

谢谢分享经验

zenaiwen 发表于 2019-8-8 10:07

china-ray 发表于 2019-8-8 10:09

小白,完全看不懂,不明觉厉!

学士天下 发表于 2019-8-8 10:23

学习了,谢谢!

92013 发表于 2019-8-8 12:47

这个谢谢分享

dafs 发表于 2019-8-8 17:24

学习了 谢谢

为了丶梦想 发表于 2019-8-8 18:40

学习了 非常感谢

gunxsword 发表于 2019-8-8 20:41

感谢分享经验,还真的没怎么用过BPX

Avenshy 发表于 2019-8-9 00:22

感谢学习了
页: [1] 2
查看完整版本: Cmdbar ---- [bp与bpx的区别]