I am beginning to get into the reverse engineering and am using IDA Pro and am working on deassembling a binary.
I am trying to find the memory address for the main
function of the C program I am working with.
However, I see that there is a function in IDA for:
main
and for __libc_start_main
I have read this post but I am afraid I still don't understand. Can someone help me understand the differences between the two, and which one is which?
Thanks!
__libc_start_main
is called first, and it invokes main
. The former is part of the platform and does some initialization that most people don't even realize is happening, such preparing the threading system. The latter is the entry point of the user program and contains the "regular" code.