我需要用特定字符填充所有可用的堆栈空间,以进行分析。

首先,在C ++中是否有一种安全的方法可以在Android(可能是某些编译器特定功能)上执行此操作?如果没有,我可以假设在函数中声明的第一个变量的地址是“未使用”堆栈的“启动”?如果没有,有一种方法可以获取当前的堆栈指针,类似X86上的ESP值之类的东西?

有帮助吗?

解决方案

使用ARM,您需要考虑调用惯例,因为具有四个以上论点的功能会使它们溢出。我发现使用更安全 GCC的__builtin_frame_address。

Built-in Function: void * __builtin_frame_address (unsigned int level)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top