Attack Shark klavye protokolü tersine mühendislikle çözüldü
Bir mühendis, Attack Shark klavyenin kapalı protokolünü WebHID trafiğini izleyerek çözdü ve 523 modeli destekleyen açık kaynak yapılandırıcı üretti.
Attack Shark X86 klavyesini QMK'ya taşımayı planlayan bir geliştirici, üreticinin "QMK uyumlu" olarak pazarladığı yapılandırıcının aslında sahibi olduğu adı kullanan bağımsız bir Windows aracı olduğunu ve klavyenin kapalı kaynaklı firmware çalıştırdığını keşfetti. Linux kullanıcısı olarak QMK portu imkansız hale gelince hedef değişti: cihazı Linux üzerinden yapılandırmak.
Electron tabanlı sürücü yamanarak WebHID trafiği izlendi ve 64 baytlık HID feature raporlarına dayanan protokol ortaya çıkarıldı. Aynı sürücünün onlarca markaya (Epomaker, Akko, Hator, ikbc, NOPPOO, MEETION) hizmet veren tek bir ROYUAN tabanlı yazılım olduğu, ancak iki farklı komut ailesinin aynı opcode numaralarını farklı kayıtlar için kullandığı bulundu — bu da yanlış aile ile yazma yapıldığında klavyeyi kilitleyebilecek sessiz veri bozulmasına yol açıyor. Hall-effect modeller için firmware imajı radare2 ile ARM Cortex-M üzerinde çözümlenerek komut tablosu doğrulandı.
Projenin en önemli çıkarımı: klavyenin bir sorguya verdiği yanıt her zaman doğru değil. Donanımı olmayan özellikler için bile inandırıcı ama uydurma veriler dönüyor, bu yüzden her komutun anlamı yazıp geri okuyarak doğrulanmak zorunda kaldı. Çalışma, GitHub'da açık bir protokol dokümanına ve 523 klavye modelini destekleyen, Linux/Windows/macOS ile tarayıcı üzerinden WebHID ile çalışan "sharkfin" adlı açık kaynak yapılandırıcıya dönüştü.