阅读:1802回复:2
技术求助
我开发了一个用来拦截SOCKET包的程序,通过挂钩将一个线程
插入了远程进程,然后修改其输入节表,挂接了sw2_32.dll模块的SEND,RECV,SENDTO,RECVFROM和kernel32.dll的GetProcAddress 函数,然后用我的函数中转了这些函数,实现截取中间通讯数据 的目的。 我为测试该程序,自己做了一个简单的s/c程序,拦截程序 做的很好,从中拦截到了SOCKET包,但是当我用它拦截IE,OICQ 却什么都没拦截到,而且我发现IE它调用SEND函数是通过使用 GetProcAddress取的SEND的地址进行调用的,但当我想用我的 MYSEND函数的地址代替SEND函数的地址返回时,IE就罢工了, 我怀疑时不时IE里面对这个SEND函数的地址进行的效验。不符合 地址段就罢工呢。 我用的时WIN2000系统,测试用的S/C程序未使用MFC类。 再这里先说声谢了 |
|
沙发#
发布于:2003-12-23 01:33
LoadLibrary怎么能不挂呢,但这样的挂接始终不完美,完美的挂接是修改要挂接 API 的入口指令,比如int 0xN,但这要涉及的问题就多了,页面保护属性只读的修改,异常中断的处理,指令的回复等等
每个进程的地址空间都是独立的,两个进程相同的线性地址通过分页机制映射的物理地址大多数情况下完全不一样(内存文件映射可以一样) |
|
板凳#
发布于:2004-01-05 18:00
无所谓,进入RING0后,修改,注意驱除和恢复WP的保护属性。。。。。
|
|
|