Возможно ли запустить двоичный файл x86 на процессоре ARM?
Возможно ли конвертировать / перекомпилировать уже скомпилированный двоичный файл x86 в двоичный файл ARM?
Я использую BeagleBoard с командной строкой Ubuntu (Maverick) и хочу запустить сервер Ventrilo, но исполняемый файл x86, который они поставляют, не может быть запущен на аппаратном обеспечении, насколько я могу судить (скорее всего, из-за различной архитектуры).
К сожалению, у меня нет доступа к источнику, который позволяет мне перекомпилировать его изначально.
- Может ли x86's MOV быть «свободным»? Почему я не могу воспроизвести это вообще?
- Разница в производительности между MSVC и GCC для высоко оптимизированного матричного кода
- Что означают скобки в x86 asm?
- Какова цель инструкции LEA?
- Как напечатать целое число в программировании уровня сборки без printf в библиотеке c?
Если нет, есть ли другой способ, которым я могу запустить двоичный файл (например, эмуляция)?
- Распределение стека, отступы и выравнивание
- Инструкции SSE: какие процессоры могут выполнять атомные операции памяти 16B?
- Относительная производительность команды x86 inc vs. add
- Почему нет регистра, который содержит более высокие байты EAX?
- Почему этот код SSE в 6 раз медленнее без VZEROUPPER на Skylake?
- Почему оставить «mov esp, ebp» в сборке x86?
- Как читать и писать регистры x86 флаги напрямую?
- Вопрос x86 LOCK о многоядерных процессорах
Вы можете захотеть переключиться на альтернативное программное обеспечение, доступное изначально на вашей архитектуре, ропот и mumble приходят на ум.
Бормотание и бормотание домашней страницы
Краткая версия: если у вас нет исходного кода, то нет.
Длинная версия: вы можете использовать qemu (или kvm или virtualbox и т. Д.) И использовать минимальную эмулированную систему x86 для запуска сервера.
Я думаю, что ответ «возможно». Обычно вы можете декомпилировать исполняемый файл, если знаете об этом достаточно. Если вы декомпилируете код на язык с компилятором ARM и библиотеки, необходимые для компиляции этого бинарного файла на вашу платформу ARM, то это должно быть возможно.
Например: Если ваш сервер Ventrilo можно декомпилировать в исходный код C, и этот исходный код является стандартом ANSI, у вас может быть достаточно поддержки с вашим компилятором ARM для перекомпиляции кода.
Я действительно не знаю, можете ли вы сделать это на законных основаниях, так как вы бы обратное проектирование программного обеспечения, которое вы не являетесь владельцем.