Загрузка файлов на машину busybox

Для своего проекта я использую очень ограниченную машину Busybox с Linux.

Я пытаюсь загрузить файлы на эту машину (подключенную ко мне через Ethernet) с помощью telnet.

Пока у меня было несколько идей по его реализации:

  1. Запись файлов порциями (используя echo -e для порций по 128 байт) на диск. Идея провалилась, потому что команда echo не имеет опции -e.

  2. Перенаправление сокета в файл с помощью чего-то вроде /dev/tcp/192.168.1.2/12345 > /tmp/file. Идея не удалась, потому что в папке /dev/ не было устройства tcp.

  3. Используя для этого такие утилиты, как nc / ncat / nfqueue, идея также провалилась, потому что ни одной из них не существует, и я не могу ничего установить на эту машину (никаких apt-get / yum и т. д.).

  4. Использование эха (без параметра -e) для записи файла в кодировке base-64 на диск и последующего его декодирования. Идея не удалась, потому что я не смог найти никакой утилиты для декодирования строк base64.

У вас есть креативная идея для загрузки файлов?


person CodeNinja    schedule 19.12.2014    source источник
comment
на своем компьютере загрузите исходный код vsftpd, перекрестно скомпилируйте его и загрузите в систему.   -  person Jason Hu    schedule 19.12.2014
comment
На машине нет компилятора. Нет возможности скачивания. Если бы существовал компилятор, я бы скомпилировал nc   -  person CodeNinja    schedule 19.12.2014
comment
или попробуйте смонтировать nfs в вашей встроенной системе. я пробовал это один раз раньше, это тоже должно работать.   -  person Jason Hu    schedule 19.12.2014
comment
без кросс компилятора? как компилируется ваш линукс? должен быть один, в какой-то компьютерной коробке.   -  person Jason Hu    schedule 19.12.2014
comment
не в вашей встроенной системе. кросс-компилятор находится на вашей машине разработки, то есть на вашем рабочем столе или ноутбуке. чтобы во встроенной системе был установлен Linux, необходимо скомпилировать как минимум ядро ​​​​и busybox. где ты взял эту систему?   -  person Jason Hu    schedule 19.12.2014
comment
Он сказал кросс-компилятор, как при компиляции для вашей машины busybox на вашем компьютере с Linux.   -  person MeetTitan    schedule 19.12.2014
comment
У меня есть кросс-компилятор для этой машины, но я не могу перенести на него файлы (не хочу снова устанавливать)   -  person CodeNinja    schedule 19.12.2014
comment
У вас случайно нет ftpget на компьютере busybox? Я видел, как его бросили в так много Busybox'ов. Например, он есть у меня на маршрутизаторе, и именно так я загружаю в него пользовательские двоичные файлы (например, новый busybox!).   -  person MeetTitan    schedule 19.12.2014
comment
очень легко написать себе часть программы на языке c, передающую данные в сокет, если вы не возражаете. или попробуйте nfs, должно сработать.   -  person Jason Hu    schedule 19.12.2014
comment
Да, это легко. но я не могу передать его после того, как он был скомпилирован (потому что это бинарный файл, и я могу передать только текст). И я не могу передать его исходный код еще и потому, что на машине не установлен компилятор.   -  person CodeNinja    schedule 19.12.2014


Ответы (2)


Спасибо за быстрые ответы. Нашел на машине tftp клиент.

Поэтому я мог выполнить: /usr/bin/tftp -l /tmp/tst -r testfile.txt -g <server ip>

после открытия tftp-сервера на .

person CodeNinja    schedule 19.12.2014

Посмотрите, включает ли ваша сборка busybox rx .

Это даст вам функциональность приема XMODEM на вашей цели.

Я попросил нашу группу разработчиков программного обеспечения добавить его к нашему изображению; это было добавлено с очень небольшим усилием.

person Phil Brooks    schedule 23.12.2014
comment
Это отличная идея. Однако у меня его не было. - person CodeNinja; 30.12.2014