Я пытаюсь создать приложение брандмауэра.Я читаю все исходящие пакеты и хочу обойти некоторые из них.Для каждого исходящего TCP-пакета я создаю сокет.Но когда я создаю сокет, Java делает рукопожатие.Мне нужно переслать входящий ответ SYN-ACK на интерфейс устройства.
Я думал, что смогу создать поддельный ответ SYN-ACK, но потом я узнал, что это будет проблемой для соединений SSL.
Я использую PCAP4J для анализа пакетов.
//Parse packet
IpPacket parsedPacket = (IpPacket) IpSelector.newPacket(rawPacket, 0, rawPacket.length);
TcpPacket parsedTcp = (TcpPacket) parsedPacket.getPayload();
if (parsedTcp.getHeader().getSyn() && !parsedTcp.getHeader().getAck()){
Log.d("Handshaking", "-> SYN");
// TODO: Try to make a connection, if available Send a SYN-ACK packet to device
//return; Stop
} else if (parsedTcp.getHeader().getAck()
&& !parsedTcp.getHeader().getSyn()){
// TODO: Device send ACK. Check payload if suitable, Build a real socket and send data
}