Merhaba,
Bildiğiniz gibi sizlerle 3 seri yazı olarak paylaşımlı ya da Kick scooter işleten firmaların ki Martı, Binbin, Kedi, Dost vb bu teknolojiyi nasıl uyguladıklarını, escooter ın BLE, MOTOR ve BATARYA kontroller devrelerine ulaşıp verileri nasıl alabildiğimizi ya da kilitleme, arka lambayı yakma vb fonksiyonlarına nasıl müdahale edebildiğimizi anlatmış bunların IOT devrelerini nasıl yapabileceğimizi ve sonunda da akıllı kilit cihazının nasıl çalıştığını ve escooter a nasıl entegre edildiklerinden detaylı bahsetmiştim..
İlk yazımda Xiaomi m365 scooter ı aldığımda yeni version beyin yazılımı yüklendiğinden ve bu fonksiyonları crack etmenin ileride yapacağım bir çalışma ile olması gerektiğini ve bu yüzden amacımı gerçekleştirmek için kriptosuz bir şekilde verilere ulaşabileceğim beyin yazılımlarını scooter a çakmıştım.. Yani downgrade yaptım.. Hem BLE hem de Firmware versionlarını değiştirmiştim.. BLE yi 073 ve Firmware i de 1.3.8 yapmıştım.. ARGE bitip yazılarımı yazdıktan sonra da bu defa upgrade yapıp normal versionlarına getirdim escooter ımı..
Yeni Xiaomi m365, Pro, Pro 2 ve Segway scooter ların tümünde artık kriptolu beyin yazılımları var…
Peki biz bu veriye bu kripto yu kırıp algoritmalarına nasıl ulaşıp işlem yapacağız?
Sevgili kedimiz ve yardımcım IRMA ile başladık çalışmaya !…
Beni bu konuda birkaç kişi arayıp aldıkları scooter ları benim yazılarımda yaptığım gibi yapamadıklarını çünkü yanlış yazılım ile cihazın brick dediğimiz işe yaramaz hale gelebileceğini veya downgrade in veri açısından tehlikeli olduğunu belirttiğimde maalesef hayal kırıklığı yaşadıklarını gördüm..
Ancak artık vaktim vardı ve bir kaç gün içinde tüm kripto ve algoritmaları kırıp buna ek olarak verilerinde çok çok özel sırada gönderilmeleri gerektiğini gördüm..
Yöntem neydi? Ki ben balık tutmayı öğretirim bilirsiniz .. Balığı çoğunlukla vermem..
- Android Play Store da bu verileri okuyabilen yazılımları ki 2 tane var tüm yeni eski versionları ile ters mühendislik yaptım.. Çoğu zaman kodu karıştırmışlardı..
- Bunları tek tek çalıştırıp cihazı da notebook a bağlayıp android studyo yu çalıştırıp LogCat lere bakıp arşivledim..
Çok zorlandığımı belirteyim..
Her şeyi gördükten sonra bir kripto class sınıfını ortaya çıkardım.. Bu yetmedi bunun kullanımını tam sırada yapmak gerekiyordu.. Buna ek olarak bir de bir android mobil yazılım yapmam ve onunla denemem gerekiyordu… 1. Yazımda belirttiğim characteristic ler vs vs hepsini kullanmam gerekiyordu..
Elimde bir kripto class ı ve içinde bir çok fonksiyonu var..
Class ı hangi scooter a bağlanırsanız onun benzersiz adı ile initialize edip bir instance elde ediyorsunuz..
Sonra sabit ve çok önemli bir veriyi bu class ın bir metoduna encrypt edip 1 kez gönderiyorsunuz ve veriyi 20 lik chunk lar halinde göndermeniz gerekiyor.. Buna karşılık notification handle ından event i yakalayıp 3 degerin dondugunu görüyoruz.. Bunları birleştirip kripto class ımızdaki decrypt e gönderiyoruz ve karşımızda cihazı seri numarası var artık.. Bu cok onemli.. Bir de random key oluşuyor ki her yazılım başladığında bu değer farklı oluyor ona göre… Elimizde hem seri no var hem de random key..
3 kez yine sabit bir değer var ona random key i ekleyip encryp edip cihaza gönderiyoruz..
Arkasından 4 kez bu defa farklı bir sabit değeri seri numarasını ekleyerek encrypt edip cihaza gönderiyoruz…
Valaaaaaa… Geriye birkaç tane özel değer döndürüyor cihaz ama bunlar bize şu an lazım değil.. İçindeki değerin bir verisi ileride önemli olabilir cihaza göre farklılık gösterebilir.. Biz de ona göre işlem yaparız diye konuyu kapatalım..
Artık her işi yapabiliriz…
Örneğin 5aa5013e20037D02 değerini kripto class ı ile encryp ederek byte array e çevirip cihaza gönderirsek arka lambayı yakar… 5aa5013e20037D00 a aynı işlemi yaparsak lambayı söndürür..
Yine başka bir örnek 5aa5013e20011A02 değerini encrypt edip gönderirsek ve dönen değeri event ile yakalarsak 5AA502B03A1CE4DAA9C3DFDA09000A gibi bir değer olduğunu görüyoruz ve bunu da yine programımızda otomatik decrypt edersek elimizdeki değer 5AA502233E011A5601 oluyor.. 5601 bizim için önemli tersten okursak 2 şerli olarak 1.5.6 versionu olduğunu görürüz..
Böylece bu çalışmayla beyin yazılımı kriptolu olan ve kriptolu veri gönderip alan ;
Xiaomi m365, Pro, Pro 2 ve Segway scooter ların tümünün verilerine ulaşabildiğimizi görüyoruz…
Kalın sağlıcakla..
Selcuk Celik
Merhaba M365 pro ya yanlislikla m365 hiz arttirma yazilimi attik, ekran gitti hicbirsey yapilmiyor, sacede hayalet ekran var bluetooht baglaniyor, mihome ile oda m365 gozukuyor??
Ne yapilabilir? Resetleme nasil olucak bms karta
Cihaz Brick olmuş görünüyor.. Mi Home da default yazılımı yüklemesi için en azından belli versionu ona çakmanız ve tekrar mi home a girmeniz gerekir. Bunları tüm versionlar için yapmanız lazım.. Bahsettiğim orijinal yazılımların versionları… Bu yazılımları BLE için bulup çakın sonra Mi home a girip bakın soruyor mu yükseltim için.. Sorun hiç çözülmezse donanımsal olarak kırmanız gerekir..
Tesekkurler
Rica ederim..
Hızını nasıl artıtürıcam. Mi pro2 nin
diğer balıkları sen tutacaksın…