建立一个.so也是可执行文件

建立一个.so也是可执行文件,第1张

建立一个.so也是可执行文件

使用

-pie
option 构建共享库似乎可以为您提供所需的一切:

#include <stdio.h>int foo(){  printf("in %s %s:%dn", __func__, __FILE__, __LINE__);  return 42; }int main() {   printf("in %s %s:%dn", __func__, __FILE__, __LINE__);  return foo(); }#include <stdio.h>extern int foo(void);int main() {   printf("in %s %s:%dn", __func__, __FILE__, __LINE__);  return foo(); }$ gcc -fPIC -pie -o pie.so pie.c -Wl,-E$ gcc main.c ./pie.so$ ./pie.soin main pie.c:9in foo pie.c:4$ ./a.outin main main.c:6in foo pie.c:4$

PS glibc

write(3)
通过系统调用实现,因为它没有别的地方可以调用(它已经是 最低 级别了)。这与能够执行无关
libc.so.6



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4992112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存