od 调试多线程问题
od对于单线程程序的调试效果非常高,今天在分析病毒是遇到个多线程病毒。在新线程中下硬件断点 hr 发现od并没有断下
在网上找了一下说这个问题的人并不多不知道有没有人帮忙解答一下。
我在调试病毒的时候是下的软件断点但是程序要重新调试这个软件断点才起到效果。
下面是问题的一个简单例子代码
#include "stdafx.h"
#include <iostream>
#include
<Windows.h>
using namespace std;
int g_i = 0
;
//线程W
LRESULT myWorkThread(DWORD)
{
while (1)
{
g_i =
g_i + 1 ; //这里改写变量
::Sleep(3) ;
}
}
//线程R
int _tmain(int
argc, _TCHAR*
argv[])
{
CloseHandle(::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)myWorkThread,NULL,0,NULL))
;
while ( 1 )
{
cout << g_i << endl ;
//手动在这里断下,然后下硬件写断点,OD无法在 myWorkThread 中断下
Sleep(6*1000) ;
}
return
0;
}