如何使用g ++覆盖__libc_start_main之类的入口点

问题描述 投票:1回答:1

我们想在用户的主要功能之前注入一些功能,并发现LD_PRELOAD覆盖__libc_start_main将对带有gcc的C程序有效。

但是,它不适用于默认情况下可能使用g ++的cpp文件。我们已经转储了符号,并发现了gcc和g ++中的二进制文件之间的区别。用g++编译后,libc start主函数被重命名,我们不知道如何覆盖它。

enter image description here

gcc g++
1个回答
0
投票

我可以使用__attribute__((constructor))而不是覆盖__libc_start_main在主要功能之前添加逻辑。

这可能是g++gcc之间的实现方式的不同,我们可能不会用g++的当前实现方式覆盖它。如果我错了,请发表评论并通知我。

© www.soinside.com 2019 - 2024. All rights reserved.