USB Yakalamalarında RGB Verilerini İzole Etme
Bu eğitim, SignalRGB’ye cihaz eklemek için USB Verilerini nasıl çözeceğinizi gösterecektir.
Verileri Sıralama
Section titled “Verileri Sıralama”USB Veri Yakalamayı yorumlamaya çalışmadan önce, belirli paketleri bulmak için sıralamak isteyeceğiz.
Wireshark’ta:
- USB Veri Yakalamayı açın
- Paket türüne göre sıralamak için ‘Info’ başlığına tıklayın
- URB_INTERRUPT OUT veya SET_REPORT Request türünü bulana kadar aşağı kaydırın
Yukarıdaki komutlardan hiçbirini bulamazsanız, ya RAWUSB cihazıyla çalışıyor olabilirsiniz ya da yakalamayı doğru yapmamış olabilirsiniz. RAWUSB cihazınız varsa URB_BULK_OUT veya URB_CONTROL OUT komutlarını göreceksiniz. RAWUSB cihazınız varsa geliştirme yardımı için bu discord sunucusuna katılın.
RGB Paketlerini Bulma
Section titled “RGB Paketlerini Bulma”İlk önce arayacağımız paketler, USB paket yakalamalarımızı yaparken ayarladığımız RGB değerlerini içerenlerdir.
Not: Şimdilik cihaz başlatma paketlerini kasıtlı olarak görmezden geleceğiz. Bunlar daha sonra gerekli olabilir.
Her pakette gönderilen veriler, tüm USB protokol başlığı bilgisinden sonra gelir. Bunu görmek için Veri Parçası bölümünü bulmamız gerekecek.
- Bir paket seçin
- HID Verisi alanını seçin veya Kurulum Verisi bölümünü genişletin ve Veri Parçası alanını seçin
- Alana tıklamak Wireshark’ın alt kısmında veri bölümünü mavi renkte vurgulamalıdır
- Seçili alan ayrıca gönderilen verileri boşluksuz olarak gösterir. Bu görünümde her 2 karakter tek bir bayttır.

Not: Baktığımız değerler HEX (16 tabanlı) biçiminde olacak; bu, ondalıkta 0’dan 255’e kadar olan değerleri 0x00 ile 0xFF değerleri olarak temsil eden bir veri biçimidir.
Paket Yapısı
Section titled “Paket Yapısı”USB Veri Yakalama kılavuzumuzda kırmızı, yeşil ve maviyi maksimum değerlerine ayarladığımızdan, paket yakalamada 0xFF değerlerini arayacağız. Yakalamada farklı renkler kullandıysanız, kullanılan belirli HEX rengini bilmeniz veya bilinen renklerle yeniden yakalama yapmanız gerekir.
Geleneksel olarak bir cihazın aydınlatma paketleri, paketin hangi komuta ait olduğunu ve bir cihazın hangi aydınlatma bölgesini adreslendiğini belirten bir başlık içerir; bunu RGB verileri ve nadiren CRC sağlama toplamı gibi alt bilgi verileri izler.
RGB verileri genellikle yakalamada ayarladığımız renklere bakarak kontrol edebileceğimiz birkaç biçimi izler:
- R, G, B, R, G, B, R, G, B (Kırmızı -> Yeşil -> Mavi -> Tekrar)
- RRR, GGG, BBB (Birkaç Kırmızı -> Birkaç Yeşil -> Birkaç Mavi -> Tekrar)
- Br, R, G, B (Parlaklık -> Kırmızı -> Yeşil -> Mavi -> Tekrar)
Not: Bazı cihazlar farklı bir renk sırası kullanır. Çoğu RGB kullanırken cihazınızın GBR, BGR veya başka bir kombinasyon kullandığını görebilirsiniz.
Bizim durumumuzda arayacağımız değerler şunlar olacak:
- 0xff, 0x00, 0x00 | 0x00, 0xff, 0x00 | 0x00, 0x00, 0xff (cihaz R,G,B paket sırası kullanıyorsa).
- 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 (cihaz RRR,GGG,BBB paket sırası kullanıyorsa).
- 0xff, 0xff, 0x00, 0x00 | 0xff, 0x00, 0xff, 0x00 | 0xff, 0x00, 0x00, 0xff (cihaz Br,R,G,B paket sırası kullanıyorsa)
Not: Yukarıdaki örnekler yalnızca cihazlar için bazı yaygın paket yapılarıdır ve her zaman geçerli olmayabilir. Karşılaştırmanız ve benzerlikleri aramanız gerekecek.
Paketleri Kontrol Etme
Section titled “Paketleri Kontrol Etme”Paketleri aşağı kaydırırken, 271 numaralı paketin R,G,B paket yapısına benzer baytlar içerdiğini görüyoruz.
Not: Bazı cihazlar tüm cihazdaki renkleri ayarlamak için birden fazla paket kullanabilir. Sonraki paketlere bakıp ilk paketin nerede tekrar ettiğini bulduğunuzdan emin olun.

Bu paketi Wireshark’taki MARK/UNMARK Paket işlevini kullanarak işaretleyeceğiz; bu işlem CTRL + M tuşlarına aynı anda basarak veya pakete sağ tıklayıp MARK/UNMARK Paket seçeneğine tıklayarak yapılabilir.
Bu paketin gerçekten renk veri paketlerimizden biri olduğunu doğrulamak için R,G,B yapımıza uyan daha fazla paket aramak üzere aşağı kaydırmaya devam edeceğiz. Ayrıca bu paketlerin orijinal yazılımda renkleri ayarladığımız sırayı takip edip etmediğine de bakacağız. Bu, paketlerin başlıklarına bakıp değişip değişmediğini görmek için iyi bir zamandır. Bir düzende değişiyorlarsa büyük olasılıkla cihazdaki tüm LED’leri ayarlamak için birden fazla paket gerekecektir.
271, 273 ve 275 numaralı paketlere yan yana bakıldığında, RGB verilerinin 271 numaralı pakette yalnızca Kırmızı (0xFF, 0x00, 0x00), 273 numaralı pakette yalnızca Yeşil (0x00, 0xFF, 0x00) ve 275 numaralı pakette yalnızca Mavi (0x00, 0x00, 0xFF) olduğu görülüyor. RGB bölümünün üzerindeki başlık verilerine bakıldığında bu verinin üç paket arasında değişmediği görülüyor. Bu büyük olasılıkla bu paketlerde aynı renk bölgelerini değiştirdiğimiz anlamına gelir.
- Ayrıca dikkat edilecek bir husus: renk paketlerini bir cihazın kaç bölge içerdiğini belirlemek için kullanabiliriz. Bilinen değerlerin RGB veri paketlerinde kaç kez geçtiğini kontrol ederek bunu bulabiliriz. Aşağıdaki örneğe bakıldığında, kesinlikle adresleyebileceğimiz 4 bölgesi olan bir cihaz olduğu görülüyor.


Renk verileri içeren tüm paketleri bulup işaretleyene kadar paketleri aşağı doğru incelemeye devam edeceğiz. Bundan sonra eklenti dosyamızı oluşturmaya geçeceğiz.