-
Notifications
You must be signed in to change notification settings - Fork 8
Automatically detect proper libC #4
Comments
An ELF file only specifies the C library file name, not its full path. Identifying the exact C library file for a particular ELF file without running it is a fairly complex issue, because that identification depends on the behavior of the dynamic loader. Debian takes advantage of this situation to implement its multi-arch feature, where multiple C libraries for different architectures can be installed on the system, and selecting which one is actually loaded for a particular executable can go through a complex process. The Running an executable in order to figure out what C library it actually loads is, by design, not an acceptable solution for this project. If you can think of an approach that could be used to solve this issue, then please share it, and it might end up making this project better for everyone. Keep in mind that this project DOES NOT trust input binaries. |
This might be entirely irrelevant, but... $ relro=$(readelf -l /bin/bash | grep -i relro -q; echo $?) ...and so on. |
I don't understand what you're trying to say. Can you elaborate? |
I was replying to...
The snippet above is a crude parsing of Perhaps it can be used in the similar manner to check the |
The GNU version specifies symbol versions, so the linker can resolve multiple symbols with the same name implementing different versions of the same API. It has nothing to do with the C library file. It does not indicate even the version of the C library, only a lower limit.
I don't know how to go from a minimum version of the C library, to a file path. |
Version 1.3.0 now tries to detect the full path of the C library by reading the dynamic loader cache. |
Feature-request, not a bug.
Compiling from 27beefd, it seems like the application is failing to automatically process pretty much any ELF I supply it with.
System:
The text was updated successfully, but these errors were encountered: