我需要填充具有特定字符的所有可用堆栈空间以进行分析。
首先,在C ++中是否有一种安全的方法可以在Android(某些编译器特定的函数)上执行此操作?如果没有,我可以假设函数中声明的第一个变量的地址是“未使用”堆栈的“开始”吗?如果没有,有没有办法获得当前的堆栈指针,如x86上的ESP值?
答案 0 :(得分:1)
使用ARM,您需要考虑调用约定,因为具有四个以上参数的函数会将它们溢出到堆栈。我觉得使用GCC's __builtin_frame_address.
更安全Built-in Function: void * __builtin_frame_address (unsigned int level)