首页
论坛
课程
招聘
[原创]Cmdbar ---- [bp与bpx的区别]
2010-8-6 00:32 9568

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

2010-8-6 00:32
9568
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 [ebp+18]

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的区别了吧

[注意] 招人!base上海,课程运营、市场多个坑位等你投递!

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 311
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
雨耕山 活跃值 1 2010-8-7 08:32
2
0
谢谢,学习了。
雪    币: 98
活跃值: 活跃值 (72)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
eGirlAsm 活跃值 2010-8-31 11:54
3
0
在OD里
bp 断是直接把入口改成CC
bpx 是哪里调用的函数 就哪里CC

两种区别在于
bp是 在 MOV EDI,EDI 类似的代码里下的断
bpx 是在  CALL XXXX.XXXX 类似的代码的下的断  XXX 表示某个已知dll的函数   

下BPX断时 能找到 多个CALL函数代码
雪    币: 237
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
流浪蚂蚁 活跃值 2010-8-31 13:08
4
0
学习了 希望多看到类似的原创文章 学习中
雪    币: 1644
活跃值: 活跃值 (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yodamaster 活跃值 2011-3-3 11:05
5
0
多谢指点,把bp和bpx的区别讲的很清楚。
bp CreateFileW   -- 在函数CreateFileW的入口设置断点
bpx CreateFileW -- 在所有调用CreateFileW的地方设置断点
游客
登录 | 注册 方可回帖
返回