LIEF:修改安卓.so后报 dlopen failed:has invalid shdr offset/size

  1. Start of section headers 的值必须 4 字节对齐。
  2. 使用 readelf -h lib.so 查看 Start of section headers 的值。
    ELF Header:
      Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
      Class:                             ELF64
      Data:                              2's complement, little endian
      Version:                           1 (current)
      OS/ABI:                            UNIX - System V
      ABI Version:                       0
      Type:                              DYN (Shared object file)
      Machine:                           AArch64
      Version:                           0x1
      Entry point address:               0xc6f0
      Start of program headers:          64 (bytes into file)
      Start of section headers:          381358 (bytes into file)
      Flags:                             0x0
      Size of this header:               64 (bytes)
      Size of program headers:           56 (bytes)
      Number of program headers:         9
      Size of section headers:           64 (bytes)
      Number of section headers:         25
      Section header string table index: 24
    
  3. 比如我这里是 381358,十六进制为 0x5D1AE,需要填充两字节 00 使其对齐。
  4. 对齐后的地址为 0x5D1B0,在文件偏移 0x28 处修改为相应的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值