安卓逆向面试题汇总 技术篇(3) arm汇编 B、BL、BX、BLX区别和指令含义

admin 2022年1月7日08:44:57评论1,550 views字数 1040阅读3分28秒阅读模式






安卓逆向面试题汇总 技术篇(3) arm汇编 B、BL、BX、BLX区别和指令含义

        因为相信, 所以看见         






首发安全客 链接:https://www.anquanke.com/post/id/246020

文章太长 所以分7个部分发出来。

这一篇是第3个部分,面试的时候问这个的还挺多的。



01
B、BL、BX、BLX指令的简单记忆



这里对这几条指令,有个简单记忆的方法。

那就是对几条指令中的字母单独记忆,然后遇到字母的组合,就把字母代表的含义加起来就可了。


单独记忆法:

字母 B: 直接跳转 类似jmp

字母 L: 把下一条指令地址存入LR寄存器

字母 X: arm 和 thumb指令的切换


注意:这样去记  是为了快速记住上面几条指令的含义

而不是单字母本身在汇编里面有这些含义

02
B、BL、BX、BLX指令详解


B这里跟x86汇编的 jmp比较像,可以理解成无条件跳转。

BL

    这里理解成 字母B + 字母L。

    作用是: 把下一条指令地址存入LR寄存器 ,然后跳转。

    像x86汇编里面的 call

    只不过 call 指令把下一条指令的地址压入栈

    BL是把下一条指令的地址放到 LR寄存器 

BX

    这里理解成 字母B + 字母X 

    这里表示跳转到一个地址

    同时切换指令模式。

    当前如果是 arm 就会切换成 thumb。 

    如果是 thumb 就会切换成 arm。


BLX

    BLX 这里是 字母B + 字母L + 字母X 。

    表示跳转到一个新的地址

    跳转的时候把下一条指令地址存入LR寄存器 

    同时切换指令模式

    arm转thumb  thumb转arm


    可以这样去理解:blx = call + 切换指令模式


03
结束语



昨天想着解决IOT设备的一个问题,然后顺势跟领导提调薪。但是左右横跳半天也没有解决这个IOT设备的问题。

没有解决也不要紧,照样跟领导提了调薪。

领导说他是站在我这边的,不过要向上级申请之类的。

我开口让领导涨5000工资。心理价位是4000,想着先喊高一点,到时候,再讨价还价4000成交。

害,刚好房子也快到期了,现在想着,等涨完工资,跟房东聊聊。

就说公司效益不好,降薪了,让房东可怜可怜我,降几百块房租,好让我维持生活。

不知道房东答不答应,哈哈哈哈。


关于作者:


一个乙方安全公司搬砖的菜鸡,移动安全从业者。最近忙着找女票,忙着在b站当扑街up主。


b站/公众号 :  移动安全王铁头  


希望和大佬们一起学习,一起成长




安卓逆向面试题汇总 技术篇(3) arm汇编 B、BL、BX、BLX区别和指令含义
安卓逆向面试题汇总 技术篇(3) arm汇编 B、BL、BX、BLX区别和指令含义

点个

安卓逆向面试题汇总 技术篇(3) arm汇编 B、BL、BX、BLX区别和指令含义

在看

你最好看

本文始发于微信公众号(移动安全王铁头):安卓逆向面试题汇总 技术篇(3) arm汇编 B、BL、BX、BLX区别和指令含义

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月7日08:44:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安卓逆向面试题汇总 技术篇(3) arm汇编 B、BL、BX、BLX区别和指令含义http://cn-sec.com/archives/481628.html

发表评论

匿名网友 填写信息