OD常用断点 很全很全


查找窗口 
FindWindowA 

BP SetFilePointer 


bpx hmemcpy ;破解万能断点,拦截内存拷贝动作(注意:Win9x专用断点) 
bpx Lockmytask ;当你用其它断点都无效时可以试一下,这个断点拦截按键的动作(Win9x专用) 


实在找不到断点可以试下面的方法: 

bmsg handle wm_gettext ;拦截注册码(handle为对应窗口的句柄) 
bmsg handle wm_command ;拦截OK按钮(handle为对应窗口的句柄) 


拦截窗口: 

bpx CreateWindow ;创建窗口 
bpx CreateWindowEx(A/W) ;创建窗口 
bpx ShowWindow ;显示窗口 
bpx UpdateWindow ;更新窗口 
bpx GetWindowText(A/W) ;获取窗口文本 
bp ShellExecuteA 打开网页窗口
拦截消息框: 

bpx MessageBox(A/W) ;创建消息框 
bpx MessageBoxExA(W) ;创建消息框 
bpx MessageBoxIndirect(A/W) ;创建定制消息框 

拦截警告声: 

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即可

相关文章: