Właśnie przesłałem plik oprogramowania sprzętowego o wielkości ~ 7 Kb do systemu Linux opartego na BusyBox przez port szeregowy.
Bez pracy w sieci, bez narzędzi do przesyłania plików; brak narzędzi Base64 lub cokolwiek zdalnie przydatnego na urządzeniu.
Na hoście w prosty sposób zakodowałem oprogramowanie wewnętrzne w następującym formacie; rodzaj zrzutu szesnastkowego składającego się z literałów powłoki połączonych z printfpoleceniami:
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
w zasadzie printfpolecenia powłoki z interpretowanymi \xsekwencjami ucieczki printf. Na urządzeniu zrobiłem:
device $ cat > firmware.sh
następnie użył minicompliku ASCII send ( Ctrl-AS), aby wysłać ten plik do hosta. Mogłem po prostu użyć funkcji kopiuj i wklej, ponieważ ilość danych jest niewielka.
Następnie zaznaczył plik wykonywalny i uruchomił printfskrypt:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
Sprawdzono za pomocą BusyBox, md5sumczy firmware.binsuma kontrolna urządzenia odpowiada oryginalnemu obrazowi oprogramowania układowego na hoście.
PS Składnia podwójnego cudzysłowu powłoki przechodzi przez \xdosłownie, ponieważ nie jest to rozpoznana sekwencja ucieczki; dlatego nie musimy podwajać ukośników odwrotnych.
busybox --helpils -l /binils -l /usr/bin, proszę.