破解常用的断点设置

前端之家收集整理的这篇文章主要介绍了破解常用的断点设置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

转载于看雪论坛:http://bbs.pediy.com/showthread.php?t=31609

设置好断点对于破解的成功是非常重要的,下面列举了一些常用的断点设置. 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,0C,4C,14,33,C0,66,A7;" AF5="^S 30:0 L FFFFFFFF FF,75,E0,E8,85,EF,FF,DC,1D,28,40,00,DF,9E,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函数

原文链接:/vb/260037.html

猜你在找的VB相关文章