восстановление символов, удаленных из двоичного кода Mach-O

StackOverflow https://stackoverflow.com/questions/1252569

  •  12-09-2019
  •  | 
  •  

Вопрос

Используя Mac OS X 10.5, я пытаюсь понять, как использовать dtrace для отслеживания выполнения двоичного файла Mach-O.Однако, похоже, что все символы удалены, поэтому любые попытки использовать зонды, основанные на внутренних именах классов/методов, терпят неудачу.

Мне удалось использовать дамп классов, чтобы выгрузить классы, имена методов и адреса, по которым они реализованы, поэтому я предполагаю, что вы можете использовать это для восстановления символов в двоичном формате.Возможно ли это вообще, и если да, знает ли кто-нибудь какие-нибудь инструменты, которые могли бы помочь в этом, или какие-нибудь материалы для чтения, которые помогли бы мне лучше понять это?

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

Это было полезно?

Решение

Реконструкция символов Objective-C для использования в GDB возможна, см. мой ответ по адресу Импортируйте информацию о дампе класса в GDB..

Другие советы

Нет, это невозможно.Когда символы удаляются, теряется информация о том, где именно начинается код каждого метода.Чтобы восстановить эту информацию, вам придется дизассемблировать код.Если вы просто знаете, каковы методы каждого класса, вы все равно не знаете, где они расположены в коде, а это то, что нужно dtrace.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top