用java重新创建倒置的ternet



我正试图重新创建我在互联网上发现的一种叫做倒置燕鸥的东西。它在我的家庭网络上使用。从本质上讲,这个想法是使用ARP欺骗来改变网络窃贼的网络结果,让他们停止。我似乎就是不能让它工作。截至目前,它读取所有传入/传出arp数据包的往返地址,但当网络浏览无法正确解析数据包时,我似乎无法让它发送任何数据包,或者至少无法让我的计算机发送数据包。问题似乎出现在发送tcp/ip数据包的某个地方:

public void sendTCPForKittens(IPPacket p) {
        if (p.src_ip.getAddress().equals(
                Util.get_inet4(devices[0]).address.getAddress()))
            return;
        String incoming = Util.parseBytes(p.data);
        System.out.println("Packet from: " + p.src_ip.toString() + "nData: "
                + incoming);
        IPPacket falsep2 = p;
        // p.datalink = ethpack;
        if (p.src_ip.getAddress() == Util.encodeStringToByte("192.168.1.1")) {
            falsep2.src_ip = p.src_ip;
            falsep2.dst_ip = p.dst_ip;
            falsep2.data = Util.encodeStringToByte("www.twitter.com");
            outgoing.sendPacket(falsep2);
        }
        // spoofed packet
        /*
         * System.out.println("SPOOFED IP DATA: ");
         * System.out.println("Packet from: " + falsep2.src_ip.toString() +
         * " To: " + falsep2.dst_ip.toString() + "nData: " +
         * Util.parseBytes(falsep2.data));
         */
        p.data = new byte[] { 0 };
        p.header = new byte[] { 0 };
        outgoing.sendPacket(p);
    }

您提到的原始页面根本没有提到ARP欺骗,我不确定您试图用java重写什么。该系统有5个组件:

  1. 检测未经授权的用户(原始解决方案使用DHCP)
  2. 将他们的流量转发到专用服务器(原始解决方案使用iptables)
  3. 解析并重写TCP流(原始解决方案使用iptables+linux内核)
  4. 代理HTTP协议(原始解决方案使用squid)
  5. 将图像倒置(原始解决方案使用perl+imagemagik)

既然你在谈论ARP,看起来你想重写(1)和(2)。我建议不要这样做。你似乎对网络协议非常困惑(你谈论ARP,函数名称中有TCP,你使用了不正确编码的主机名,这些主机名只属于DNS协议,你没有设置数据包类型,等等)

我建议从工作解决方案开始,慢慢重写java:中的内容

  • 给自己买一个Linux/OpenWRT路由器,然后设置防火墙NAT规则,让所有未经授权的网络连接都进入你的主计算机。更好的是,您当前的路由器可能已经支持OpenWRT,那么您将不必购买任何东西。这将立即处理最难的部分——(1)(2)和(3)。您应该立即看到所有未经授权的流量流向您的机器
  • 安装Squid(用于步骤4)。所有未经授权的交通都将通过鱿鱼
  • 在Java中实现倒置旋转图像(步骤5)
  • 当这起作用时,您可以添加JavaHTTP代理,这样您就不必再使用Squid了

如果你想走那条路,我可以更详细地描述步骤。

相关内容

  • 没有找到相关文章

最新更新