是这样的,我们这里有个以前别人写好的内部通信
服务端运行服务器上客户端在下面,客户端登陆验证的窗口使用一个端口800,当登陆成功后端口是900了!我想在中间加个中转,让客户端登陆到我的写的程序上,然后我想过滤一些东西!
现在客户端登陆到我的中转,中转中间设置过滤信息,然后由我的中转把客户端数据传到服务器上,服务器再把回应传到我的中转上,在由我的中转发送到客户端上!我现在就是不知道用什么方法在上面加中转,拦截?还是...?由于经验不足,想请教大家用什么方法?如果有好的方法,希望能详细的介绍清楚!谢谢!

解决方案 »

  1.   

    c、s不是在一台机上?
    那就把c的ip指到你的程序(tcp转发程序)的电脑的ip
      

  2.   


    程序不是我写的!
    C指定到我的程序上,但是验证后的端口和IP 又怎么转呀?他这个写的比较高级!服务器上一个验证800端口,一个是登陆900端口! 而且还可以分机器放!比如验证放一个服务器,登陆可以放另一个服务器!客户端输入账号密码后,首先连接的是验证,一旦验证通过就转到了登陆的服务器上!也可以放一台机器上!我现在要写个中间件主要过滤一些信息作用,他的客户端就一个IP一个登陆验证的端口800!我现在烦的就是这个,客户端登陆到我的中间件,怎么才能做他们的传递员,没遇到过这样的,就不知道从哪里下手!
      

  3.   

    UP UP UP UP 。希望哪位经验多点指导指导
      

  4.   

    这个要画图了:验证服务器s1(ip1:800)
    登录服务器s2(ip2:900)
    客户端c中间人z(ip3:800,900)正常的过程:
    c-->ip1:800
    ip1:800-->c
    什么样的信息导致
    c-->ip2:900
    ...中间人攻击:
    c-->z ip3:800
    z-->s1
    s1-->z
    z-->c
    什么样的信息导致
    c-->z ip3:900
    z-->s2
    s2-->z
    z-->c
    ...
      

  5.   

    如果 C的代码你可以改
    把登陆端口由 800改成880
    再做个端口转发工具,开启880端口,将收到的数据转发向800端口。
    中间的转发过程你就可以去做你要做的过滤工作。如果C的代码不能改。在没加密的情况下,你可以去改他的二进制代码,把800改成别的端口。如果是加密的。那你就要用HOOK去拦截,直接拦截服务端800收包的CALL,跳进你的HOOK回调处理再进入正常的处理。
    或是HOOK客户端,将800的封包改向其他端口,由转发器过滤处理。
      

  6.   


    我也是你这样的想法,主要是经验不是很足,就是不知道怎么写,不知道哪里有简单的例子,不知道从程序哪里找到 那个800 然后去跳到我的HOOK里处理
      

  7.   

    谁会的指导下,运行API函数,最好有这方面的书籍