首页
社区
课程
招聘
[求助]汇编程序里调用API使用的常数取值在哪里能找到
发表于: 2004-12-5 19:23 6366

[求助]汇编程序里调用API使用的常数取值在哪里能找到

2004-12-5 19:23
6366
如题

举例如下CREATE_PROCESS_DEBUG_EVENT 这个代表的值在哪里能查到

WaitForDebugEvent proto lpDebugEvent:DWORD, dwMilliseconds:DWORD

lpDebugEvent is the address of a DEBUG_EVENT这个结构将被填入关于debuggee中发生的调试事件的信息.

dwMilliseconds 该函数等待调试事件的时间,以毫秒为单位.如果这段时间没有调试事件发生, WaitForDebugEvent返回调用者.另一方面,如果将该参数指定为 INFINITE 常数,函数将一直等待直到调试事件发生.

现在我们看一下DEBUG_EVENT 结构.

DEBUG_EVENT STRUCT
dwDebugEventCode dd ?
dwProcessId dd ?
dwThreadId dd ?
u DEBUGSTRUCT <>
DEBUG_EVENT ENDS

dwDebugEventCode 该值指定了等待发生的调试事件的类型.因为有很多种类型的事件发生,我们的程序要检查该值,知道要发生事件的类型并做出响应. 该值可能的取值如下:

取值 含义
CREATE_PROCESS_DEBUG_EVENT 进程被创建.当debuggee进程刚被创建(还未运行) 或我们的程序刚以DebugActiveProcess被捆绑到一个运行中的进程时事件发生. 这是我们的程序应该获得的第一个事件.
EXIT_PROCESS_DEBUG_EVENT 进程退出.
CREATE_THEAD_DEBUG_EVENT 当一个新线程在deuggee进程中创建或我们的程序首次捆绑到运行中的进程时事件发生.要注意的是当debugge的主线程被创建时不会收到该通知.
EXIT_THREAD_DEBUG_EVENT debuggee中的线程退出时事件发生.debugee的主线程退出时不会收到该通知.我们可以认为debuggee的主线程与debugge进程是同义词. 因此, 当我们的程序看到CREATE_PROCESS_DEBUG_EVENT标志时,对主线程来说,就是CREATE_THREAD_DEBUG_EVENT标志.
LOAD_DLL_DEBUG_EVENT debuggee装入一个DLL.当PE装载器第一次分解指向DLL的链接时,我们将收到这一事件. (当调用CreateProcess装入 debuggee时)并且当debuggee调用LoadLibrary时也会发生.
UNLOAD_DLL_DEBUG_EVENT 一个DLL从debuggee中卸载时事件发生.
EXCEPTION_DEBUG_EVENT 在debuggee中发生异常时事件发生. 注意: 该事件仅在debuggee开始它的第一条指令之前发生一次.异常实际上是一个调试中断(int 3h).如果想恢复debuggee事,以 DBG_CONTINUE 标志调用ContinueDebugEvent 函数. 不要使用DBG_EXCEPTION_NOT_HANDLED 标志否则debuggee会在NT下拒绝运行(Win98下运行得很好).
OUTPUT_DEBUG_STRING_EVENT 当debuggee调用DebugOutputString函数向我们的程序发送消息字符串时该事件发生.
RIP_EVENT 系统调试发生错误

dwProcessId 和dwThreadId发生调试事件的进程和线程Id.我们可以用这些值作为我们感兴趣的进程或线程的标志符.记住如果我们使用CreateProcess来装载debuggee,我们仍可在PROCESS_INFO结构中获得debuggee的进程和线程.我们可以用这些值来区别调试事件是发生在debuggee中还是它的子进程中(当没有指定 DEBUG_ONLY_THIS_PROCESS 标志时).

u 是一个联合,包含了调试事件的更多信息.根据上面dwDebugEventCode的不同,它可以是以下结构:

dwDebugEventCode u的解释
CREATE_PROCESS_DEBUG_EVENT 名为CreateProcessInfo的CREATE_PROCESS_DEBUG_INFO结构
EXIT_PROCESS_DEBUG_EVENT 名为ExitProcess的EXIT_PROCESS_DEBUG_INFO结构
CREATE_THREAD_DEBUG_EVENT 名为CreateThread的CREATE_THREAD_DEBUG_INFO结构
EXIT_THREAD_DEBUG_EVENT 名为ExitThread的EXIT_THREAD_DEBUG_EVENT 结构
LOAD_DLL_DEBUG_EVENT 名为LoadDll的LOAD_DLL_DEBUG_INFO 结构
UNLOAD_DLL_DEBUG_EVENT 名为UnloadDll的UNLOAD_DLL_DEBUG_INFO结构
EXCEPTION_DEBUG_EVENT 名为Exception的EXCEPTION_DEBUG_INFO结构
OUTPUT_DEBUG_STRING_EVENT 名为DebugString的OUTPUT_DEBUG_STRING_INFO 结构
RIP_EVENT 名为RipInfo的RIP_INFO 结构

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (9)
雪    币: 213
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
#include "你用到的库.h"

通常windows.h

还不行就包含google.h呵呵。
2004-12-5 19:47
0
雪    币: 1790
活跃值: (4550)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
谢谢啊。能告诉我这个函数在哪个库里吗WaitForDebugEvent 。我现在在网吧。这里不能下载
2004-12-5 19:51
0
雪    币: 213
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你没调试过程序吗?
WaitForDebugEvent在哪个DLL里你不知道?
2004-12-5 20:06
0
雪    币: 1790
活跃值: (4550)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
我知道这个在kernel32里面。
我这里网吧不可以下载东西的。所以能请你帮我把这个的那个头文件复制内容贴到这个帖子里面吗。谢谢拉。再次谢谢
2004-12-5 20:09
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
6
windows.h
2004-12-5 20:19
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
DebugEventCode u的解释
CREATE_PROCESS_DEBUG_EVENT 名为CreateProcessInfo的CREATE_PROCESS_DEBUG_INFO结构
EXIT_PROCESS_DEBUG_EVENT 名为ExitProcess的EXIT_PROCESS_DEBUG_INFO结构
CREATE_THREAD_DEBUG_EVENT 名为CreateThread的CREATE_THREAD_DEBUG_INFO结构
EXIT_THREAD_DEBUG_EVENT 名为ExitThread的EXIT_THREAD_DEBUG_EVENT 结构
LOAD_DLL_DEBUG_EVENT 名为LoadDll的LOAD_DLL_DEBUG_INFO 结构
UNLOAD_DLL_DEBUG_EVENT 名为UnloadDll的UNLOAD_DLL_DEBUG_INFO结构
EXCEPTION_DEBUG_EVENT 名为Exception的EXCEPTION_DEBUG_INFO结构
OUTPUT_DEBUG_STRING_EVENT 名为DebugString的OUTPUT_DEBUG_STRING_INFO 结构
RIP_EVENT 名为RipInfo的RIP_INFO 结构

这是什么意思啊
2004-12-5 20:21
0
雪    币: 1790
活跃值: (4550)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
这个是那个API函数需要用到的部分。
2004-12-5 20:26
0
雪    币: 218
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
我在IDA PRO 4.5和IDA PRO 4.3都安装了inquisition插件,运行显示"Access
Violation at address 01FD253B in module 'inquisition.plw',read of address 00000014",请问怎么解决这个问题,有用过的MM请告诉我.?????????
2004-12-5 20:52
0
雪    币: 218
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
楼上的,请穿好衣服,以免着凉。
2004-12-5 20:59
0
游客
登录 | 注册 方可回帖
返回