首页
社区
课程
招聘
破解常用的断点设置 新手学习强贴(象我这样菜地)[转帖]
发表于: 2006-9-6 21:17 8881

破解常用的断点设置 新手学习强贴(象我这样菜地)[转帖]

2006-9-6 21:17
8881
设置好断点对于破解的成功是非常重要的,下面列举了一些常用的断点设置.

bpx hmemcpy 破解万能断点,拦截内存拷贝动作(注意:Win9x专用断点)

bpx Lockmytask 当你用其它断点都无效时可以试一下,这个断点拦截按键的动作

(Win9x专用)

实在找不到断点可以试下面的方法:
bp handle wm_gettext 拦截注册码(handle为对应窗口的句柄)

bp handle wm_command 拦截OK按钮(handle为对应窗口的句柄)

-------------------------------------------------------------------------------------------
利用消息断点
  在处理字串方面可以利用消息断点WM_GETTEXT和WM_COMMAND。前者用来读取某个控件中的文本,比如拷贝编辑窗口中的序列号到程序提供的一个缓冲区里;后者则是用来通知某个控件的父窗口的,比如当输入序列号之后点击OK按钮,则该按钮的父窗口将收到一个WM_COMMAND消息,以表明该按钮被点击。
  BP xxxx WM_GETTEXT (拦截序列号)
  BP xxxx WM_COMMAND (拦截OK按钮)

  可以用SoftICE提供的HWND命令获得窗口句柄的信息,也可以利用Visual Studio中的Spy++实用工具得到相应窗口的句柄值,然后用BMSG设断点拦截。例:
  BMSG 0129 WM_COMMAND
------------------------------------------------------------------------------------------

拦截窗口:
bpx createWindow 创建窗口

bpx createWindowExA 创建窗口
bpx createWindowExW

bpx ShowWindow 显示窗口

bpx updateWindow 更新窗口

bpx GetWindowTextA 获取窗口文本
bpx GetWindowTextW

拦截消息框:
bpx MessageBoxA 创建消息框
bpx MessageBoxW

bpx MessageBoxExA 创建消息框
bpx MessageBoxExW
bpx MessageBoxIndirectA 创建定制消息框
bpx MessageBoxIndirectW
__________________________________________________
如何在OllyDbg下设消息断点了
首先运行一个程序,打开"窗口"界面,选择所调试程序的主窗口,右键.选择"消息断点在 ClassProc",然后在列表中选一个需要的消息(如:WM_RBUTTONDOWN),下面的选项选择"中断在相同标题的窗口",然后确定就可以了.现在在窗口上点一下右键试试看吧...

-------------------------------------------------------------------------------------------

拦截警告声:
bpx MessageBeep 发出系统警告声(如果没有声卡就直接驱动系统喇叭发声)

拦截对话框:
bpx DialogBox 创建模态对话框

bpx DialogBoxParam(A/W) 创建模态对话框

bpx DialogBoxIndirect 创建模态对话框

bpx DialogBoxIndirectParam(A/W) 创建模态对话框

bpx createDialog 创建非模态对话框

bpx createDialogParam(A/W) 创建非模态对话框

bpx createDialogIndirect 创建非模态对话框

bpx createDialogIndirectParam(A/W) 创建非模态对话框

bpx GetDlgItemText(A/W) 获取对话框文本

bpx GetDlgItemInt 获取对话框整数值

拦截剪贴板:
bpx GetClipboardData 获取剪贴板数据

拦截注册表:
bpx RegOpenKey(A/W) 打开子健 ( 例:bpx RegOpenKey(A) if *(esp->8)=='****' )

bpx RegOpenKeyExA(W) 打开子健 ( 例:bpx RegOpenKeyEx if *(esp->8)=='****' )

bpx RegQueryValue(A/W) 查找子健 ( 例:bpx RegQueryValue(A) if *(esp->8)=='****' )

bpx RegQueryValueEx(A/W) 查找子健 ( 例:bpx RegQueryValueEx if *(esp->8)=='****' )

bpx RegSetValue(A/W) 设置子健 ( 例:bpx RegSetValue(A) if *(esp->8)=='****' )

bpx RegSetValueEx(A/W) 设置子健 ( 例:bpx RegSetValueEx(A) if *(esp->8)=='****' )

'****'为指定子键名的前4个字符,如子键为'Regcode',

则'****'= 'Regc'

功能限制拦截断点:
bpx EnableMenuItem 禁止或允许菜单项

bpx EnableWindow 禁止或允许窗口

bmsg hMenu wm_command 拦截菜单按键事件,其中hMenu为菜单句柄

bpx K32Thk1632Prolog 配合bmsg hMenu wm_command使用,可以通过这个断点进入菜单处

理程序

应用示例:
CALL [KERNEL32!K32Thk1632Prolog]

CALL [......] <-- 由此跟踪进入菜单处理程序

CALL [KERNEL32!K32Thk1632Epilog]

拦截时间:
bpx GetLocalTime 获取本地时间

bpx GetSystemTime 获取系统时间

bpx GetFileTime 获取文件时间

bpx GetTickCount 获得自系统成功启动以来所经历的毫秒数

bpx GetCurrentTime 获取当前时间(16位)

bpx SetTimer 创建定时器

bpx TimerProc 定时器超时回调函数

拦截文件:
bpx createFileA(W) 创建或打开文件 (32位)

bpx OpenFile 打开文件 (32位)

bpx ReadFile 读文件 (32位)

bpx WriteFile 写文件 (32位)

bpx _lcreat 创建或打开文件 (16位)

bpx _lopen 打开文件 (16位)

bpx _lread 读文件 (16位)

bpx _lwrite 写文件 (16位)

bpx _hread 读文件 (16位)

bpx _hwrite 写文件 (16位)

拦截驱动器:
bpx GetDrivetype(A/W) 获取磁盘驱动器类型

bpx GetLogicalDrives 获取逻辑驱动器符号

bpx GetLogicalDriveStringsA(W) 获取当前所有逻辑驱动器的根驱动器路径

拦截狗:
bpio -h 378(或278、3BC) R 378、278、3BC是并行打印端口

bpio -h 3F8(或2F8、3E8、2E8) R 3F8、2F8、3E8、2E8是串行端口

VB程序专用断点:
bpx msvbvm60!rtcMsgBox

bpx msvbvm60!__vbaStrCmp

bpx msvbvm60!__vbaStrComp

bpx msvbvm60!__vbaStrCompVar

bpx msvbvm60!__vbaStrTextCmp

bpx msvbvm60!__vbaFileOpen

bpx msvbvm60!__vbaInputFile

bpx msvbvm60!__vbaFileSeek

bpx msvbvm60!__vbaWriteFile

bpx msvbvm60!__vbaFileClose

bpx msvbvm60!rtcFileAttributes

bpx msvbvm60!rtcFileDateTime

bpx msvbvm60!rtcFileLen

bpx msvbvm60!rtcFileLength

bpx msvbvm60!__vbaVarInt

bpx msvbvm60!__vbaVarCmpGe

bpx msvbvm60!__vbaVarCmpGt

bpx msvbvm60!__vbaVarCmpLe

bpx msvbvm60!__vbaVarCmpLt

bpx msvbvm60!__vbaVarCmpNe

bpx msvbvm60!__vbaVarTextCmpEq

bpx msvbvm60!__vbaVarTextCmpGe

bpx msvbvm60!__vbaVarTextCmpGt

bpx msvbvm60!__vbaVarTextCmpLe

bpx msvbvm60!__vbaVarTextCmpLt

bpx msvbvm60!__vbaVarTextCmpNe

bpx msvbvm60!__vbaVarTextTstEq

bpx msvbvm60!__vbaVarTextTstGe

bpx msvbvm60!__vbaVarTextTstGt

bpx msvbvm60!__vbaVarTextTstLe

bpx msvbvm60!__vbaVarTextTstLt

bpx msvbvm60!__vbaVarTextTstNe

bpx msvbvm60!__vbaVarTstEq

bpx msvbvm60!__vbaVarTstGe

bpx msvbvm60!__vbaVarTstGt

bpx msvbvm60!__vbaVarTstLe

bpx msvbvm60!__vbaVarTstLt

bpx msvbvm60!__vbaVarTstNe

注意:VB程序仍然可以使用普通API函数,只要函数"最终"CALL了这个函数

上面的断点对应VB6程序,如果是VB5程序则将msvbvm60改成msvbvm50即可

--------------------------------------------------------------------------------

VB3、VB4、VB5程序破解法宝(将以下内容覆盖Softice中winice.dat文件的对应项):

AF3="^S 30:0 L FFFFFFFF 8B,CA,F3,A6,74,01,9F,92,8D,5E,08;"
AF4="^S 30:0 L FFFFFFFF 56,57,8B,7C,24,10,8B,74,24,0C,8B,4C,24,14,33,C0,F3,66,A7;"
AF5="^S 30:0 L FFFFFFFF FF,75,E0,E8,85,EF,FF,FF,DC,1D,28,10,40,00,DF,E0,9E,75,03;"

跟踪时按ALT+F3、ALT+F4、ALT+F5键(分别对应VB3、VB4、VB5程序),搜寻成功后你将得到一个地址30:????????,然后设置断点"bpx 30:????????",这样可以有效的拦截很多程序的注册码(破解VB程序记得将VB的DLL库导入Softice)!^_^

  ★注意:上面所列函数末尾有带"A"的,有带"W"的,有不带后缀的;一般说来,如果函数同时可以有后缀也可以没有后缀(形如:MessageBox(A/W)), 则不带后缀的表示16位的函数(MessageBox),带后缀的(MessageBoxA、MessageBoxW)表示32位的函数;通常优先使用带后缀(A或W)的断点,带A后缀的一般用于WIN9X系统, 而带W后缀的一般用于NT系统;如果函数没有任何后缀,则表示这是个通用的跨平台的API函数

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 221
活跃值: (20)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
好贴,学习,强烈学习,加油
2006-9-6 22:01
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好,有用,顶啊
2006-9-8 13:23
0
雪    币: 1309
活跃值: (232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
xiexiele
2006-9-8 13:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
很好呀,谢谢。
2006-9-8 17:18
0
游客
登录 | 注册 方可回帖
返回
//