top | item 37523008

(no title)

22SAS | 2 years ago

Any good resources to learn about that?

discuss

order

emidln|2 years ago

The source code to the kernel's elf "binfmt"[0] is very readable. The elf binfmt is registered (along with a few others like `binfmt_misc`) and you get dispatched there via `exec_binprm`[1] which is invoked by the `execve` syscall[2]. When loading a shared library, you also dispatch to a binfmt via the `uselib`[3] syscall.

[0] https://github.com/torvalds/linux/blob/9fdfb15a3dbf818e06be5...

[1] https://github.com/torvalds/linux/blob/9fdfb15a3dbf818e06be5...

[2] https://github.com/torvalds/linux/blob/9fdfb15a3dbf818e06be5...

[3] https://github.com/torvalds/linux/blob/9fdfb15a3dbf818e06be5...

duped|2 years ago

The book "Linkers an Loaders" by Levine is the Bible on the subject

Findecanor|2 years ago

It used to be available online for free at <https://www.iecc.com/linker/>, but isn't any more. You could get it from archive.org though, and I think I've seen mirrors in other formats on Hacker News in previous discussions about the book.

ndesaulniers|2 years ago

Yes; but there's also descriptions of legacy container formats no one cares about any more. I still recommend it and have my own copy, I just recall skipping over quite a bit of material.

yrro|2 years ago

I've found that searching for stories with ELF in the title then trawling through the comments for the links is really informative.

eddtests|2 years ago

I just hope they catch this Sauron before it’s too late…