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 。

相关推荐
apcipot_rain15 小时前
汇编语言与逆向分析 一轮复习笔记
汇编·笔记·逆向
切糕师学AI21 小时前
ARM 汇编指令:MOV
汇编·arm开发
切糕师学AI1 天前
ARM 汇编指令:ORRS
汇编·arm开发
缘友一世1 天前
计算系统安全速成之链接:理解程序的构建过程【7】
汇编·计算机系统
3824278272 天前
汇编:宏汇编、宏库
汇编
3824278272 天前
汇编:条件汇编、
前端·汇编·数据库
white-persist2 天前
【攻防世界】reverse | simple-check-100 详细题解 WP
c语言·开发语言·汇编·数据结构·c++·python·算法
时空自由民.2 天前
stm32FXX系列MCU汇编启动文件分析
汇编·stm32·单片机
切糕师学AI2 天前
ARM 汇编指令:STR
汇编·arm开发
3824278272 天前
IA-32汇编:MOV r/m16,sreg指令、LAHF指令、ALIGN指令、LABEL 指令、TYPEDEF指令解析
汇编