qiken 发表于 2024-8-20 20:00 HOOK一个API间接调用吧, 必须是主线程调用的API, 这样可以实现你的要求 |
qiken 发表于 2024-8-20 20:00 EXE是第三方别人的 我现在只能调用我的DLL 我用是永久注入的方式。 |
793359277 发表于 2024-8-20 19:53 好像有点麻烦哦 对了这个DLL启动那里无法访问网络的》?用网页_访问 返回数据是空的 必须在线程里才可以 所以我这个初始化是需要访问网络的 所以只能写在线程里 但是线程又不能等待 那怎么整》 不等待无法拦截主程序EXE啊 堵塞不了 |
qiken 发表于 2024-8-20 19:35 DllMain是可以启动线程的, 但禁止等待线程. 最佳做法是写在输出函数中, 让EXE主动调用. 当然还有一些另类的方法, 我自己实践出来的, 如: HOOK某个API用作跳板间接执行, 在API被调用时执行你想要的操作. 又或是DLL动态生成一段启动线程调用DLL导出函数的汇编(你想要的操作写在导出函数里), 申请一块内存区域把汇编代码写进去, 然后启动线程去执行 |
793359277 发表于 2024-8-20 19:18 n那我是DLL线程中调用的,需要用到线程等待,应该怎么写呢? 还是说在DLL里无法用线程命令? |
本帖最后由 793359277 于 2024-8-20 19:20 编辑 qiken 发表于 2024-8-20 18:15 果然又是DLL, 不可以写在DllMain中, 很多人都像你一样, 在DllMain中写一些被禁止的操作, 然后发帖说BUG 动态链接库最佳做法 - Win32 apps | Microsoft Learn |
精易这个线程_启动也没封装好,不能返回线程ID,但启动线程还是没问题的。 要启动的子程序用 取静态方法地址() ,线程函数应该按「启动线程」的「线程模板函数1」来定义,必须静态。 |
|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )
GMT+8, 2024-11-23 10:17 , Processed in 0.091517 second(s), 22 queries .
Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc.