【发布时间】:2014-04-06 22:21:06
【问题描述】:
假设我有一个像这样的小程序:
int i = 0;
int *pi = &i;
int **ppi = π
int main(int argc, char *argv[]) {
return i + *pi + **ppi;
}
在程序加载/设置期间设置pi 和ppi 时,有没有办法拦截它们的初始化?我想挂钩它们的初始化,以便我可以重写指针值并插入一些我自己的位,如果可能的话,在 main() 运行之前。所有这些都应该是透明和自动化的。
我查看了 LD 审计界面 (link),但它只提供函数回调。
【问题讨论】:
-
在某些环境中,全局变量是作为程序字节的一部分分配的,并且已经在加载映像中初始化。
-
你真正想做什么? (这可能有助于提供答案。)
-
@dvnrrs:编辑了问题:我想在它们被初始化时捕捉到,这样我就可以在指针值中添加一些自定义位。
-
在
main开头这样做有什么问题? -
如果你使用
gcc,那么你可以。签出this。
标签: c pointers initialization