УМННБJ, ЯХВ. Войти !bnw Сегодня Клубы
Я тут совсем поехал и в качестве нового вида прокрастинации пытаюсь зареверс-инженирить алгоритм работы Xbee Digimesh (это такие out-of-the-box приёмопередатчики на ARM Cortex-M3 и IEEE 802.15.4, которые сами объединяются в mesh-сеть). Вот выдернул из официльной гуйни для этого устройства прошивку (у них она хранится в зашифрованном виде, лол, рядом с java-гуёй; пришлось развлекаться с декомпилятором), которая зашивается при обновлении по UART'у. Вот только я никак не могу понять, что это за формат файла такой. Файл разбит на несколько частей с помощью некоторого количества 0xFF между этими частями. При этом strings выдаёт адекватные строки (их можно загуглить и наткнуться на логи людей, которые с этой железкой управляли по uart'у), и находятся они в некоторой изоляции, в одной части файла. Это даёт надежду на то, что FF'ы разделяют секции, но вот только попытки натравить arm-none-eabi-objdump на любые отдельные секции этого файла с целью получить ассемблерный код ничего годного не выдают (ругается на слишком много неизвестных инструкций; пробовал с -marm и -Mforce-thumb, но лучше не стало). Моя задача: получить возможность почитать асм, чтобы потихоньку переписать это дело на сишечку и вообще въехать в то, что они там творят и почему они так успешны. Собственно, поэтому к вам и обращаюсь: есть какие-нибудь мысли, как мне этот ассемблерный код получить из этого бинаря? Тут вот даташиты есть на сам трансивер, mcu и сам бинарь: https://www.digi.com/resources/documentation/digidocs/pdfs/90000991.pdf https://www.silabs.com/documents/public/data-sheets/EM35x.pdf http://dump.bitcheese.net/files/jaxafop/xbee-digimesh.bin/preview
Рекомендовали: @krkm @ninesigns
#4849GM / @anonymous / 2557 дней назад

Дизассемблировать через IDA Pro или radare2, очевидно жэ. Можешь еще binwalk туда попробовать натравить
#4849GM/UFY / @j123123 / 2557 дней назад
@j123123 До того, как я красивый гуёвый дизассемблер возьму в руки, надо понять, где в прошивке вообще text section. Дизассемблеры, кажется, не такие умные, чтобы уметь среди хлама находить машинные инструкции. На самом деле там прошивка-то 64-килобайтная, да и ПЗУ на EM357 128KiB; я так понимаю, что кроме data/rodata/text там ничего нет. binwalk выдаёт пустоту.
#4849GM/DM7 / @anonymous --> #4849GM/UFY / 2557 дней назад
Plot twist: это разные разделы разбитые по адресам кратным 0x1000, и там есть загрузчик, его environment, какие-нибудь данные калибровки, прыщеядро и фс.
#4849GM/WPQ / @l29ah / 2557 дней назад
@l29ah А байты из единичек это всего лишь незаписанные участки стёртой флеши.
#4849GM/MYY / @l29ah --> #4849GM/WPQ / 2557 дней назад
И всё это в EEPROM'е на 128KiB.
#4849GM/6B5 / @anonymous / 2557 дней назад
@anonymous А почему тогда файл на 64кБ?
#4849GM/PT9 / @l29ah --> #4849GM/6B5 / 2557 дней назад
@l29ah А ты неплох. Вот нашёл способ из гуёвой программы получить расшифрованный файл в виде SREC (arm-none-eabi-objdump -D -bsrec -marm -Mforce-thumb *.dec тоже выдаёт херню, но при этом делит эту херню на 3 секции, лол) http://dump.bitcheese.net/files/sylagew/xbp24-dm_8073.ehx2.dec/preview
#4849GM/7OS / @anonymous --> #4849GM/PT9 / 2557 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.