Mam napędzaną kartę bezprzewodową Intel iwlwifi
i widzę następujący komunikat w dmesg:
iwlwifi 0000:03:00.0: loaded firmware version 17.168.5.3 build 42301
Biorąc pod uwagę, że wiem, który obiekt blob jest załadowany, w jaki sposób mogę znaleźć wersję tego obiektu blob ( .ucode
pliku)?
Jeśli spojrzysz na poniżej, gdzie jest ładowany kod u, nie mówi mi informacji o wersji, tylko że został załadowany obiekt blob. Ale znam te wersje Intela.
$ sudo dmesg | grep ucode
[ 26.132487] iwlwifi 0000:03:00.0: firmware: direct-loading firmware iwlwifi-6000g2a-6.ucode
[40428.475015] (NULL device *): firmware: direct-loading firmware iwlwifi-6000g2a-6.ucode
Odpowiedzi:
iwlwifi
Kierowca ładuje plik mikrokodu dla wifi adapter przy starcie. Jeśli chcesz poznać wersję obiektów blob na swoim komputerze, wypróbuj skrypt Andrew Brampton . Biegać:I porównaj dane wyjściowe z dziennikiem (
dmesg
dane wyjściowe).Zauważ, że skrypt działa z
python2
.źródło
Na marginesie i patrząc na skrypt Andrew Brampton wspomniany w odpowiedzi @ don_crissti , możesz uzyskać takie same wyniki z Radare2, który jest strukturą inżynierii odwrotnej.
pf
wydrukuj sformatowane danex
0xHEX value and flag (fd @ addr) (see 'd' and 'i')
[4]z
null terminated string
o minimalnej długości 4[64]z
null terminated string
o długości min. 64N1N1N1N1
next char specifies size of unsigned value (1, 2, 4 or 8 byte(s))
Możesz uruchomić to z takiego skryptu,
Oto kilka przykładowych danych wyjściowych
Aby je
major.minor.api.serial
zdobyć, grasz je wstecz18.168.6.1
źródło