1. sayfa
unsigned char* vnPSon; vnPSon = new unsigned char[54]; memset((void*)vnPSon, '\0', 54); //ETHERNET II memcpy((void*)vnPSon, (void*)"\xFF\xFF\xFF\xFF\xFF\xFF", 6); //Broadcast memcpy((void*)(vnPSon+6), (void*)srcMac, 6); //Source MAC memcpy((void*)(vnPSon+12), (void*)"\x08", 2); //IP Header //IP HEADER memcpy((void*)(vnPSon+14), (void*)"\x45", 1); //IPV4 memcpy((void*)(vnPSon+15), (void*)"\x00", 1); //Differnatied Services unsigned short kpr = htons(46); memcpy((void*)(vnPSon+16), (void*)&kpr , 2); //Header boyutu memcpy((void*)(vnPSon+18), (void*)"\x0000", 2); //Id memcpy((void*)(vnPSon+20), (void*)"\x40", 1); //IP Header flag memcpy((void*)(vnPSon+21), (void*)"\x00", 1); //Offset memcpy((void*)(vnPSon+22), (void*)"\x5F", 1); //TTL 255 saniye memcpy((void*)(vnPSon+23), (void*)"\x06", 1); //Protokol memcpy((void*)(vnPSon+24), (void*)"\x00\x00", 2); //Checksum memcpy((void*)(vnPSon+26), (void*)&srcIp, 4); //Yerel ip memcpy((void*)(vnPSon+30), (void*)&dstIp, 4); //Hedef ip //TCP HEADER memcpy((void*)(vnPSon+34), (void*)"\x0020", 2); //Kaynak port unsigned short test = htons(dstPort); memcpy((void*)(vnPSon+36), (void*)&test, 2); //Hedef port memcpy((void*)(vnPSon+38), (void*)"\x00\x00\x00\x00", 4); //Sequence number memcpy((void*)(vnPSon+42), (void*)"\x00\x00\x00\x00", 4); //Ack number memcpy((void*)(vnPSon+46), (void*)"\x50", 1); //TCP Offset memcpy((void*)(vnPSon+47), (void*)"\x02", 1); //Flag syn memcpy((void*)(vnPSon+48), (void*)"\xFF", 2); //Window memcpy((void*)(vnPSon+50), (void*)"\x0000", 2); //Checksum memcpy((void*)(vnPSon+52), (void*)"\x0000", 2); //Urgent point
unsigned short *tempTcp = (unsigned short*)malloc(32); memcpy((void*)tempTcp, (void*)(vnPSon+26), 8);//Kaynak ve hedef ip memcpy((void*)(tempTcp+8), (void*)"\x00", 1);//Reserved memcpy((void*)(tempTcp+9), (void*)"\x06", 1);//Protokol memcpy((void*)(tempTcp+10), (void*)"\x0014", 2);//TCP Length memcpy((void*)(tempTcp+12), (void*)(vnPSon+34), 20); register unsigned long csum=0; unsigned short *buffer=(unsigned short*)tempTcp; unsigned short size=32; while(size>1) { csum += *buffer++; size -= 2; } if(size>1) csum += *(unsigned char*)buffer; csum = (csum>>16) + (csum & 0xFFFF); csum += (csum>>16); return htons(~csum);
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz. Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Bu gönderdiğim paket
Pakete wireshark ile baktığımda tcp checksum hariç hiçbir sorunu yok
Bu tcp checksum için kullandığım en son yöntem
Başka yöntemler için bolca araştırdım bulduğum her yöntemi denedim fakat hepsi yanlış çıkıyor şimdiden teşekkürler
Ek olarak paket
< Resime gitmek için tıklayın >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi Polkakorowakurwa -- 6 Temmuz 2015; 17:54:50 >