【发布时间】:2022-09-29 10:36:50
【问题描述】:
我的目标是使用ptrace 设置在 64 位处理器上运行 32 位 ARM 可执行文件的进程的程序计数器(和其他寄存器)。
如果这是一个 64 位可执行文件,那么我可以使用 struct user_pt_regs 的 pc 字段(在 asm/ptrace.h 中定义)。
对于 32 位可执行文件,我将使用哪种结构?我看到struct user_regs(在 sys/user.h 中)定义为
struct user_regs {
unsigned long uregs[18];
};
我阅读了this question 的答案(尽管作者承认这是一个有根据的猜测),这表明使用struct user_regs 中的uregs[15]。但是,由于我实际上有一个 64 位系统,这仍然适用于我的情况吗?
标签: c arm cpu-registers arm64 ptrace