如何用socks5代理一个特定的程序,截获该程序所有报文

怎么用socks5代理一个特定的程序,截获该程序所有报文
现在想要做一个socks5代理客户端,功能要求:

能截获特定程序的所有发出报文,修改目的ip地址为socks5服务器地址,
然后让socks5客户端去连接应用程序实际上要连接的服务器

具体一点如下所示:
正常情况,也就是没有socks5代理的情况下,报文流程是这样的
App Client——>App Server

有socks5代理的情况下
App Client——>Socks5 Client——>Socks5 Server——>App Server
第一步是Socks5 Client截获所有App Client发送的报文,发送到Socks5 Server,
Socks5 Server与App Server通信

现在问题是Socks5 Client怎么能拿到App Client发出的所有报文
------解决思路----------------------
引用:
Quote: 引用:

为什么要sock5的client app这么个东西?什么应用场景?

按说,让App Client支持sock5协议就好了啊,配置好sock5 server的ip和端口,按sock5协议就能完成下面的工作:
App Client——>Socks5 Server——>App Server

像ie, firefox,chrome这些浏览器都是这样的,都支持配置sock5服务器的地址,走sock5协议访问网络。

如果App Client不支持sock5,并且也不能修改App Client程序,要完成你这需求的话,可以把本机开个DNS服务,把所有的请求都解析成本地,然后 sock5 client程序监听原App Client要连接的端口,剩下的就是做转发了


应用场景是这样的,App Client不支持socks5,但是又不希望用户去配置DNS,比较麻烦而且会影响整个系统的收发包,所以希望有这么一个客户端,能够截取特定程序的报文,通过socks5服务器进行报文收发



挂个api hook到App Client,截获connect操作,全部转到本地的Sock5 client
------解决思路----------------------
我也在写这个东西!  有兴趣加qq865583446  一起讨论!  我已经实现了代理访问网页!