本帖最后由 oyljerry 于 2014-10-10 14:41:32 编辑

解决方案 »

  1.   

    你这个问题分几种情况啊:
    1。如果只是本机的话,你大可以只HOOK浏览器的地址栏。
    2。如果是本机,也可以修改 host文件。
    3。如果是本局域网其它机器,那就需要搞中间人了,这个可以参考:https://github.com/byt3bl33d3r/MITMf 
    我了解的也只有这么多了,你说的这个直接修改请求的好像确实行不通,我个人猜测可能的原因如下:
    因为http包其实是基于 ip包的,也就是IP包里的那个目的地址 IP是根据你提供的:Host: www.baidu.com 这个来获取的。
    如果有错勿喷……
      

  2.   

     对于HOOK浏览器的地址栏的方法,IE可行,但360浏览器好像连地址栏的句柄都抓不到...
      

  3.   

     对于HOOK浏览器的地址栏的方法,IE可行,但360浏览器好像连地址栏的句柄都抓不到...这个360浏览器的话,可以看下 传智播客C++学院那个广告了,里面碰巧有这么个东西:以上不是个广告……我不是传智播客的人……只是觉得人家确实实现了……
      

  4.   

     对于HOOK浏览器的地址栏的方法,IE可行,但360浏览器好像连地址栏的句柄都抓不到...附上那个视频的地址:
    http://c.itcast.cn/news/20140724/11161930473.shtml
      

  5.   

    本帖最后由 oyljerry 于 2014-10-10 14:42:30 编辑
      

  6.   

    hook InternetConnectW (Unicode) 或者 InternetConnectA (ANSI).
      

  7.   

    那试下hook NtDeviceIoControlFile函数
      

  8.   

    小弟已经hook NtDeviceIoControlFile,得到了send和recv的buffer,但是不知道如何修改。
      

  9.   

    而且NtDeviceIoControlFile有有关于ip和端口的信息吗?因为即使通过修改请求buffer里面的HOST:,但是不能改变IP,也是无法正常连接到指定网址的。
      

  10.   

    http://wenku.baidu.com/link?url=lzJ6pI074UNgi0wH8FlFG4lWmzLa0i_N_afe2plAx2NNtVO5zNfGGZigozMyKj0VI7s0S19d6ELmKOxichgO8DIrHwP-UViLqc0w6ZRBHna