# Bit-Twist
Bit-Twist, libpcap tabanlı bir paket oluşturucu, paket yakalama dosyası değiştirici ve paket tekrarlayıcıdır. Paket yakalama motoru libpcap üzerine inşa edilmiş bir paket yakalama aracı olan tcpdump'ı tamamlar. Bit-Twist, bir veya daha fazla pcap dosyasından paketleri yeniden oluşturmanıza olanak tanır. Ayrıca, paketleri ağ üzerinde yeniden oluşturmadan önce Ethernet, ARP, IP, ICMP, TCP ve UDP başlıklarındaki alanlar gibi paket bilgilerinin önceden manipüle edilmesini sağlayan kapsamlı bir pcap dosya düzenleyicisi ile birlikte gelir.
Bit-Twist genellikle güvenlik duvarı kurallarını, IDS (Intrusion Detection System) ve IPS (Intrusion Prevention System) cihazlarını test etmek için ağ trafiğini simüle etmek amacıyla kullanılır. Bit-Twist FreeBSD, NetBSD, OpenBSD, macOS, Linux ve Microsoft Windows üzerinde çalışır.


## Özellikler.
Bit-Twist'i diğer benzer araçlardan farklılaştıran özelliklerden birkaçı şunlardır:
  - Son derece taşınabilirdir: Bit-Twist Linux, BSD, macOS ve Windows üzerinde çalışır.
  - Yerleşik token bucket algoritmasını kullanarak ayarlanan aralık, saniye başına paket veya 1 Mbps ila 10 Gbps arasında hat hızı ile süresiz olarak birden fazla izleme dosyası gönderilebilir.
  - Ethernet, ARP, IPv4, IPv6, ICMPv4, ICMPv6, TCP ve UDP başlıklarındaki çoğu alanı düzenlemek için kapsamlı izleme dosyası düzenleyicisidir. Mevcut bir izleme dosyasına ihtiyaç duymadan bu başlıklara sahip paketler oluşturmak için şablonlar da dahildir.
  - Otomatik başlık sağlama toplamı (CRC) düzeltmesi (devre dışı bırakma seçeneği ile).
  - Anahtarların ve yönlendiricilerin sınıflandırma ve kuyruklama özelliklerini test etmek için özel QoS bitlerine sahip paketler gönderilebilir.
  - Port numaraları, TCP sıra numaraları vb. için eşit olarak dağıtılmış rastgele sayılar içeren paketler gönderilebilir.
  - Yeni protokolleri test etmek için kullanışlı olan belirli bir başlıktan sonra mevcut paketlere özel yük (örneğin Wireshark'tan hex akışının kopyası) eklenebilir.
  - Bayt cinsinden kesilmiş veya genişletilmiş uzunluğa sahip paketler gönderilebilir, artan verim testini kolaylaştırır.
  - Yüksek betik dosyası yazılabilme kabiliyetine sahiptir: Doğru manipülasyonla, Bit-Twist'i ağ testi gereksinimlerinizi karşılamak için çok yönlü bir paket oluşturucu ve paket düzenleyici aracına dönüştürebilirsiniz.


## İçerik ve örnek kullanım.
Paket temel olarak iki farklı çalıştırılabilir dosya içerir:
  - bittwist - pcap tabanlı Ethernet paket oluşturucu
  - bittwiste - pcap yakalama dosyası editörü
1. İstenen kaynak ve hedef MAC adreslerine sahip bir ICMP echo istek paketi içeren bir pcap dosyası oluşturmak:
$ bittwiste -I icmp -O 1.pcap -T eth -s 00:00:00:aa:aa:aa -d 00:00:00:bb:bb:bb
input file: icmp (ICMPv4 header template)
output file: 1.pcap
1 packets (82 bytes) written
2. IP başlığını istenen kaynak ve hedef IP adreslerini içerecek şekilde güncellemek:
$ bittwiste -I 1.pcap -O 2.pcap -T ip -s 192.168.1.10 -d 192.168.1.20
input file: 1.pcap
output file: 2.pcap
1 packets (82 bytes) written
3. Güvenlik testi için mevcut paketi bir kez daha ağa göndermek. Mevcut ağ arayüzlerini kontrol etmek için bittwist -d kullanılabilir:
$ sudo bittwist -i 1 3.pcap
sending packets through en1
trace file: 3.pcap
sent = 1 packets, 12112 bits, 1514 bytes
throughput = 34482 pps, 417.6552 Mbps, 0.4177 Gbps
elapsed time = 0.000029 seconds
4. Mevcut paketi 1 Gbps hızında 1 milyon paket olarak tekrar ağa/hedefe göndermek:
$ sudo bittwist -i 1 -l 1000000 -r 1000 3.pcap
sending packets through en1
trace file: 3.pcap
sent = 1000000 packets, 12112000000 bits, 1514000000 bytes
throughput = 78945 pps, 956.1897 Mbps, 0.9562 Gbps
elapsed time = 12.666943 seconds