ELF分析(2)

 

执行时不是特别清楚,先从静态的链接视图开始分析:

链接视图:

这几个就可以得到section的头部表格:

根据上面的section header里面的内容,得到:

 

,再结合IDA中的so。

section header将整个so文件分成了若干的section

里面可能比较重要的是 .dynstr .hash .plt .text .rodata .got

其中.text是代码段,程序执行的部分 .rodata是纯数据

.comment .not.gun.gold-ve .ARM.attributes .shstrtab,上面Addr地址为0x00000.因此不存放在内存中,在执行视图,或者IDA中不存在。但可以直接用010Edit查看。

 

链接视图,在实际执行中并不存在,因此ELF header中的关于segment的部分都可以修改。

 

 

执行视图:

 

根据ELF headers中的偏移,计算出program header的位置,以及数量和单个的长度。

 

根据program headers和section header的结合,得出:

 

复制网上一个图片:

得出

a. 一个节区可以同时属于多个段区b. 一个段区可以包含多个节区c. 段区由多个节区组成时,这些节区是连续的d. 我们看到.comments、.note.gnu.gold-ve、.ARM.attributes、.shstrtab 并没有被映射到段,因此可以猜测这些区间的内容修改不会影响程序的执行。

 

参考链接:

https://blog.csdn.net/jiangwei0910410003/article/details/49336613

https://www.jianshu.com/p/9ce47c938706

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值