2017-01-16 6 views
1

Возможно ли изменить значение энтропии ELF без ухудшения функциональности кода и формата файла?Преобразование большого Endian ELF исполняемого в Little Endian endianness?

Моя цель - запустить исполняемый файл Big Endian ARM на машине Little Endian.

Если это не просто замена байтов (из-за заголовков и более того, что я думаю), каковы необходимые шаги?

+0

слишком расплывчатый, есть два режима большой эндианты, можно предположить, что у вас есть правильный для ядра, на котором вы находитесь, и, что более важно, чипа/периферийных устройств. Вы можете переключить режим endian перед загрузкой и запуском этого двоичного файла, но это также зависит от вашей среды - это голый металл или операционная система. Голый металл есть очень тонкий шанс, в противном случае вряд ли. –

+0

be-32 старый способ 32-битные вещи не были обменены, байты и полуслова были. Поэтому вам нужно будет знать, какие части (по слову на слово) двоичного файла доступны в виде слов и заменяют все остальное. be-8, байтовые обращения не изменяются, а слова и полуслова DATA-доступа выполняются, инструкции не выполняются, поэтому вам придется изолировать байты в двоичном доступе, как данные, слова или полусловы, и обменивать их. короткий ответ, обмен будет работать. должны переключить процессор в правильном режиме, если вы на чипе, на котором будет работать двоичный файл (perhipherals и т. д.). –

ответ

2

№. Континентальность относится не только к файловому формату, но и ABI, используемому в коде, как в виде машинных инструкций, так и в структурах данных.

ARM BE/LE будет той же разницей между x86 и ARM в этой точке и не сможет «перевести».

+0

Можете ли вы указать на некоторые из этих особых различий? – Reflection

+0

Сам код может использовать endianess (например, прочитать первый байт 4-байтового int и предположить, что это младший байт). Вы будете разбивать почти все программы, даже если вы правильно переводите инструкции. – BitBank

+0

Действительно. Точно так же, поскольку ELF не кодирует семантику структур данных, к которым вы обращаетесь, программное обеспечение для перевода не может определить, к каким частям структуры вы обращаетесь, и порядок полей в структуре может быть определен по определению. –

Смежные вопросы