【发布时间】:2019-10-23 11:56:34
【问题描述】:
我开始涉足逆向工程,正在使用 IDA Pro 并正在反汇编一个二进制文件。
我正在尝试查找我正在使用的 C 程序的 main 函数的内存地址。
但是,我看到 IDA 中有一个函数用于:
main 和 __libc_start_main
我看过this post,但恐怕我还是不明白。谁能帮我理解两者之间的区别,哪个是哪个?
谢谢!
【问题讨论】:
标签: c disassembly decompiling ida
我开始涉足逆向工程,正在使用 IDA Pro 并正在反汇编一个二进制文件。
我正在尝试查找我正在使用的 C 程序的 main 函数的内存地址。
但是,我看到 IDA 中有一个函数用于:
main 和 __libc_start_main
我看过this post,但恐怕我还是不明白。谁能帮我理解两者之间的区别,哪个是哪个?
谢谢!
【问题讨论】:
标签: c disassembly decompiling ida
首先调用__libc_start_main,然后调用main。前者是平台的一部分,会进行一些大多数人甚至没有意识到正在发生的初始化,例如准备线程系统。后者是用户程序的入口点,包含“常规”代码。
【讨论】:
__libc_start_main 做的事情之一是链接任何include 文件,因为这发生在我的代码中的main 函数之前?
main 之前)。
main 返回,__libc_start_main 以返回值作为状态退出。