ARM Assembly for iOS with Xcode

0. Introduction

0.1 arm asm vs. arm64(ARMv8) asm

AArch64:

0.2 __arm64__, __arm__, NEON

#ifdef __arm64__" and "#ifdef __arm__"

NEON intrinsics

1. arm assembly

2. arm64 assembly

3. inline assembly

"There are many reasons not to use inline-assemblyhttps://gcc.gnu.org/wiki/DontUseInlineAsm" Ref[4]


Reference

1. iOS Assembly Tutorial: Understanding ARM

http://www.raywenderlich.com/37181/ios-assembly-tutorial

2. ARM assembly for iOS with XCode

https://blog.noctua-software.com/arm-asm.html

3. An iOS app in assembly

https://github.com/richardjrossiii/iOSAppInAssembly

4. RGBA to ABGR: Inline arm neon asm for iOS/XCode

http://stackoverflow.com/questions/38035351/rgba-to-abgr-inline-arm-neon-asm-for-ios-xcode

5. Larry D. Pyeatt, PhD

http://www.mcs.sdsmt.edu/lpyeatt/

Modern Assembly Language Programming with the ARM Processor, 1st Edition

6. Introduction to ARMv8 64-bit Architecture (AAAAA)

april 9, 2014 by pnuic

https://quequero.org/2014/04/introduction-to-arm-architecture/

7. ARM Cortex-A Series Programmer’s Guide for ARMv8-A (AAAAA)

http://infocenter.arm.com/help/index.jsp?topic=%2Fcom.arm.doc.den0024a%2Fch01s01.html

8. keil

http://www.keil.com/

MDK Version 5 Microcontroller Development Kit

9. linaro

http://www.linaro.org/


TODO

1. Getting Started with 64-bit ARM Development: Hello World and Linux on ARMv8 Fast Models

http://www.cnx-software.com/2012/11/06/getting-started-with-64-bit-arm-development-hello-world-and-linux-on-armv8-fast-models/

2. ARMv8

http://www.linaro.org/projects/armv8/

3. google "Linaro GCC install on macosx"

4. ARM GCC Inline Assembler Cookbook

http://www.ethernut.de/en/documents/arm-inline-asm.html

5. ARM's 64-bit mode (AArch64 ARMv8):

http://shervinemami.info/arm64bit.html

6. ARM Assembly language

http://shervinemami.info/armAssembly.html

7. iOS Application Security Part 43 - FAT Binaries & LLDB Usage Continued

http://highaltitudehacks.com/2015/05/17/ios-application-security-part-43-fat-binaries-and-lldb-usage-continued/

8. ARM Assembly Basics - How to Write a Simple ARM Program (on iOS)

https://www.youtube.com/watch?v=Ls2P-B6fqEI

9. The ARM University Program, ARM Architecture Fundamentals

https://www.youtube.com/watch?v=7LqPJGnBPMM

10. iOS Hacking Basics - Reverse Engineering iOS Apps & Runtime Modification Tutorial

https://www.youtube.com/watch?v=YcfuQY5z_-A

11. How to Become an iOS Hacker - How to Learn, ARM Assembly, Exploit Development, Reverse Engineering

http://www.ninoishere.com/how-to-become-an-ios-hacker-how-to-learn-arm-assembly-exploit-development-reverse-engineering/

12. arm64 assembly crash course (To Continue)

https://github.com/Siguza/ios-resources/blob/master/bits/arm64.md

iOS.ARM-Assembly的更多相关文章

  1. [转]Whirlwind Tour of ARM Assembly

    ref:http://www.coranac.com/tonc/text/asm.htm 23.1. Introduction Very broadly speaking, you can divid ...

  2. [转]iOS Assembly Tutorial: Understanding ARM

    iOS Assembly Tutorial: Understanding ARM Do you speak assembly? When you write Objective-C code, it ...

  3. ARM architecture

    http://en.wikipedia.org/wiki/ARM_architecture ARM architecture     ARM architectures The ARM logo De ...

  4. 我也要学iOS逆向工程--函数

    大家好,这篇我开始学习函数了.先学 C 函数,然后再 OC 的吧.OC 应该复杂点的吧. 然后看看汇编情况哦! 学习函数呢,肯定要弄清楚几个事情. 1.跳转地址. 2.返回地址 3.参数 4.函数获取 ...

  5. VS2005混合编译ARM汇编代码-转

    原文地址:http://blog.csdn.net/annelcf/article/details/5468093 公司HW team有人希望可以给他们写一个在WinCE上,单独读写DDR的工具,以方 ...

  6. ARM 汇编的mov操作立即数的疑问

    1. 因为对arm汇编有些指令还不能理解,特别是一些相似功能指令间的区别.偶然在网上搜到"faq ARM assembly",其中描述的几个问题还是值得好好研究一下. 2. 慢慢的 ...

  7. 用汇编语言(ARM 32位)编写TCP Bind Shell的菜鸟教程

    用汇编语言(ARM 32位)编写TCP Bind Shell的菜鸟教程 来源 https://www.4hou.com/info/news/9959.html Change 新闻 2018年1月19日 ...

  8. 推荐一篇讲arm架构gcc内联汇编的文章

    这是来自ethernut网站的一篇文章,原文链接: http://www.ethernut.de/en/documents/arm-inline-asm.html 另外,据说nut/os是个不错的开源 ...

  9. android ARM 汇编学习 —— hello world

    android ARM 汇编学习—— 在 android 设备上编译c/cpp代码并用objdump/readelf等工具分析 adb putty 连上手机,用busybox vi 写一个 hello ...

随机推荐

  1. UILabel的一些属性

    1.0  lineBreakMode 1.1.0 NSLineBreakByWordWrapping = 0,  以字符为显示单位显示,后面部分省略不显示 NSLineBreakByCharWrapp ...

  2. u-boot 内核 启动参数

    kernel如何得到uboot启动信息: http://blog.sina.com.cn/s/blog_89d9bec60101bzen.html u-boot向linux内核传递启动参数: http ...

  3. IDEA配置 gradle

    下载解压自己需要的gradle版本:https://gradle.org/releases/(免安装)  配置环境变量 打开命令窗口,输入 gradle -v IDEA配置gradle:file-&g ...

  4. MySQL 5.7 使用原生JSON类型

    首先回顾一下JSON的语法规则: 数据在键值对中, 数据由逗号分隔, 花括号保存对象, 方括号保存数组. 按照最简单的形式,可以用下面的JSON表示: {"NAME": " ...

  5. Javascript Iterator

    [Javascript Iterator] 1.@@iterator Whenever an object needs to be iterated (such as at the beginning ...

  6. Avalon Framework

    Apache Avalon has closed. Apache Avalon began in 1999 as the Java Apache Server Framework and in lat ...

  7. 单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造

    接上篇 单点登录(SSO)解决方案之 CAS 入门案例 服务端数据源设置: 开发中,我们登录的user信息都是存在数据库中的,下面说一下如何让用户名密码从我们的数据库表中做验证. 案例中我最终把cas ...

  8. JAVA中字符串的startWith什么意思

    判断字符串是否以某个子字符串开头. 比如字符串“abcdefg”.startWith("abc") 判断结果是true,因为它是以 abc 开头的.

  9. SML + NL + HJ

    Join是一种试图将两个表结合在一起的谓词,一次只能连接2个表,表连接也可以被称为表关联.在后面的叙述中,我们将会使用”row source”来代替”表”,因为使用row source更严谨一些,并且 ...

  10. 弹出序列(python)

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...