能力值:
( LV2,RANK:10 )
|
-
-
2 楼
SendMessage 完成端口通知 或者自己写个缓存队列
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
能给个例子吗,伪代码也行,谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
HOOK recv 这个API 把收到的内容全部跳到你HOOK的代码里,在里面做判断过滤出你想找的包。
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
现在游戏包一般都加密处理了,能不能在游戏解包的地方把解包后的存到文件或者队列中,然后再做处理。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我现在就是这种方式,这种方式还是在主线程里啊!
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
....主线程跟hook有啥关系, 哪个线程执行到hook就是哪个线程, hook中不要去阻塞函数
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
举个例子:如果你注入一个DLL进去,把HOOK的地方跳转到你DLL里(在你注入的DLL里做处理),那么就是单独在DLL的线程里处理,而不是主线程。如果你在HOOK的地方还是跳回主线程的代码里处理,那肯定是在主线程。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
你这说的是不对的,hook不管跳哪处理,跳不跳回去,都是在当前线程的.
关键lz要不要第一时间处理,如果要第一时间处理到你想要的包,那只能阻塞处理了,你其他线程来处理也无意义了。
如果不需要同步.你可以hook到包以后,把包丢到缓冲区后直接返回,其他线程再来访问缓冲区处理就可以了.
如果不需要即时的话,你可以丢到比如list之类的数组里,简单点,其他线程访问下数组就好了,也不用事件了.
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
偷换掉主线程的句柄, 在你的线程中监听, 过滤完后丢给主线程。 不知道合不合你的要求。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
用个变局变量指针pNodeRecv
recv主线程hook,收到即new一片区域,写入buf数据到new的区域。pNodeRecv链表指向new出的区域。
自己写线程
while (1)
{
读取pNodeRecv链表,有数据就处理,处理完delete区域。
}
楼主说的这个应该没啥难度,都是一些基本的程序设计理念。
}
|
|
|