The format itself is incredibly terse, designed for a world where disk space and network bandwidth was at an extreme premium. Modifying the format is hard, you often have to zero out sections and add new ones since it is packed so tightly. There is also no self-describing schema. ELF itself is a very generic format that supports sections of data that by convention are interpreted in specific ways but the format does not enforce it.
Sounds like a great use case for:
1. ELF file to SELF file
2. modify SELF file
3. SELF file to ELF file
Is it? ELF's specified enough that I can't imagine that it's too hard to avoid checksum mismatches between traditionally-modified ELF binaries and ELF-SELF-ELF-modified ones.
Like, it's an ugly spec, but it's clear enough on ordering/layout that I think checksumming is probably tractable to get parity for.
Comments
Sounds like a great use case for:
nightmare for anything that relies on checksum based security :D
Is it? ELF's specified enough that I can't imagine that it's too hard to avoid checksum mismatches between traditionally-modified ELF binaries and ELF-SELF-ELF-modified ones.
Like, it's an ugly spec, but it's clear enough on ordering/layout that I think checksumming is probably tractable to get parity for.