A anotherdelphi Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-25 #1 起初想编个小程序来监听是否有QQ发来的信息,现在大概的思路是通过监听QQ的通信端口来实现,不知道是否可行?!如果可行请大家指点一下,delphi网络方面的编程我比较陌生!
L lake_cx Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-25 #2 问题是有一个线程在监听那个端口了,其他的没法监听了啊。。。 你说的不是监听而是监视吧 只有Hook才能实现
L lake_cx Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-25 #4 使用ApiHook,截获winsock.dll的函数,截获所有数据包,判断其端口是否为QQ的通信端口,然后你自己处理。 ApiHook比较麻烦,首先需要自己写个dll注入QQ进程,注入方式有四种(估计QQ早就搞定了),CreateRemoteThread、SetWindowHook来装载你的dll使你的dll与QQ在同意地址空间,然后什么修改函数地址,使你要Hook的Api指向你的函数地址,处理完再跳转回去。还有是最差的方式,自己写个dll替换winsock.dll,实现winsock.dll中所有的导出函数(不现实),还有一种不记得了。。。。 技术麻烦,而且QQ有防护,估计除了那个最差的方式,其他都不行的。
使用ApiHook,截获winsock.dll的函数,截获所有数据包,判断其端口是否为QQ的通信端口,然后你自己处理。 ApiHook比较麻烦,首先需要自己写个dll注入QQ进程,注入方式有四种(估计QQ早就搞定了),CreateRemoteThread、SetWindowHook来装载你的dll使你的dll与QQ在同意地址空间,然后什么修改函数地址,使你要Hook的Api指向你的函数地址,处理完再跳转回去。还有是最差的方式,自己写个dll替换winsock.dll,实现winsock.dll中所有的导出函数(不现实),还有一种不记得了。。。。 技术麻烦,而且QQ有防护,估计除了那个最差的方式,其他都不行的。
J jxauwxb Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-25 #5 lake_cx:惊为天人,我佩服你!qq 13665393。
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-07-25 #6 qq的保护没想象中强的,很容就久进去了。 替换winsock的话 windows系统保护(sfc)和杀毒软件都会跟你过不去吧。