ассемблерный код iOS - PullRequest
       2

ассемблерный код iOS

7 голосов
/ 08 декабря 2011

Я хотел бы попробовать сборочный код ARM с Apple iOS только для образовательных целей.Я хотел бы начать с некоторого кода в строке в Xcode.Насколько я понимаю, мне нужно скомпилировать для устройства iOS, например, для моего iPhone, что означает, что мне нужно платить 99 долларов в год за членство.Я не думаю, что смогу использовать ассемблерный код ASM с симулятором телефона iOS.Мне трудно найти примеры, книги или документацию по ассемблерному коду ARM в encode Xcode с iPhone.Я делаю это неправильно?Возможно, iOS не самая удобная среда для изучения ARM Assembly.

Ответы [ 4 ]

13 голосов
/ 08 декабря 2011

Резервное копирование ...

Чему ты пытаешься научиться? Сборка руки или программирование iOS? Выберите один ...

Есть ли у вас опыт сборки?

Как вы думаете, что вы хотите изучать при сборке рук? Вскочить и написать несколько полноценных приложений графического интерфейса? Вам нужно научиться помещать немедленные в регистры add и или или и xor и сохранять ответы в регистрах. затем прочитайте и запишите некоторые области памяти. Научитесь использовать стек, совершайте вызовы и т. Д. Затем напишите свои приложения на C или любом другом и используйте asm для ручной настройки или свои навыки asm для отладки компилятора и / или кода. Написание приложений или операционных систем и т. Д. В asm предназначено для людей, которые хотят сделать заявление или имеют конкретную причину, а не для образовательных целей.

Существует некоторая склонность к унифицированному языку ассемблера ARM, который работает как на ядрах на основе ARM, так и на ядрах на основе thumb2. Не для всего необходимого языка ассемблера, но для тех мест, где вы можете захотеть написать модуль кода и не иметь большого количества мусора, который засоряет код. Вы, конечно, можете здесь разобраться с этим и перенести часть этого кода прямо в полные 32-битные инструкции ARM на какой-то другой платформе. thumbulator предназначен только для большого пальца, общий набор команд между ядрами на основе ARM и ядрами на основе thumb2, в основном это набор переносимых команд ARM, напишите код один раз, он работает практически на всех их ядрах.

Если ваша цель - выучить программирование на iOS, получить комплект или что-то еще и учиться на любом языке, который они хотят, вы выучите на этом, выучите API и т. Д. Затем, если вы сделаете что-то из ассемблера выше, тогда вы можете начать думать о вызовах функций asm, встроенного ассемблера и т. д. из своих программ для iOS. Сколько стоит ассемблер, твой выбор. Я не ожидал бы увидеть приложения, написанные на ассемблере для этой платформы, вместо этого я бы искал, как мне вызвать этот ассемблерный код из моего приложения ios или как сделать встроенную сборку. (не изучайте встроенную сборку, пока вы не разберетесь в реальной сборке).

Нет никаких оснований платить за доступ к симулятору, есть много симуляторов оружия, один в маме, оружейный оружейник в gdb и других местах, множество геймбойнов, симуляторов nintendo ds и т. Д., и т. д. и т. д. Конечно, есть QEMU-ARM. Есть больше симуляторов, чем вы, вероятно, готовы потратить время, чтобы попробовать, я сам на 10 лет или около того и не пробовал их всех.

Учебная сборка не похожа на C, Python или Java, я напишу игру тральщика, чтобы выучить этот язык. Вы изучаете механику перемещения кусочков, маленьких шагов, а не написания полезных приложений. Например, добавление двух 128-битных чисел с использованием 16-битного процессора является достойным проектом на ассемблере. Умножение двух чисел любого размера на процессор без инструкции умножения - это еще один учебный проект типа ассемблера. Да, я согласен, что вы МОЖЕТЕ узнать эти вещи, вызывая asm из приложения iOS, но если у вас еще нет комплекта для разработчиков iOS и вы знаете, как писать приложения для iOS, вам нужно многому научиться, прежде чем начать думать об ассемблере.

Если я не совсем согласен с тем, что вы спрашивали, нет проблем, я с радостью удалю этот ответ ...

2 голосов
/ 08 декабря 2011

Даже без сертификата подписи кода, я думаю, вы сможете перейти во всплывающее меню схемы (справа от него) и выбрать «Устройство iOS»

Как только вы это сделаете, вы сможете выбрать любой файл .c или .m (или .cpp или .mm) в вашем проекте, открыть редактор помощника и выбрать «Сборка» на панели перехода редактора помощника. Затем вы можете увидеть ваш исходный код и код сборки рядом.

Или вы можете просто перейти в меню «Продукт» и «Создать вывод» -> «Сборка»

Возможно, вам будет легче начать с кода C, где вызовы функций будут намного легче поначалу выполнять, чем вызовы метода Objective-C.

1 голос
/ 13 августа 2013

Еще одно краткое введение в сборку ARM и реверс-инжиниринг: http://yurichev.com/writings/RE_for_beginners-en.pdf

1 голос
/ 08 декабря 2011

Вам нужен комплект разработки ARM с инструментарием программирования на основе Linux.Затем вы можете установить VirtualBox на свой Mac, создать виртуальную машину Linux и установить инструменты разработки ARM на виртуальной машине Linux.Убедитесь, что когда вы покупаете комплект разработчика ARM, он поставляется с процессором ARM, полной платой разработки / тестирования, кабелями USB для передачи / отладки программного обеспечения и полным набором инструментов Linux.Вы можете найти такие комплекты менее чем за $ 99.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...