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 。

相关推荐
乾复道8 小时前
k8s使用说明
汇编·程序人生
技术不好的崎鸣同学9 小时前
x64汇编之堆栈工作原理理论篇(继上篇内容讲解)
汇编
是星辰吖~14 小时前
X86汇编:复杂逻辑判断_针对性扫盲
汇编
技术不好的崎鸣同学16 小时前
x64汇编之用调试器进行程序分析:GDB
汇编
是星辰吖~18 小时前
X86反汇编_深度学习:从 C 指针到汇编逻辑
汇编
iCxhust1 天前
c#多串口重量采集上位机程序
开发语言·汇编·c#·微机原理·8088单板机
AI科技星2 天前
万有引力G与真空介电常数ε0全维度完整关系式汇编(基于v=c螺旋时空理论)
c语言·开发语言·前端·javascript·网络·汇编·electron
技术不好的崎鸣同学2 天前
x64汇编之GDB进阶与printf
汇编
是星辰吖~3 天前
X86反汇编:深度学习阶段_2
汇编
程序喵大人3 天前
从内存/汇编角度看C与C++:指针、引用、对象的底层差异
c语言·汇编·c++·指针·引用·对象