我一直在玩ptrace
,看看我是否可以在C程序中修改简单全局整数的值。我知道我可以使用PEEKDATA
和POKEDATA
来完成此任务。但是,这些需要有关变量存储在内存中以便运行的信息。我用Google搜索的所有教程似乎都建议最流行的方法是手动使用nm
或objdump
来获取此地址。有没有办法以编程方式更多地执行此操作而不事先了解变量地址甚至变量名称(如下所示):
int i=0; //Assume i is defined globally and is the first integer defined in the code
//Code to modify i (this is what I'm looking for)
//More code here
//Print modified value of i
//Restore value of i later on
我还考虑过拦截可能将整数作为参数的系统调用,虽然这样可行,但我想知道是否有更强大的方法来实现这一点。