Recep hocada nasıl oldu aynı donanım yazılım olmasına rağmen.
Aynı donanım değil. Bendeki donanım ile Ferdi’deki bile farklı.
@Recep Baltaş hocam yapay zekaya Firmware'yi verip V500R021C00SPC128B125 kısmını arayüzden nasıl elde edebiliriz arayüzde nerede bulabiliriz veya tarayıcı konsoluna kod yazsak elde edebilir miyiz diye sorar mısınız?
Sordum:
Güzel soru! Superonline ve Huawei bu tarz spesifik "Build" (Derleme) numaralarını (B125 gibi) son kullanıcının kafasını karıştırmamak ve cihaza müdahale edilmesini zorlaştırmak için normal arayüzde genellikle gizler veya kırpar. Arayüzdeki
Sistem Bilgileri (Device Information) ekranında büyük ihtimalle sadece kırpılmış hali olan V5R021C00S128 yazar.
Ama arayüzün arka planında (JavaScript değişkenlerinde veya HTML kaynak kodunda) o tam sürüm (V500R021C00SPC128B125) bir yerlerde donanıma gömülü olarak durmak zorundadır, çünkü güncelleme mekanizması bu tam string'e ihtiyaç duyar.
Bunu tarayıcıdan söküp almak için tam bir hacker işi olan 2 farklı nokta atışı yöntemimiz var:
Yöntem 1: Tarayıcı Konsolu ile Değişken Avı (En Kolayı)
Madem cihaz bu tam sürüm bilgisini arka planda tutuyor, o zaman tarayıcının hafızasındaki (Window objesi) tüm değişkenleri tarayıp içinde "V500R" geçenleri bulabiliriz.
1. Tarayıcıdan 192.168.1.1 adresine gir ve standart kullanıcı adınla (admin / superonline)
oturum aç.
2. Klavyeden
F12 tuşuna basarak Geliştirici Araçları'nı aç ve
Console (Konsol) sekmesine gel.
3. Aşağıdaki JavaScript kodunu kopyala, konsola yapıştır ve Enter'a bas:
JavaScript:
Object.keys(window).forEach(key => {
try {
if (typeof window[key] === 'string' && window[key].includes('V500R')) {
console.log(key + " : " + window[key]);
}
} catch(e) {}
});
Ne İşe Yarayacak?
Bu kod, o anki sayfanın arkasında yüklenmiş olan bütün JavaScript değişkenlerini tarayacak ve içinde V500R (Huawei sürüm başlangıcı) geçenleri ekrana dökecektir. Eğer ekranda softwareVersion, sysVer, originalVersion veya fwVer gibi bir değişkenin karşısında V500R021C00SPC128B125 yazıyorsa, bingo!
Yöntem 2: Kaynak Kodda Gizli "Device Info" Taraması
Eğer üstteki kod bir şey döndürmezse, sürüm bilgisi global bir değişkende değil, doğrudan HTML'in veya bir XML/CGI yanıtının içine gömülü demektir.
1. Arayüzde
Sistem Bilgileri veya
Cihaz Bilgileri (Yazılım Sürümünün yazdığı sayfa) sekmesine gir.
2. Sayfada boş bir yere sağ tıklayıp
Sayfa Kaynağını Görüntüle (View Page Source) de. (Veya Ctrl+U yap).
3. Açılan kaynak kod sayfasında Ctrl+F ile arama bölümünü aç ve sadece
SPC kelimesini arat.
4. Kodların arasında büyük ihtimalle gizlenmiş veya ekrana basılmamış bir var hw_version = ... veya var sw_version = "V500R021C00SPC128B125"; satırını göreceksin.
Yöntem 3: Ağ (Network) Trafiğini Dinlemek
Bazen sayfa yüklendiğinde sürüm bilgisi ekrana deviceinfo.cgi veya .asp gibi bir arka plan isteğiyle gelir.
1.
F12 basıp
Network (Ağ) sekmesine geç.
2. Arayüzde sayfayı yenile (F5).
3. Network sekmesine düşen satırlardan
XHR veya
Doc olanlara tıkla ve sağ taraftaki
Response (Yanıt) kısmında SPC128 veya V500R arat.
Eğer bu yöntemlerle o tam imza sürümünü (V500R021C00SPC128B125) ekrandan çekebiliyorsan, harika bir keşif olur. Bu sayede bu işlemleri kendi evinde denemek isteyen başka bir kullanıcı, senin repodaki adımları uygularken NAND okuyucuya ihtiyaç duymadan doğrudan F12 konsolundan kendi cihazının tam SIGNINFO imzasını bulup, Payload dosyasını ona göre derleyebilir!
Denedikten sonra konsoldan ne çıktı verdiğini merak ediyorum!