Skip to content

ELF.plt['unlink'] is wrong for the provided binary #2453

@cq674350529

Description

@cq674350529

Description

When tried to get the plt information from init elf with pwntools, it outputed the wrong address for some functions.

In [1]: from pwn import ELF

In [2]: init_elf = ELF("./init")

In [3]: hex(init_elf.plt["unlink"])
Out[3]: '0x42138'

Take the unlink function as an example, the outputed plt address is 0x42138. However, it's 0x41B60 shown in IDA Pro.

image

I tested it on the following environment:

  • Windows 10, pwntools 4.13.0
  • Ubuntu 20.04, pwntools 4.13.0
  • Ubuntu 20.04, pwntools 4.15.0.dev0 (installed from source)

The binary information are as follows, and added as an attachment below.

$ file ./init 
./init: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, BuildID[sha1]=b3444afb3a4dc34e2798e7d89505c1061b57683a, for GNU/Linux 3.2.0, stripped

init.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions