c – Whats going on in __libc_start_main?

c – Whats going on in __libc_start_main?

The first block, ending in @plt, is the procedure linkage table (https://stackoverflow.com/a/5469334/994153). The jmp *0x8049658 is an indirect branch instruction, so it actually is jumping to __libc_start_main wherever it actually ends up getting loaded in RAM at runtime.

The real RAM address of __libc_start_main is found in the DYNAMIC RELOCATION RECORDS table, which is created in RAM by the dynamic loader when the program is loaded.

c – Whats going on in __libc_start_main?

Leave a Reply

Your email address will not be published.