首页
社区
课程
招聘
API调试程序在VB下能否实现[讨论]在线等
发表于: 2004-12-5 18:49 5066

API调试程序在VB下能否实现[讨论]在线等

2004-12-5 18:49
5066
现在网络上有很多关于用API调试程序的文章。实现方法都一样的。
由于我才上大一。那些语言都不太懂。只知道些VB的知识。大家不要笑我

   最近我弄了一个程序。想叫另一个程序暂停。以方便我修改增补一些代码。就像内存补丁那样。可是有些函数不知道怎么声明。结构有些复杂。不知道怎么转到VB上来。比如WaitForDebugEvent函数。有没有能提供些帮助给我。
用API调试程序的方法。或别的可以使我在另一个程序运行到指定的地方是把它中断下来。

在线等

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 1790
活跃值: (4550)
能力值: ( 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;
*************************************************************
2004-12-5 19:09
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
难度有点高吧!
用 dephi或者c++吧
2004-12-5 21:23
0
雪    币: 166
活跃值: (112)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
1997年,牛人John Robbins用VB实现了一个debugger
f79K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3#2A6j5%4u0G2M7$3!0X3N6q4)9J5k6h3y4G2L8g2)9J5c8X3#2K6K9W2)9J5c8U0l9&6z5e0N6Q4x3V1k6E0N6h3I4@1K9i4k6T1i4K6u0W2j5i4y4H3P5l9`.`.
Multiple Threads in Visual Basic 5.0, Part II: Writing a Win32 Debugger

所以说MSJ是个好地方
2004-12-5 22:13
0
游客
登录 | 注册 方可回帖
返回