LINUX.ORG.RU

arm + hex


0

1

Есть такая задача отредактировать бинарный армовский файл. По сути нужно убрать несколько символов из слова. Стандартные редакторы не прокатывают

На выходе получаю

link_image[1710]: 3013 missing essential tablesCANNOT LINK EXECUTABLE

Поделитесь опытом, пожалуйста, у кого он есть чем же отредактировать?

п.с.

переконпелировать не предлагать, так как софтинка проприетарная.

Кастую XVilka, но предполагаю, что __убрать__ не получится.

опиши задачу подробней, иначе тред превращается в конкурс телепатов (софтина, зачем убирать ...), может можно поменять остаток строки на 0x00 или 0x0a или 0x20?

adriano32 ★★★
()

когда ты удаляешь куски бинарника, у тебя смещения в нём плывут по 3.14^W^Wк чёрту.

anonymous
()

ARM.. это мобильный какой-то ЕМНИП, да? А ИДЕшки для разработки под платформы на нем не умеют такого, случаем?

Zhbert ★★★★★
()

Стандартные _редакторы_ или hex-редакторы? Если вы хотите совсем убрать несколько символов не заменив их, например, на пробелы, то приготовьтесь к удивительным приключениям.

buddhist ★★★★★
()
Ответ на: комментарий от Kosyak

Такие проблемы обычно решаются заменой условного перехода на противоположный или на пустую операцию и являются элементарными (если файл не упакован, конечно).

buddhist ★★★★★
()

Что значит «убрать несколько символов из слова»? И что вы назвали стандартными редакторами и какие действия в них предпринимали?

delete83 ★★
()

IDA, biew тебе помогут.

Убрать что-то получится вряд-ли, ибо адресация поползёт, а вот заменить на нули или на опкод nop вполне реально.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от adriano32

Мне собственно в бинарнике нужно заменить acm_eth_mtp_adb на acm_eth_adb вот и вся правка. Но чем не поправлю везде получается фигня с

link_image[1710]: 3013 missing essential tablesCANNOT LINK EXECUTABLE

polovinamozga
() автор топика
Ответ на: комментарий от polovinamozga

acm_eth_mtp_adb
acm_eth_adb0000

где 0 это нулевой символ байт 0x00

если это конечно не символ какой

anonymous
()
Ответ на: комментарий от polovinamozga

нужно заменить acm_eth_mtp_adb на acm_eth_adb

Это функция?

adriano32 ★★★
()
Ответ на: комментарий от polovinamozga

быстрый гугл подсказывает нам, что ты всё равно обломишься, ибо флаги тоже менять надо.

 {"acm_eth_mtp", ACM_TYPE_FLAG | ETH_TYPE_FLAG | MTP_TYPE_FLAG, MAPPHONE_VENDOR_ID, MAPPHONE_PHONE_PORTAL_PRODUCT_ID,
"Motorola Config 30", USB_CLASS_VENDOR_SPEC, USB_CLASS_VENDOR_SPEC, USB_CLASS_VENDOR_SPEC},
{"acm_eth_mtp_adb", ACM_TYPE_FLAG | ETH_TYPE_FLAG | MTP_TYPE_FLAG | ADB_TYPE_FLAG, MAPPHONE_VENDOR_ID, MAPPHONE_PHONE_PORTAL_ADB_PRODUCT_ID,
"Motorola Config 31", USB_CLASS_VENDOR_SPEC, USB_CLASS_VENDOR_SPEC, USB_CLASS_VENDOR_SPEC},

ADB_TYPE_FLAG

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.