BinaryAnalysisPlatform/bap

implement support for R_X86_64_GLOB_DAT relocations

ivg opened this issue · 1 comments

ivg commented

Binaries on Manjaro do not employ R_X86_64_JUMP_SLOT relocations but are calling external functions via R_X86_64_GLOB_DAT which we in general support through the relocatable plugin, but either it is not triggered in (I think it doesn't enter the play for non-relocatable files, which is probably wrong) or is not detecting them correctly.

Additionally, obdump symbols provider (and the future r2 provider) could handle them too. While objdump itself is confused with these relocations, we can still get them using the -DRz option, which will output them as

 9f78: R_X86_64_GLOB_DAT malloc@GLIBC_2.2.5

echo.zip

Originally posted by @Enkelmann in #1131 (comment)

ivg commented

@gitoleg, I want you (after you will finish your current tasks) and after #1119 is merged to look into your relocatable symbolizer and see if (1) it handles R_X86_64_GLOB_DAT relocations at all (I remember it was originally designed for direct jump relocations, but it could be the case that it will handle these also) and (2) if we can enable it for all binaries. Don't bother with the objdump symbolizer, I would probably look into it during #1119 or implement it later.