我们走得太快,灵魂都跟不上了。
微小的幸福就在身边,容易满足就是天堂。
在逆向和爆破中我们经常会在IDA中接触到汇编,一般做安卓的不会太了解VB回编等,不太了解的同学可以先查看上篇文章
《ARM常用的汇编指令合集》
再来继续我们的学习,我们先来看张图。
这个view里面有 PUSH/LDR/SUB/MOVS/BLX/SUBS/BEQ/CMP ,这些差不多都是常见的,不过也不需要看得懂,理解这个指令即可,接下来我们就来分析下这些指令分别有什么作用吧。
先引入 概念性 东西,免得大家后面被搞混,那就是为什么会有S和!。
- S:指令执行后程序状态寄存器的条件标志位将被刷新 , 如ADDS R1,R0,#2
- ! :指令中的地址表达式中含有!后缀时,指令执行后,基址寄存器中的地址值将发生变化,变化的结果是:基址寄存器中的值(指令执行后)=指令执行前的值 + 地址偏移量,如 LDR R3,[R0,#2]! 指令执行后,R0 = R0 + 2
接下来分别讲解这个View里面的指令分别有什么作用。