Bluetooth LE LED ışık denetleyicisini tersine mühendislik etmek, ya da Noel ışıklarımı nasıl bozduğum
- Bluetooth LE üzerinden iletişim kuran ve uygulaması olan bir cihaz, ev otomasyon sistemine entegre edilmeye değerdir.
- Bütçe dostu LED ışık şeritlerini tersine mühendislik ederek otomatikleştirmeye hatırı sayılır zaman harcadım.
- Son zamanlarda en ucuz £2.38’lik Bluetooth LE kontrollü 5M adreslenemeyen şeridi birkaç saat içinde Home Assistant’a bağlamayı başardım.
Adım 1. Kablo üzerinden baytlar
- Cihazı kendi yazılımınızdan kontrol etmek istiyorsanız, ilk adım uygulamadan cihaza gönderilen Bluetooth baytlarını incelemektir.
- Android bu süreci kolaylaştırır. Geliştirici modunu etkinleştirin, ışık uygulamasını yükleyin, ardından günlük kaydı almak için geliştirici ayarlarında
Bluetooth HCI snoop seçeneğini etkinleştirin.
- Günlüğü Wireshark ile açarak tam baytları görebilir, değerlerdeki kalıpları arayarak her eyleme karşılık gelen bayt dizilerini belirleyebilirsiniz.
Adım 2. Replay saldırısı
- Amaç yalnızca ışıkları açıp kapatmaksa, gözlemlenen tekrarlı bayt dizileri güç kontrolü için yeterli olabilir.
gatttool kullanarak BLE cihazına bağlanıp bayt göndererek test yapabilirsiniz.
Adım 3. Android uygulamasını decompile etmek
- Uygulamanın APK’sini indirip içindeki sırları görmek için jadx ile açın.
- Kaynakta AES referansları buldum; bu da şifreli bir protokol olabileceğine işaret ediyor.
- Şifreli veri her seferinde değişmiyor, düşük güçlü MCU üzerinde hızlı çözme gerekiyor ve her cihaza özgü olmayan sabit bir anahtar kullanılıyor olabilir.
Adım 4. Tüm işlevler
- Uygulamadaki her işlevi tek tek deneyip gönderilen baytları kaydettim.
- Her eylemi kaydetmek, tekrarlamak, kalıpları fark etmek ve yakalanan baytlarla notları ilişkilendirmek bu aşamada yardımcı oluyor.
Adım 5. Otomatik elektronik atık üreticisi
- Renk değişimini incelerken uygulamanın kırmızı, yeşil ve mavi için
0x1F üzeri değerler göndermediğini fark ettim.
- 8 bit değerleri deneyince daha parlak renklerin gayet iyi çalıştığını gördüm.
- Ek efektler olup olmadığını merak edip bunu basit bir döngüyle denedim.
-
- efekte kadar her şey yolundaydı, ancak 11.’de gizli modu buldum ve 12.’de karanlık çöktü.
- Yeniden başlatmayı denedim ama ışıklar bir daha yanmadı; Bluetooth yayını da yapmadığı için artık bağlanmak mümkün değildi.
- Muhtemelen bir buffer overflow yüzünden firmware bozuldu.
- Ancak LED’lerin kendisi standart adreslenebilir LED’ler olduğu için başka bir mikrodenetleyiciye bağlanarak kullanılabilirler.
Işıklarımı nasıl bozabilirsiniz
- Soruna rağmen protokolün büyük bölümünü belgeledim ve Home Assistant özel bileşeni de içeren bir Github projesi oluşturdum.
- Çalışıyor, ancak riski göze alarak ilerlemeniz gerekiyor.
GN⁺’un görüşü
- Bu yazıdaki en önemli nokta, kişinin evde kullandığı akıllı ışıkları otomasyon sistemine entegre etme isteğini yansıtan DIY ruhu ve tersine mühendisliğe duyduğu tutkudur.
- Tersine mühendislik süreci yalnızca teknik bilgi değil, aynı zamanda problem çözme yeteneği ve yaratıcılık da gerektirir; bu da onu junior yazılım mühendisleri için bile oldukça ilgi çekici bir konu haline getirir.
- Başarısızlık deneyiminin paylaşılması, başkalarının aynı hataları tekrarlamamasına yardımcı olur ve bu tür açık bilgi paylaşımı açık kaynak topluluğunun temel değerlerinden biridir.
1 yorum
Hacker News görüşleri
Çözümlenen paket analizi
Güç kaynağı sorunu
Şifreli ışıkları tersine mühendislikle çözme denemesi
BLE ışıkları hakkında görüş
BLE bağlantılı Noel ışıklarını otomatikleştirme denemesi
Mesaj şifrelemesiyle ilgili soru işareti
Şifreleme hakkında yorum
Işık hackleme hakkında esprili yorum
Govee ışıklarını tersine mühendislikle çözme hakkında acemi sorusu