0xAA55 发表于 2021-7-19 17:20
VC部分竟然写了个类。定睛一看,class CHookApiApp : public CWinApp。为了搞个Hook你这竟然用MFC,这是 ...
我的字典里没有"线程不安全"这几个字:lol 三叶草 发表于 2021-7-19 21:19
我的字典里没有"线程不安全"这几个字
你的字典里不一定有多线程( 0xAA55 发表于 2021-7-21 23:35
你的字典里不一定有多线程(
那确实:lol 三叶草 发表于 2021-7-19 16:16
Hook Api,把线程注入到所有进程中,修改该进程Api的头部,使其跳转到我自己编写的函数中,拦截函数执行 ...
我的建议:
用VC写DLL,处理API HOOK相关事宜(HOOK相关的代码不要弄到VB里)。
VB6使用WMI监视进程创建,一旦发现新进程被创建,就把DLL注入到新进程里。 我的理解VB6里 API声明内参数写 as string那么VB就是把1个临时转换的A字符串地址放进去 要用W字符串 就得声明为 as long 然后传入 strptr(xxx) 这个问题其实很简单 但是C语言的高手们 太喜欢用类型了 搞的无比混乱 我的建议是: 参数遇到要用字符串的地方都用 as longAPI声明部分明确的指明用A版本还是B版本
Declare Function xxxxxxW Lib "yyyyyyyy.dll" (ByVal hWnd As Long, ByVal ccccccc As Long) As Boolean ''声明W版本调用时候就传入 strptr(s)
或者
Declare Function xxxxxxA Lib "yyyyyyyy.dll" (ByVal hWnd As Long, ByVal ccccccc As Long) As Boolean ''声明A版本调用时候就传入 strptr(strconv(s,vbformxxxx))
当然前面也说了 如果清楚这个区别 那么根据实际情况 可以灵活机动的使用 as string毕竟这样声明用起来舒服 谢谢啦
页:
1
[2]