【发布时间】:2018-06-02 09:59:08
【问题描述】:
我尝试使用this syscall macro for arm_64
它适用于 SYS_open、读取和关闭。我可以正常看到文件内容。
之后,Android APK 崩溃并显示以下消息:
A/libc:检测到堆栈损坏 A/libc:致命信号 6 (SIGABRT) 在 0x00007689 (code=-6), 线程 32141 (Thread-2910)
有人知道怎么解决吗?
【问题讨论】:
-
你能发一个minimal reproducible example这个吗?代码以及你是如何编译它的?除非您通过将错误的指针传递给
read来创建缓冲区溢出,否则这将如何破坏堆栈并不明显。 -
@PeterCordes 嘿彼得,我期待您在另一个线程(聊天)中的回答,我已经在那里写了详细信息。我今天准备一个最小的例子。
-
我没有无限的时间(很遗憾)。如果我能解决这个问题,我会在你的另一个问题的答案中添加细节,而不是埋在某个地方的聊天中。如果您的另一个问题首先说“C++”,我不会只给您一个 C 答案。
-
@PeterCordes 我知道,对不起。但我需要一点帮助。最小代码:godbolt.org/g/KFpQyf,但它给出了一些注册错误。我已经在 Android NDK for arm_64 中尝试过这个,它可以编译
-
有人可以帮忙吗?
标签: android assembly android-ndk system-calls