Как я могу проанализировать микрокод (ucode) в iwlwifi для получения номеров версий?

При выполнении собственного сервера можно установить собственное identd имитировать и сказать независимо от того, что Вы хотите. Посмотрите Википедию для большего количества информации.

11
10.01.2020, 17:59
2 ответа

iwlwifi драйвер загружает файл микрокода для Вашего адаптера Wi-Fi при запуске. Если Вы хотите знать версию блобов, Вы имеете на своей машине, пробуете сценарий Andrew Brampton. Выполненный:

## Note the firmware may stored in `/usr/lib`
./ucode.py /lib/firmware/iwlwifi-*.ucode

И сравните вывод со своим журналом (dmesg вывод).

Обратите внимание, что сценарий работает с python2.

8
27.01.2020, 19:59

В качестве примечания, глядя на сценарий Эндрю Брэмптона, упомянутый в ответе @don _crissti , вы можете получить тот же результат от Radare2 , который является обратным -инженерная база.

pf x[4]z[64]zN1N1N1N1 magicfile magicblob text serial api minor major
  • pfпечать отформатированных данных
    • x0xHEX value and flag (fd @ addr) (see 'd' and 'i')
    • [4]znull terminated stringмин. -длина 4 размер
    • [64]znull terminated stringмин. -длина 64 размер
    • N1N1N1N1next char specifies size of unsigned value (1, 2, 4 or 8 byte(s))

Вы можете запустить это из скрипта, подобного этому,

for f in /lib/firmware/iwlwifi-*.ucode; do
    echo $f;
    radare2 -qc "pf x[4]z[64]zN1N1N1N1 magicfile magicblob text serial api minor major" "$f";
done;

Вот пример вывода

 magicfile : 0x00000000 = 0x00000000
 magicblob : 0x00000004 = IWL.
      text : 0x00000008 = 6000g2b fw v18.168.6.1 build 0.
    serial : 0x00000048 = 1
       api : 0x00000049 = 6
     minor : 0x0000004a = 168
     major : 0x0000004b = 18

Вы играете их в обратном порядке, major.minor.api.serialчтобы получить18.168.6.1

1
27.01.2020, 19:59

Теги

Похожие вопросы