I've been given an ELF binary file which self describes as PowerPC 64-bit. The e_entry field of the ELF header points to the beginning of a section called .opd. According to this specification, it is supposed to point to a function descriptor. The same specification states that a function descriptor consists of three doublewords (64-bit words).

However, the binary in question (available here) appears to have only two 32-bit words for each function descriptor.

So the question is, why are there 32-bit pointers in this 64-bit binary?

1 Answer 1


PS3 (cell) ABI used 64-bit registers but 32-bit pointers. Maybe this sample is from there.

P.S. section names .sceStub.text and .rodata.sceResident definitely point to Sony code (SCE= Sony Computer Entertainment)

  • Is there any (preferrably documented) way to tell that a file is a PS3 executable, as opposed to a "regular" PPC ELF file with 64-bit pointers? I see no clues in the standard ELF headers. Are there any other ways to determine this, apart from looking at those section names? Commented Apr 17, 2015 at 0:44
  • check e_ident[EI_OSABI].
    – Igor Skochinsky
    Commented Apr 18, 2015 at 14:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.