Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在 Linux 中运行一些基准测试,并且正在寻找程序已完成加载并开始运行的一些迹象。期望main()总是相同是否合理EIP?
main()
EIP
是否依赖于语言EIP?main()它依赖于编译器吗?
有什么EIP程序总是可以预期开始的吗?
没有。在 C 中,入口点实际上是_start,它来自libc; _start进行一些libc初始化,然后调用main.
_start
libc
main
main只是一个常规功能。链接器可以选择在过程映像中随意重新排列它。此外,对于可执行文件开头的重定位表等内容,该.text部分的开头甚至可能不是恒定的。哎呀,如果您正在汇编程序中编写程序,main甚至可能不存在。
.text
但是,始终可以信任程序从其 ELF 标头中声明的入口点地址开始(假设它是 ELF 可执行文件)。所以,用那个。readelf可以告诉你价值。
readelf