【Android 逆向】【ARM汇编】 全局资源重定位

资源重定位解释:

字符串反汇编代码解释:

.rodata:00001E20 __exidx_end DCB "a + b = %d" ; DATA_XREF: main+28^o
.rodata               所在段名
00001E20              偏移地址
__exidx_end IDA       给的一个字符串名称
DCB                   IDA的一种表示形式 表示以字节形式解析 对应还有DCW DCD
"a + b = %d",0        字符串内容,有的以 ,0xA,0 结尾   0xA对应的是 \n 
DATA_XREF: main+28^o  代表该字符串引用位置, 点o即可跳转过去,或者按x会打开交叉引用的表

字符串使用解释:

.text:000005D8 LDR R1, =(__exidx_end - 0x5E4)   这里相当于一个赋值操作
.text:000005DC ADD R1, PC,R1 ; "%d %d"  根据PC进行重定位,找到字符串位置,这里PC的值其实指向的是下两条的指令的位置(固定 arm+8 thumb+4)+so在内存红的基地址
.text:000005E0 STR R0, [SP, #0x38+var_C]
.text:000005E8 STR R4, [SP, #0x38+var_8]
posted @ 2023-03-13 17:10  明月照江江  阅读(104)  评论(0编辑  收藏  举报