Декомпилируйтесь / Выполнение исполняемый файл MIPS под x86_64 Ubuntu

Когда вы запускаете ls * , первое, что происходит, - оболочка получает список текущего каталога. Если каталог огромен, а сервер работает медленно, это может занять некоторое время.

Как только оболочка получает список имен файлов в текущем каталоге, она сортирует этот список (что очень быстро по сравнению с любым сетевым взаимодействием), затем вызывает ls . Команда ls просматривает каждый файл по очереди и извлекает его метаданные (вызов stat ), чтобы проверить, является ли он каталогом; если файл является каталогом, ls перечисляет его содержимое, а не сам каталог.

Когда вы нажимаете Ctrl + C , это не прерывает текущую операцию NFS. Вы не можете прервать работу файловой системы где угодно, так как это может оставить систему в несогласованном состоянии. Даже чтение файла может изменить время его доступа. В большинстве случаев элементарная операция чтения или записи файла выполняется мгновенно по человеческим меркам, но NFS является исключением, особенно с большими объемами данных в медленной сети.

Таким образом, нажатие Ctrl + C вступит в силу только:

  • если оболочка в настоящее время генерирует список имен файлов, когда этот список полностью извлечен;
  • если ls был запущен и в настоящее время получает метаданные о файле, когда сервер предоставляет метаданные;
  • если ls был запущен и в настоящее время выводит список каталога, когда list извлекается полностью или, по крайней мере, после его фрагмента.

Это не ошибка команды ls (которая, возможно, еще даже не была запущена). Это даже не вина оболочки: это вина NFS. NFS работает довольно медленно.

1
08.09.2016, 14:32
1 ответ

Во-первых, вы имеете в виду экстрагированные или распакованный, не декомпилировали. Подробнее до точки, однако, что вы хотите, - это пользовательские программы QEMU, а не QEMU-System. Например, на DEBIAN GNU / Linux вам просто нужно установить пакет QEMU-User-Binfmt, а затем вы можете запустить пиджаки TGHESE, как родные.

Единственное осложнение - это когда эти двоичные файлы нуждаются в файлах в жесткозедированных местах (например, Uclibc в / lib). Простой способ разрабатывать это состоит в том, чтобы скопировать соответствующую QEMU-пользователю (например, «QEMU-MIPS») на тот же путь внутри извлеченного корневого каталога:

cp /usr/bin/qemu-mips router-root/usr/bin

, а затем вы должны быть в состоянии обойтись внутри, используя E.G. Bitebox в качестве оболочки:

chroot router-root bin/sh
chroot router-root bin/sig_verify ...

Однако, если SIG_VERIFE использует достаточно хороший алгоритм для подписи (например, RSA), а затем шансы подписать свои собственные файлы Slim.

1
27.01.2020, 23:51

Теги

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