监视函数是否被设置 INT3 断点
2010-05-09 09:00
183 查看
OD中的Int3断点的主要功能是:在需要下断点的执行代码处将原来的代码改成0xCC,程序执行到此处后会报一个Int3异常,由OD捕获并处理。当要执行该行代码时,将原来的代码改回来并执行,然后再恢复断点,这样就不会影响程序的正常运行了。
在 messageboxa 的第一条指令(mov edi,edi)出 F2
#include "stdafx.h" #include <windows.h> #include <iostream> using namespace std; BOOL CheckBreakPoint(); void MyMessage(); HWND hwnd; int main(int argc, char* argv[]) { hwnd=GetDesktopWindow(); //Messag if(CheckBreakPoint()) { cout<<"MessageBox 被设置了断点"; } else { cout<<"MessageBox 没有被设置断点"; } MyMessage(); return 0; } BOOL CheckBreakPoint() { FARPROC uaddr; BYTE Mark=0; (FARPROC&)uaddr=GetProcAddress(LoadLibrary("user32.dll"),"MessageBoxA"); Mark=*(BYTE*)uaddr; if(Mark==0xCC) return TRUE; else return FALSE; } void MyMessage() { MessageBox(hwnd,TEXT("ASD"),TEXT("ASDF"),0); }
在 messageboxa 的第一条指令(mov edi,edi)出 F2
相关文章推荐
- 编写一个函数fun(int n), n为三位自然数,然后判断n是否为水仙花数
- 设置信号信号处理函数void (*signal (int signo ,void (*fun)(int )))(int)
- 破解常用断点设置API函数原型——常用函数汇总
- Windbg在Managed App中设置函数断点的几种方法
- Windbg在Managed App中设置函数断点的几种方法
- RFC函数设置外部断点
- 函数是否应该设置为static
- 在PHP中,使用函数define()来定义常量 可设置大小号是否敏感等
- Win API函数与断点设置.txt
- android清单文件设置是否可以断点调试
- 检测变量是否已经设置,并比较Empty 和Isset 两个函数的区别
- 如何:设置函数断点
- userControl --设置是否在InitializeComponent函数中生成相应的代码
- rbreak 可以在一个文件的所有函数设置断点的GDB命令
- 编写函数,接受一对指向vector<int>的迭代器和一个int值。在两个迭代器指定的范围内查找给定的值,返回一个布尔值来指出是否找到。
- 在JIT编译生成的函数上设置断点
- PHP的isset()函数 一般用来检测变量是否设置
- 用最简单的函数实现功能:判断一个int数据是否是2的x次幂(不能使用循环)。
- Win7下VS2008不能为函数设置断点
- PHP的isset()函数 一般用来检测变量是否设置