Android逆向之旅---Android应用的汉化功能(修改SO中的字符串内容) (5)

ELF文件主要由文件头(ELF header)、代码段(.text)、数据段(.data)、.bss段、只读数据段(.rodata)、段表(section table)、符号表(symtab)、字符串表()、重定位表(.rel.text)如下图所示:

Android逆向之旅---Android应用的汉化功能(修改SO中的字符串内容)


代码段与数据段分开的原因:
1.对进程来说,数据段是可读写的,指令段是只读的。这样可以防止程序指令被改写。
2.指令区与数据区的分离有助于提高程序的局部性,有助于对CPU缓存命中率的提高。
3.当系统运行多个改程序的副本的时候,他们对应的指令都是一样的,此时内存只需要保留一份改程序的指令即可。当然,每个副本进程的数据区域是不一样的,他们是进程私有的


结合下图进行分析

Android逆向之旅---Android应用的汉化功能(修改SO中的字符串内容)



如上图所示,

1、.text段

一般C语言编译后的执行语句都编译成机器代码,保存在.text段。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwgjw.html