iOS汇编语言有很多种,最常见的有arm汇编、x86汇编等等。
arm汇编
iOS的架构从最初的armv6
发展到后来的armv7和armv7s
,最后发展到现在的arm64
,不管是armv6还是后来的armv7,以及arm64都是arm处理器的指令集。armv7和armv7s是真机32位处理器使用的架构,而arm64是真机64位处理器使用的架构
。
iPhone 5C是最后一款arm32位版本的iPhone,在iPhone5s之后,所有的iPhone设备都采用arm64架构。
arm64汇编 -- iphone7运行的汇编如下:
Snip20210223_51.pngx86汇编
x86汇编是模拟器使用的汇编语言,它的指令和arm64汇编的指令语法不同,如下:
Snip20210223_53.png学习汇编语言的用处:
- 代码调试:在平常开发中,在调试程序的时候,如果程序crash,通常会定位到具体的崩溃代码。但是有时候也会遇到一些比较诡异的crash,比如说崩溃在了系统库中,这个时候定位到具体的crash原因会非常困难。如果利用汇编调试技巧来进行调试,可能会让我们事半功倍。
- 逆向调试:在逆向别人App过程中,我们可以通过LLDB对内存地址进行断点操作,但是当执行到断点时,LLDB展现给我们的是汇编代码,而不是OC代码,所以想要逆向并且动态调试别人的App,就需要学习汇编的知识。
对于我们只要求掌握arm64汇编就可以了.
网友评论