#include<stdio.h>
const char my_interp[] __attribute__((section(".interp"))) = "/lib/ld-linux.so.2";
int entry() //entry is the entry point instead of main
{
exit(0);
}
“.interp” 让你调用外部的共享库. exit(0)会作为程序的执行
把上面的程序编译成可以执行的动态库
$ gcc -shared -fPIC -e entry test_main.c -o test_main.so
$ ./test_main
当然了,你也可以编译完成以后再修改
$ cat > program.c
#include <stdio.h>
int entry()
{
return 0;
}
1.编译成.o文件
$ gcc -c program.c -o program.o
2.重新定义入口entry
成main
$ objcopy --redefine-sym entry=main program.o
3.使用gcc编译成新的程序
$ gcc program.o -o program