# TCP 3 Wege Handshake



## Sheepy (4. Feb 2009)

Hallo Leute,


ich hab ein Problem mit TCP/IP Packeten usw.

Ich versuche verzweifelt, TCP PAckete via JPcap hinaus ind ie welt zu schicken, nur antwortet, laut WireShark niemand darauf.

Ich hab die gnaz normale Handshakeprozedur versucht, aber nichtmal ein Packet, von wegen, ne hier geht das nicht weil Port zu und so PAcket zurückbekommen.

Es geht mir letztendlich einen 3-Wege-Handshake mit einen Gameserver hinzubekommen, und somit mich als Client zu indentifizieren.


Hat jemand dort eine Idee, warum das nciht funktioniert.

Bei Wireshark, bekomme ich schwarz unterlegte Zeilen.
Mein Anfang sieht erstmal so aus:




```
public class MyClass {

	public MyClass() throws UnknownHostException, Exception{
		NetworkInterface[] devices = JpcapCaptor.getDeviceList();
		send(makeTCPPacket(devices[2]));


	}
	
	
	public static void send(Packet packet) throws Exception
	{
		NetworkInterface[] devices = JpcapCaptor.getDeviceList();
		JpcapSender sender = JpcapSender.openDevice(devices[2]);
		sender.sendPacket(packet);
		sender.close();
	}
	
	
	public static void main(String[] args) throws UnknownHostException, Exception{
		new MyClass();
	}
	
	public TCPPacket makeTCPPacket(NetworkInterface d) throws UnknownHostException{
		TCPPacket newtcpp = new TCPPacket(49184,14534,56,57,false,false,false,false,true,false,false,false,10,10);
		newtcpp.sequence = 100;
		newtcpp.syn = true;
		
		InetAddress inet1 = InetAddress.getByName( "91.62.91.105" );
		InetAddress inet2 = InetAddress.getByName( "www.google.de" );
		
		newtcpp.setIPv4Parameter(0,false,false,false,0,false,false,false,0,1010101,100,IPPacket.IPPROTO_TCP,
				inet1,inet2);
	
		

//		set the data field of the packet
		newtcpp.data=("HALLO").getBytes();
		
		

//		create an Ethernet packet (frame)
		EthernetPacket ether = new EthernetPacket();
//		set frame type as IP
		ether.frametype = EthernetPacket.ETHERTYPE_IP;
//		set source and destination MAC addresses
		ether.dst_mac = new byte[]{(byte)0,(byte)19,(byte)141,(byte)225,(byte)23,(byte)32};
		ether.dst_mac = d.mac_address;
		ether.src_mac = new byte[]{(byte)0,(byte)4,(byte)14,(byte)116,(byte)246,(byte)147};
		ether.src_mac = d.mac_address;
//		set the datalink frame of the packet p as ether
		newtcpp.datalink = ether;
		
		return newtcpp;
	}
	
}
```


----------



## Gast2 (4. Feb 2009)

Moin,



			
				Sheepy hat gesagt.:
			
		

> Ich versuche verzweifelt, TCP PAckete via JPcap hinaus ind ie welt zu schicken, nur antwortet, laut
> WireShark niemand darauf.


gibt es einen ernsthaften Grund dafür nicht Socket zu nehmen? ... Game-Server sind meist auf UDP getrimmt, evt. auch TCP

hand, mogel


----------



## SheepyHollow (4. Feb 2009)

Es soll halt auch so auf nativer Ebene funktionieren.

Einfach weil ich es so verstehen will


----------



## HoaX (4. Feb 2009)

Also laut homepage von jpcap gibts den TCPPacket-Konstruktor garnicht den du da verwendest ... kann man so nicht viel sagen. was mich aber wundert: wieso steckst du nutzdaten mit in en syn-paket?


----------



## SheepyHollow (4. Feb 2009)

Darf das nicht in einem SYN Packet sein, also Daten ich mein gut die bringen nix, aber...


----------



## HoaX (4. Feb 2009)

Ich weiß es nicht. Aber es macht wie du sagst keinen Sinn. Das TCP-Protokoll ist ausreichend dokumentiert um das heraus zu finden ... oder halt per Wireshark "abkucken". Nur weil es keinen Sinn macht, aber sein könnte, heißt es noch lange nicht dass es geht.


----------



## Sheepy (4. Feb 2009)

Die Frage ist, an wen kann ich einen TCP 3 wege Handshake überhaupt starten ?^^


----------



## HoaX (5. Feb 2009)

Sheepy hat gesagt.:
			
		

> Die Frage ist, an wen kann ich einen TCP 3 wege Handshake überhaupt starten ?^^


Ich hoffe du meinst die Frage nicht ernst ...


----------

