ARM 全局变量更换基址寄存器

思索了两个晚上,一直没有弄清几万条指令里唯一的 x27, #80 来自哪里,结合上下文判定是个全局变量,通过动态调试给main传参数,确认参数 s 时会改变 x27, #80 的值,由 0 变 1。于是反推到 case 's' 处,发现此关联。以后找 arm 汇编的全局变量,用全局变量基址找关联更容易一些。

x23 :

40200c: d00001d7 adrp x23, 43c000 <memcpy@GLIBC_2.17>

402018: 9121c2f7 add x23, x23, #0x870 // x23=0x43c870

case 's':

402464: 52800020 mov w0, #0x1 // #1

402468: b90052e0 str w0, x23, #80 // gvar_80 = 1

40246c: 17fffeef b 402028 <ferror@plt+0x148>*/

x27 :

4020e8: d00001c0 adrp x0, 43c000 <memcpy@GLIBC_2.17>

4020ec: 9121c01b add x27, x0, #0x870 // x27=0x43c870

402600: b9405360 ldr w0, x27, #80 // w0=gvar_80;

偏移都是 80 ,但因 x* 变了,逆向时不好找到关联。与 intel 指令比起来,多了一层基址 0x43c870 。

相关推荐
AI科技星2 小时前
《全域数学/数术工坊》体系总览
c语言·开发语言·汇编·electron·概率论
H Journey4 小时前
用汇编语言写一个hello world,并进行汇编和编译
汇编·assembly·寄存器
逆境不可逃5 小时前
一篇速成 汇编程序语言设计之 8086 汇编核心指令
汇编
疯狂打码的少年1 天前
【程序语言与编译】程序设计语言分类(机器/汇编/高级)
汇编·笔记
JAMSAN09301 天前
16.0% 高增长!全球异构计算架构服务市场扩容态势
汇编·人工智能·架构
iCxhust3 天前
8086汇编 word ptr
汇编·单片机·嵌入式硬件·微机原理·8088单板机
大阳1233 天前
ARM.9(RGBLCD,PWM)
c语言·开发语言·汇编·单片机·嵌入式硬件·pwm·rgblcd
2301_789015624 天前
Linux基础开发工具一:软件包管理器、vim编辑器
linux·服务器·c语言·汇编·c++·编辑器·vim
是星辰吖~5 天前
X86反汇编_深度学习_基础二叉树
汇编
iCxhust5 天前
汇编返回指令ret iret retf区别
汇编·微机原理·8088单板机