您的位置:首页 > 其它

OD断点小结

2014-07-24 18:13 141 查看
OD断点小结  

API断点 

Ollydbg中一般下API中断的方法,有二种。 

1.   在代码窗口中点鼠标右键,出现功能菜单。在[搜索]选择项下有〔当前模块的名称〕和〔全部模块的名称〕俩项,选择其中的一项就打开了程序调用 API的窗口,在这个窗口中选择你要跟踪的API函数名。双击这个函数就能到程序的调用地址处。然后用F2下中断。也可以在API窗口中选择需要跟踪的函 数点鼠标右键出现功能菜单,选择〔在每个参考设置断点〕。同样下了断点。                                      

快捷方式:Ctrl+N 

2.   在 命令行窗口 中输入BPX   API函数名或者BP   API函数名 后回车。这时出现了所有调用这个函数的地址的窗口,在这个窗口中可以看到调用这个API函数的地址已改变了颜色。说明下好了断点。 

说明一下:BPX一般中断在程序调用API的地址处。BP会中断在API的写入地址处。二这有所不同,根据需要选择。 

    优点:这种方法下的断点是针对每一个API函数的,所以具有明确的目的。 

    缺点:关键的API函数不容易找到。所以有时下的断点没有作用。

常用断点(OD中)

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

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) 创建消息框

bpx MessageBoxExA 创建消息框

bpx MessageBoxIndirect(A) 创建定制消息框

拦截警告声:

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

拦截对话框:

bpx DialogBox 创建模态对话框

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

bpx DialogBoxIndirect 创建模态对话框

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

bpx CreateDialog 创建非模态对话框

bpx CreateDialogParam(A) 创建非模态对话框

bpx CreateDialogIndirect 创建非模态对话框

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

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

bpx GetDlgItemInt 获取对话框整数值

拦截剪贴板:

bpx GetClipboardData 获取剪贴板数据

拦截注册表:

bpx RegOpenKey(A) 打开子健 ( 例:bpx RegOpenKey(A) if *(esp+8)=='****' )

bpx RegOpenKeyEx 打开子健 ( 例:bpx RegOpenKeyEx if *(esp+8)=='****' )

bpx RegQueryValue(A) 查找子健 ( 例:bpx RegQueryValue(A) if *(esp+8)=='****' )

bpx RegQueryValueEx 查找子健 ( 例:bpx RegQueryValueEx if *(esp+8)=='****' )

bpx RegSetValue(A) 设置子健 ( 例:bpx RegSetValue(A) if *(esp+8)=='****' )

bpx RegSetValueEx(A) 设置子健 ( 例:bpx RegSetValueEx(A) if *(esp+8)=='****' )

注意:“****”为指定子键名的前4个字符,如子键为“Regcode”,则“****”= “Regc”

==================

功能限制拦截断点:

bpx EnableMenuItem 禁止或允许菜单项

bpx EnableWindow 禁止或允许窗口

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

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

拦截时间:

bpx GetLocalTime 获取本地时间

bpx GetSystemTime 获取系统时间

bpx GetFileTime 获取文件时间

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

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

bpx SetTimer 创建定时器

bpx TimerProc 定时器超时回调函数

拦截文件:

bpx CreateFileA 创建或打开文件 (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是串行端口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  汇编