- 博客(5)
- 收藏
- 关注
原创 记录一次so修复
同时这个正确的.shstrtab结尾 0x119BDD 就是section header table的开头,不过是否是真的先保持怀疑。最最最最后一步,去掉下面多余的,把真正的.shstrtab 下标为23的 和 section table的数量在elf header中修改。第四行003A知道每个section大小是0x40,一共有6个section,0x003F知道最后一个section是.shstrtab。可以看到真正的.shstrtab的地址是 0x119B15。
2024-01-29 20:57:16
1187
原创 Android中ELF文件结构浅析(四)
索引值从 0 开始计数,但值为 0 的表项(即第一项)并没有实际的意义,它表示未定义的符号。但它并不是一个字符串,而是一个指向字符串表的索引值,在字符串表中对应位置上的字符串就是该符号名字的实际文本。在可执行文件和共享库文件中,st_value 不再是一个节内的偏移量,而是一个虚拟地址,直接指向符号所在的内存位置。各种符号的大小各不相同,比如一个对象的大小就是它实际占用的字节数。偏移开始的位置是从 .dynstr 节 ( 进行动态链接所需的字符串,通常是表示与符号表各项关联的名称的字符串。
2024-01-29 18:49:30
623
原创 Android中ELF文件结构浅析(三)
在目标文件中可以包含很多“节”(section),所有这些“节”都登记在一张称为 “节头表”(section header table)的数组里。通过每一个表项可以定位到对应的节。
2024-01-25 16:35:43
1386
1
原创 Android中ELF文件结构浅析(二)
根据上一篇的 elf header 分析,我们知道program header table 的起始位置是 0x40,其中每个表项的大小相同。上图黑色背景的内容是和蓝色背景的内容都是程序头表的表项。
2024-01-24 18:29:54
1539
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人