能力值:
( LV5,RANK:73 )
2 楼
创建一条线程调用 SetWindowsHookEx,不要直接在 DllMain 里直接调用。
最后于 2019-11-14 19:22
被Sprite雪碧编辑
,原因:
能力值:
( LV7,RANK:105 )
3 楼
因为CreateRemoteThread LoadLibrary的那个线程并没有消息循环。
This hook is called in the context of the thread that installed it. The call is made by sending a message to the thread that installed the hook. Therefore, the thread that installed the hook must have a message loop.
(摘自 dc5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3P5X3S2Q4x3X3c8U0L8W2)9J5c8Y4m8J5k6i4k6A6L8%4g2K6i4K6u0V1N6X3g2J5M7$3W2G2L8Y4y4Q4x3V1k6%4K9h3&6V1L8%4N6K6i4K6u0r3k6r3g2K6K9%4c8G2M7q4)9J5c8X3I4W2k6$3q4U0P5g2)9J5c8X3#2K6y4U0b7@1z5e0R3#2i4K6t1^5N6W2)9K6c8s2k6K6i4K6u0W2z5o6g2Q4x3U0W2Q4x3U0V1`. PS:
1、WH_KEYBOARD_LL钩子其实不用注入到目标进程里也能工作。 2、既然你都用了SetWindowsHookEx,注入用CreateRemoteThread就没什么必要,兼容性没有Windows自带的注入好,当然写**无所谓了 3、如果你不需要拦截的话用WH_GETMESSAGE、WH_KEYBOARD就够了,如果需要拦截消息级别的按键用SetWindowsLong劫持窗口处理过程,如果需要拦截GetRawInputData级别的才用LL钩子 4、以上可能有错误。。
最后于 2019-11-14 21:17
被练习生编辑
,原因:
能力值:
( LV2,RANK:10 )
4 楼
非常感谢回答,明白什么原因了
能力值:
( LV2,RANK:10 )
5 楼
其实我想实现的就是将dll注入到另外一个进程去截取消息,就算关闭注入的这个程序也不影响dll正常运行,不知道有什么好办法呢
能力值:
( LV7,RANK:105 )
6 楼
dusksoft
其实我想实现的就是将dll注入到另外一个进程去截取消息,就算关闭注入的这个程序也不影响dll正常运行,不知道有什么好办法呢
消息的类型有很多种,鼠标键盘都要获取,并且有时候需要修改消息内容的话建议用SetWindowsLong,“关闭注入的这个程序也不影响dll正常运行”这种情况的话还是使用远程线程注入