-
-
[旧帖]
[求助]free出现异常的原因?大家帮帮忙啊
0.00雪花
-
发表于:
2008-12-31 07:23
3880
-
[旧帖] [求助]free出现异常的原因?大家帮帮忙啊
0.00雪花
分线程:
LPSTR pStr = "123";
LPSTR pMessage = (LPSTR)malloc (strlen(pStr) + 1);
SendMessage(hWnd, WM_XXXX, (WPARAM)pMessage, (LPARAM)strlen(pStr));//向 主界面发送字符串消息
主线程:
WndProc() //主线程消息处理函数
{
switch(wMessageID)
{
char buff[20]; //分配一个局部栈
....
case WM_XXXX:
{
memcpy(buff, (char*)wParam, 20); //这里是越界操作, 但是会出现问题吗?
ShowMessage(buff); //这里是吧buff中的内容显示到界面上
free((void*)wParam); //释放字符空间;
break;
}
}
}
我最近在调试一个程序时,发现在free时总是出现异常,但是我查看指针指向的内存却没有问题,是一个以NULL结尾的字符串,我又仔细看了下对这个字符串的操作,发现了一处越界处理,就象上面的那个程序一样,我想问下大家,是这里的问题吗?如果是,那么什么情况下会抛出异常?如果不是,那么我还应该怎么查找这个问题呢?
这个问题我以前发过,书呆子说是出现了隐蔽异常,让我用OD再仔细调,我不明白,我还应该怎么调呢?我应该从哪个方面入手调呢?大家能不能指导我下。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)