三叶草 发表于 2021-7-19 21:16:55

然而还是木有用[捂脸]

三叶草 发表于 2021-7-19 21:19:46

0xAA55 发表于 2021-7-19 17:20
VC部分竟然写了个类。定睛一看,class CHookApiApp : public CWinApp。为了搞个Hook你这竟然用MFC,这是 ...

我的字典里没有"线程不安全"这几个字:lol

0xAA55 发表于 2021-7-21 23:35:55

三叶草 发表于 2021-7-19 21:19
我的字典里没有"线程不安全"这几个字

你的字典里不一定有多线程(

三叶草 发表于 2021-7-24 12:27:00

0xAA55 发表于 2021-7-21 23:35
你的字典里不一定有多线程(

那确实:lol

Golden Blonde 发表于 2021-7-25 01:51:27

三叶草 发表于 2021-7-19 16:16
Hook Api,把线程注入到所有进程中,修改该进程Api的头部,使其跳转到我自己编写的函数中,拦截函数执行 ...

我的建议:

用VC写DLL,处理API HOOK相关事宜(HOOK相关的代码不要弄到VB里)。

VB6使用WMI监视进程创建,一旦发现新进程被创建,就把DLL注入到新进程里。

tlwh163 发表于 2022-6-10 22:12:36

我的理解VB6里 API声明内参数写 as string那么VB就是把1个临时转换的A字符串地址放进去

tlwh163 发表于 2022-6-10 22:13:49

要用W字符串 就得声明为 as long   然后传入 strptr(xxx)

tlwh163 发表于 2022-6-10 22:14:59

这个问题其实很简单 但是C语言的高手们 太喜欢用类型了 搞的无比混乱

tlwh163 发表于 2022-6-10 22:26:48

我的建议是: 参数遇到要用字符串的地方都用 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毕竟这样声明用起来舒服

三叶草 发表于 2022-8-16 11:23:36

谢谢啦
页: 1 [2]
查看完整版本: [VB]调用vc Dll出错