OD常用断点

拦截窗口:bp CreateWindow 创建窗口bp CreateWindowEx(A) 创建窗口bp ShowWindow 显示窗口bp UpdateWindow 更新窗口bp GetWindowText(A) 获取窗口文本拦截消息框:bp MessageBox(A) 创建消息框bp MessageBoxExA 创建消息框bp MessageBoxIndirect(A) 创建定制消息框bp IsDialogMessageW拦截警告声:bp MessageBeep 发出系统警告声(如果没有声卡就直接驱动系统喇叭发声)拦截对话框:bp DialogBox 创建模态对话框bp DialogBoxParam(A) 创建模态对话框bp DialogBoxIndirect 创建模态对话框bp DialogBoxIndirectParam(A) 创建模态对话框bp CreateDialog 创建非模态对话框bp CreateDialogParam(A) 创建非模态对话框bp CreateDialogIndirect 创建非模态对话框bp CreateDialogIndirectParam(A) 创建非模态对话框bp GetDlgItemText(A) 获取对话框文本bp GetDlgItemInt 获取对话框整数值拦截剪贴板:bp GetClipboardData 获取剪贴板数据拦截注册表:bp RegOpenKey(A) 打开子健bp RegOpenKeyEx 打开子健bp RegQueryValue(A) 查找子健bp RegQueryValueEx 查找子健bp RegSetValue(A) 设置子健bp RegSetValueEx(A) 设置子健功能限制拦截断点:bp EnableMenuItem 禁止或允许菜单项bp EnableWindow 禁止或允许窗口拦截时间:bp GetLocalTime 获取本地时间bp GetSystemTime 获取系统时间bp GetFileTime 获取文件时间bp GetTickCount 获得自系统成功启动以来所经历的毫秒数bp GetCurrentTime 获取当前时间(16位)bp SetTimer 创建定时器bp TimerProc 定时器超时回调函数GetDlgItemInt 得指定输入框整数值GetDlgItemText 得指定输入框输入字符串GetDlgItemTextA 得指定输入框输入字符串拦截文件:bp CreateFileA 创建或打开文件 (32位)bp OpenFile 打开文件 (32位)bp ReadFile 读文件 (32位)bp WriteFile 写文件 (32位)GetModuleFileNameAGetFileSizeSetfilepointerfileopenFindFirstFileAReadFile拦截驱动器:bp GetDriveTypeA 获取磁盘驱动器类型bp GetLogicalDrives 获取逻辑驱动器符号bp GetLogicalDriveStringsA 获取当前所有逻辑驱动器的根驱动器路径★★VB程序专用断点★★文件长度:RtcFileLenbp __vbaFreeStr 对付VB程序重启验证bp __vbaStrCmp 比较字符串是否相等bp __vbaStrComp 比较字符串是否相等bp __vbaVarTstNe 比较变量是否不相等bp __vbaVarTstEq 比较变量是否相等bp __vbaStrCopy 复制字符串bp __vbaStrMove 移动字符串bp MultiByteToWideChar ANSI字符串转换成Unicode字符串bp WideCharToMultiByte Unicode字符串转换成ANSI字符串=============== ================密码常用中断Hmemcpy (win9x专用)GetDlgItemTextAGetDlgItemIntvb:getvolumeinformationa  vbastrcomp (trw)Bpx __vbaStrComp (记得是两个 '_')MSVBVM60!_vbastrcomp|soficeMSVBVM50! | VBAI4STR Ctrl+Dbpx msvbvm60!__vbastrcomp do "d *(esp+0c)"(softice)按几次F5出册码出来了。bpx regqueryvalueexa do "d esp->8"(trw) vbaVarTstEq 判断是否注册的函数(0042932F 66898580FEFFFF mov word ptr [ebp+FFFFFE80], ax改为0042932F 66898580FEFFFF mov word ptr [ebp+FFFFFE80], bx)时间常用中断GetSystemTimeGetLocalTimeGetTickCountvb:rtcGetPresentDate //取得当前日期 杀窗常用中断Lockmytask (win9x专用)bp ExitProcess 退出进程DestroyWindowmouse_event (鼠标中断)postquitmessage (Cracking足彩xp,很有用^_^)vb:_rtcMsgBox ini文件内容常用中断GetPrivateProfileStringAGetPrivateProfileProfileInt key文件:getprivateprofileintReadFileCreateFileA 注册表常用中断RegQueryvalueARegQueryvalueExA 狗加密中断BPIO -h 278 RBPIO -h 378 R  其它常用函数断点CreateFileA (读狗驱动程序),DeviceIOControl,FreeEnvironmentStringsA (对付HASP非常有效).Prestochangoselector (16-bit HASP's), '7242' 查找字符串 (对付圣天诺).具体含义参考下面的范例。 光盘破解中断16:getvolumeinformationgetdrivetypeint 2fh (dos)32:GetDriveTypeAGetFullPathNameAGetWindowsDirectoryA 读磁盘中断GETLASTERROR 返回扩充出错代码  限制中断EnableMenuItem 允许、禁止或变灰指定的菜单条目EnableWindow 允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰)  不知道软盘中断是什么了?还有其它特殊中断,不知道其他朋友可否说一下了?如ockmytask and mouse_event,这些就不是api32函数?win9x 与 win2k进行破解,以上中断有部分已经不能用了?不知道在win2k上,以上常用中断函数是什么了?也就是问密码、时间、窗口、ini、key、注册表、加密狗、光盘、软盘、限制等!了解常用的中断,对破解分析可以做到事半功倍!请大家说一下!还有如何破解了某个软件时,一重启就打回原形?不知道下什么中断了?可以分为三种情况:1.比较可能在注册表中2.比较在特殊文件(*.key *.ini *.dat等)3.比较在程序中,没有任何错误提示或者反译也找不到明显字符(这个就是我想问的) 还有一个是最难的,就是去掉水印!也可以三种情况:A.水印是位图文件(bitblt,creatBITMAP等位图函数)B.水印是明显字符(反译分析)C.水印不是明显字符(如:This a demo!它只是显示在另一个制作文件上,可是*.htm *.exe等)C.才是最难搞,也是很多人想知道的!包括我在内。不知道高手们有何提示了? 广告条:可以分两种情况:A.从创建窗口进手,可以用到movewindow或者其它窗口函数!B.从位图进手,也可以用到bitblt或者其它位图函数!最后可以借助一些现有工具(如:api27,vwindset,freespy之类的工具) 葡萄虽无树,藤生棚中秧。人处凡尘中,岂不惹尘埃? 小球[CCG]那要看是在哪作的标记,通常是在注册表中留下信息!在softice中就要用bpx regqueryvalueexa do "d esp->8"来中断看看,在trw中要用bpx regqueryvalueexa do "d*(esp+8)"来中断看看。还有的是在本目录下留下注册信息,常见的有.dat .ini .dll等等,我是用bpx readfile来中断的,还有的是在windows目录下留下注册信息。你可以借助专用的工具帮助你查看,入filemon等!  vb: 1、__vbaVarTstNe //比较两个变量是否不相等2、rtcR8ValFromBstr //把字符串转换成浮点数3、rtcMsgBox 显示一信息对话框4、rtcBeep //让扬声器叫唤5、rtcGetPresentDate //取得当前日期  针对字串:__vbaStrComp__vbaStrCmp__vbaStrCompVar__vbaStrLike__vbaStrTextComp__vbaStrTextLike针对变量:__vbaVarCompEq__vbaVarCompLe__vbaVarCompLt__vbaVarCompGe__vbaVarCompGt__vbaVarCompNeVB的指针:THROW  VB DLL还调用了oleauto32.dll中的部分函数。oleauto32.dll是个通用的proxy/stub DLL,其每个函数的原型在 中定义,并在MSDN中有详细描述。这也有助于理解VB DLL中的函数的作用。  举例:  LEA EAX, [EBP-58]PUSH EAXCALL [MSVBVM60!__vbaI4Var]  执行call之前敲dd eax+8,得到的值为3;执行完call之后,eax = 3从而可知__vbaI4Var的作用是将一个VARIANT转换为I4(即一个长整数)。 __vbaVarTstNe似乎是用来进行自校验的,正常情况下返回值为0。已知适用的软件有:网络三国智能机器人、音乐贺卡厂。当这两个软件被脱壳后都回出错,网络三国智能机器人会产生非法*作,而音乐贺卡厂会告诉你是非法拷贝,通过修改__vbaVarTstNe的返回值都可让它们正常运行。所以当您遇到一个VB软件,脱壳后无法正常运行,而又找不出其它问题时,可试试拦截这个函数,说不定会有用哦。8-) API不太知道,也许可以通过BIOS在98平台上读写扇区,不过在2000/NT下可以通过内黑ATAPI,HAL写扇区machoman[CCG]bpx WRITE_PORT_BUFFER_USHORTNT/2000下这个断点,当edx=1f0h,时,可以看见EDI地址内数据为扇区位置数据,必须先 在winice.dat 中装入hal.sys 详细内容看ATAPI手册  补充篇:关于对VB程序和时间限制程序的断点CrackerABC先给出修改能正确反编译VB程序的W32DASM的地址:======================offsets 0x16B6C-0x16B6D  修改机器码为: 98 F4======================  VB程序的跟踪断点:  ============MultiByteToWideChar,rtcR8ValFromBstr,WideCharToMultiByte,__vbaStrCmp__vbaStrComp__vbaStrCopy__vbaStrMove__vbaVarTstNertcBeeprtcGetPresentDate (时间API)rtcMsgBox=========  时间限制断点:  ================ CompareFileTimeGetLocalTimeGetSystemTimeGetTimeZoneInformationmsvcrt.diffTime()msvcrt.Time()================  一般处理bpx hmemcpybpx MessageBoxbpx MessageBoxExAbpx MessageBeepbpx SendMessage bpx GetDlgItemTextbpx GetDlgItemIntbpx GetWindowTextbpx GetWindowWordbpx GetWindowIntbpx DialogBoxParamAbpx CreateWindowbpx CreateWindowExbpx ShowWindowbpx UpdateWindow bmsg xxxx wm_movebmsg xxxx wm_gettextbmsg xxxx wm_commandbmsg xxxx wm_activate  时间相关bpint 21 if ah==2A (DOS)bpx GetLocalTimebpx GetFileTimebpx GetSystemtime  CD-ROM 或 磁盘相关bpint 13 if ah==2 (DOS)bpint 13 if ah==3 (DOS)bpint 13 if ah==4 (DOS)bpx GetFileAttributesAbpx GetFileSizebpx GetDriveTypebpx GetLastErrorbpx ReadFilebpio -h (Your CD-ROM Port Address) R  软件狗相关bpio -h 278 Rbpio -h 378 R  键盘输入相关bpint 16 if ah==0 (DOS)bpint 21 if ah==0xA (DOS)  文件访问(自校验)相关bpint 21 if ah==3dh (DOS)bpint 31 if ah==3fh (DOS)bpint 21 if ah==3dh (DOS)bpx ReadFilebpx WriteFilebpx CreateFilebpx GetFileSizebpx SetFilePointerbpx GetSystemDirectory  INI 初始化文件相关bpx GetPrivateProfileStringbpx GetPrivateProfileIntbpx WritePrivateProfileStringbpx WritePrivateProfileInt  注册表相关bpx RegCreateKeybpx RegDeleteKeybpx RegQueryvaluebpx RegCloseKeybpx RegOpenKey  注册标志相关bpx cs:eip if EAX==0  内存标准相关bpmb cs:eip rw if 0x30:0x45AA==0  显示相关bpx 0x30:0x45AA do "d 0x30:0x44BB"bpx CS:0x66CC do "? EAX"查找窗口FindWindowABP SetFilePointerbpx 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) ;获取窗口文本拦截消息框: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!rtcMsgBoxbpx msvbvm60!__vbaStrCmpbpx msvbvm60!__vbaStrCompbpx msvbvm60!__vbaStrCompVarbpx msvbvm60!__vbaStrTextCmpbpx msvbvm60!__vbaFileOpenbpx msvbvm60!__vbaInputFilebpx msvbvm60!__vbaFileSeekbpx msvbvm60!__vbaWriteFilebpx msvbvm60!__vbaFileClosebpx msvbvm60!rtcFileAttributesbpx msvbvm60!rtcFileDateTimebpx msvbvm60!rtcFileLenbpx msvbvm60!rtcFileLengthbpx msvbvm60!__vbaVarIntbpx msvbvm60!__vbaVarCmpGebpx msvbvm60!__vbaVarCmpGtbpx msvbvm60!__vbaVarCmpLebpx msvbvm60!__vbaVarCmpLtbpx msvbvm60!__vbaVarCmpNebpx msvbvm60!__vbaVarTextCmpEqbpx msvbvm60!__vbaVarTextCmpGebpx msvbvm60!__vbaVarTextCmpGtbpx msvbvm60!__vbaVarTextCmpLebpx msvbvm60!__vbaVarTextCmpLtbpx msvbvm60!__vbaVarTextCmpNebpx msvbvm60!__vbaVarTextTstEqbpx msvbvm60!__vbaVarTextTstGebpx msvbvm60!__vbaVarTextTstGtbpx msvbvm60!__vbaVarTextTstLebpx msvbvm60!__vbaVarTextTstLtbpx msvbvm60!__vbaVarTextTstNebpx msvbvm60!__vbaVarTstEqbpx msvbvm60!__vbaVarTstGebpx msvbvm60!__vbaVarTstGtbpx msvbvm60!__vbaVarTstLebpx msvbvm60!__vbaVarTstLtbpx msvbvm60!__vbaVarTstNe注意:VB程序仍然可以使用普通API函数,只要函数“最终”CALL了这个函数上面的断点对应VB6程序,如果是VB5程序则将msvbvm60改成msvbvm50即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值