1、实现这个功能的方法很多。可以使用winpcap,直接从网卡截包然后篡改,也可以hook住send函数,或者其它相关的网络api。至于iec这个软件使用的技术我还不太清楚,不过从他只可以截ie的数据来看,应该是bho或者异步可插入协议asynchronouspluggable protocols,具体就不研究了,说实话,vb p-code模式下编译的程序就是个虚拟机,在汇编层面,分析vb虚拟机里执行的p-code代码,实在是太麻烦。
2、使用winpcap实现这个功能,有点牛刀杀鸡了,而使用hook技术,又不是太安全,基本上带主动防御,智能行为分析的杀软,hook用到的几个函数都是被严密监控的。所以在这里,以上两种技术我们都不采用。
3、我们采用的是第三种技术--代理拦截技术,看到代理两个字,稍稍有点计算机知识的人,第一时间反应的词语应该都是代理服务器,是的,代理拦截技术,正是基于代理服务器技术实现的。下面,我们先来看看代理服务器的基本知识。一般情况下的http请求与响应,如下图所示:
4、加入代理服务器后,如下图所示:有没有看出来什么门道,是的,当你使用代理服务器后,所有的http请求,都是先发到代理服务器,然后由代理服务器重新包装后,再发给目标(实际)服务器,响应也是如此,代理服务器先接收来自目标(实际)服务器的响应,然后包装后发给客户机。到这里,实现方式,是不是已经很明显了。