能力值:
( LV6,RANK:90 )
|
-
-
2 楼
我能把这个函数转换成VB的声明。可是不知道那些常数的取值
EXCEPTION_DEBUG_INFO如这个。在VB里应该怎么给它取值
WIN32API中有这么一套API,叫做调试API.
先是DebugActiveProcess,
BOOL DebugActiveProcess(
DWORD dwProcessId // process to be debugged
);
参数就一个就是目标进程的ID,可以用我前面说的方法来得到。
当开始调试一个进程后,就可以使用WaitForDebugEvent,
BOOL WaitForDebugEvent(
LPDEBUG_EVENT lpDebugEvent, // pointer to debug event structure
DWORD dwMilliseconds // milliseconds to wait for event
);
来等待DEBUG事件了~
DEBUG_EVENT的结构定义是这样的:
*************************************************************
typedef struct _DEBUG_EVENT { // de
DWORD dwDebugEventCode;
DWORD dwProcessId;
DWORD dwThreadId;
union {
EXCEPTION_DEBUG_INFO Exception;
CREATE_THREAD_DEBUG_INFO CreateThread;
CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
EXIT_THREAD_DEBUG_INFO ExitThread;
EXIT_PROCESS_DEBUG_INFO ExitProcess;
LOAD_DLL_DEBUG_INFO LoadDll;
UNLOAD_DLL_DEBUG_INFO UnloadDll;
OUTPUT_DEBUG_STRING_INFO DebugString;
RIP_INFO RipInfo;
} u;
} DEBUG_EVENT;
typedef struct _EXCEPTION_RECORD { // exr
DWORD ExceptionCode;
DWORD ExceptionFlags;
struct _EXCEPTION_RECORD *ExceptionRecord;
PVOID ExceptionAddress;
DWORD NumberParameters;
DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD;
typedef struct _EXCEPTION_DEBUG_INFO { // exdi
EXCEPTION_RECORD ExceptionRecord;
DWORD dwFirstChance;
} EXCEPTION_DEBUG_INFO;
*************************************************************
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
难度有点高吧!
用 dephi或者c++吧
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
|
|
|