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. OpenCV Python : No drawMatchesknn function

    2 down vote The functions cv2.drawMatches and cv2.drawMatchesKnn are not available in newer versions ...

  2. webui-popover 一个轻量级的jquery弹出层插件

    该提示框插件可以和Bootstrap完美结合,但是并不一定需要和Bootstrap一起使用.它支持IE7以上的浏览器. 首先要引入需要的css  js  文件 <link rel="s ...

  3. ADO.Net创建数据模型和数据访问类及泛型集合

    数据模型和数据访问类:数据模型: 使用面向对象中的封装特性,将数据表中的行数据组成一个同样结构的对象,来单独使用: 数据访问类: 将某一个表的全部增删改查操作的方法写进去,方便统一管理和调用: 数据模 ...

  4. devmapper: Thin Pool has 162394 free data blocks which is less than minimum required 163840 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior

    问题: 制作镜像的时候报错 devmapper: Thin Pool has 162394 free data blocks which is less than minimum required 1 ...

  5. OpenCV批量读入(处理)

    #include <windows.h> #include <iostream> #include <opencv2/opencv.hpp> using names ...

  6. shell脚本中比较两个小数的办法

    具体情况#man bc 然而对小数进行比较的相关方法有几个: 1. 自己的解决方法,判断小数点后最多有几位数(N),然后对将要比较的两个数值进行 乘与10的N次方 也就是将小数点去掉来进行比较(小数点 ...

  7. sql 求max和min,但是第二大,第二小怎么算?

    利用子查询,但这样速度较慢. SELECT Baoming.id, Baoming.addtime AS '报名时间', CONCAT(Members.realname,Members.usernam ...

  8. char、varchar、nchar、nvarchar的区别(转)

    转自:http://tech.diannaodian.com/dw/data/sql/2011/1005/135556.html 对于程序中的string型字段,SQLServer中有char.var ...

  9. PHP中的变量与PHP中算false的情况

    一PHP中的变量 1.PHP中的变量,声明与使用必须用$开头 2.PHP是一种弱类型语言,变量其实并不需要声明.可以直接给变量赋任何类型的值: 3.PHP中可以使用连等同时声明多个变量, eg:num ...

  10. redis-storage介绍[转]

    背景: 当时我们正在做一个游戏项目,游戏项目相比于web项目,更追求的是单机的性能,而我们对单个请求的处理时间有着bt级的需求(一个完整的api请求控制在10ms以内).当时我们的数据层用的是ttse ...