我想拦截并修改某一程序发出的数据包(win98),许多游戏外挂都有这种功能
查了许多贴子,总结了以下几种方法1、替换wsock32.dll
2、Api hook
3、Winpcap
4、rawsocket
5、NDIS驱动winpcap和rawsocket似乎不能修改
ndis太难了
请高手指点一下该用哪种方法,最好给出例子

解决方案 »

  1.   

    替换wsock32.dll最简单。vckbase(或者可能是vchelp)上有个完整的例子。
      

  2.   

    替换wsock32.dll
    会不会影响其他程序?
      

  3.   

    我试过替换wsock32.dll
    方法简便,就是调试麻烦,是不是每次都要重起机器
      

  4.   

    SPI相对来说比较简单,而且是微软公开支持的,规范稳定!
    建议使用SPI
    在《WINDOWS网络编程技术》里有介绍
    下面是我写的一SPI文章,希望对你能有所帮助http://www.csdn.net/develop/Read_Article.asp?Id=15919
      

  5.   

    to snsins(███████████) 
    厉害,看了后如醍醐灌顶。不知待续何时出来
      

  6.   

    为什么不去买本书呢?我在书店看到很多这种书,连源码都有,我就找过两本:一个介绍写SPI(源码),一本介绍NDIS(源码),现在这好象不是什么技术难题啊
      

  7.   

    you can search Xfilter1.0 code for SPI knowledge
      

  8.   

    API HOOK use detours library.
      

  9.   

    SPI 拦不到一些底层的网络调用. 还是写驱动最实在。
      

  10.   

    买《Windows防火墙与网络封包截获技术》这本书吧,电子工业出版社。朱雁辉 著。菜鸟也能成高手!!!!!!!!!!!!
      

  11.   

    is99zsqSA(肥龟):
    写NDIS驱动当然是最好的选择,TDI驱动和SPI差不多,都拦截不到ICMP等不经过传输层的协议数据不过NDIS驱动可不是一天两天能掌握的
    太难太难
    涉及到的问题太难
      

  12.   

    NDIS HOOK是个不错的选择
    比NDIS难度又低一些
      

  13.   

    现在我觉得用api hook似乎最合适解决自己的问题
      

  14.   

    可以用HOOK技术。将WSOCK注入进程,截获系统API.我以前做过的。
      

  15.   

    把wsock32.dll放在应用程序的目录下,不影响其他程序。
      

  16.   

    我查了SPI函数,没找到修改封包的函数
      

  17.   

    API Hook麻烦点。替换WSOCK32。DLL容易多了。写好后只要放到应用的目录下就可以了。简单!
    前一种很灵活。国内用得最多的就是这两种了。其它的就没必要了吧。CS的作避器也是用HOOK的。至少我见过的都是用HOOK