主要和 __libc_start_main 之间的区别

Difference between main and __libc_start_main

我开始进行逆向工程,正在使用 IDA Pro 并正在反汇编二进制文件。

我正在尝试查找我正在使用的 C 程序的 main 函数的内存地址。

但是,我看到 IDA 中有一个函数用于: main__libc_start_main

我看过this post,但恐怕还是不明白。谁能帮我了解一下两者的区别,哪个是哪个?

谢谢!

__libc_start_main 首先被调用,然后调用 main。前者是平台的一部分,并进行一些大多数人甚至没有意识到正在发生的初始化,例如准备线程系统。后者是用户程序的入口点,包含 "regular" 代码。