Android SO 文件结构及readelf命令

本文介绍了Android共享库SO文件的结构,并详细解析了如何使用readelf命令进行分析,包括ELF Header、Program Header、Section和Dynamic Section等关键信息的查看,以及Relocation和Text Section的内容。
摘要由CSDN通过智能技术生成

   0x00 Android SO 文件结构

    so文件结构详细的分析,请看Android逆向之旅---SO(ELF)文件格式详解,这里就不重复造车轮子了。

    我们待分析的so已经上传到csdn,下载地址:http://download.csdn.net/detail/jltxgcy/9602803


   0x01 readelf命令

   1.1 so文件整体图

   


    1.2 readelf文件位置

    Android下readelf位于android-ndk-r12/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin中,文件名称为arm-linux-androideabi-readelf


    1.3 read ELF Header    

    arm-linux-androideabi-readelf -h ~/Public/libPLTUtils.so

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x0
  Start of program headers:          52 (bytes into file)
  Start of section headers:          12664 (bytes into file)
  Flags:                             0x5000200, Version5 EABI, soft-float ABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         9
  Size of section headers:           40 (bytes)
  Number of section headers:         26
  Section header string table index: 25

    

    1.4 read Program Header

    arm-linux-androideabi-readelf -l ~/Public/libPLTUtils.so 

Elf file type is DYN (Shared object file)
Entry point 0x0
There are 9 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x00000034 0x00000034 0x00120
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值