Commit 2217a3b3 authored by swift_gan's avatar swift_gan Committed by swift_gan

[NativeHook]fix mov for/to SP

parent 3b441fc3
...@@ -243,8 +243,12 @@ void AssemblerA64::Msr(SystemRegister &sysReg, RegisterA64 &rt) { ...@@ -243,8 +243,12 @@ void AssemblerA64::Msr(SystemRegister &sysReg, RegisterA64 &rt) {
Emit(reinterpret_cast<Unit<Base> *>(new INST_A64(MSR_MRS)(INST_A64(MSR_MRS)::MSR, sysReg, rt))); Emit(reinterpret_cast<Unit<Base> *>(new INST_A64(MSR_MRS)(INST_A64(MSR_MRS)::MSR, sysReg, rt)));
} }
void AssemblerA64::Mov(RegisterA64 &rd, RegisterA64 rt) { void AssemblerA64::Mov(RegisterA64 &rd, RegisterA64& rt) {
Emit(reinterpret_cast<Unit<Base> *>(new INST_A64(MOV_REG)(rd, rt))); if (rd == SP || rt == SP) {
Add(rd, Operand(&rt, 0));
} else {
Emit(reinterpret_cast<Unit<Base> *>(new INST_A64(MOV_REG)(rd, rt)));
}
} }
......
...@@ -87,7 +87,7 @@ namespace SandHook { ...@@ -87,7 +87,7 @@ namespace SandHook {
void Msr(SystemRegister &sysReg, RegisterA64& rt); void Msr(SystemRegister &sysReg, RegisterA64& rt);
void Mrs(SystemRegister &sysReg, RegisterA64& rt); void Mrs(SystemRegister &sysReg, RegisterA64& rt);
void Mov(RegisterA64& rd, RegisterA64 rt); void Mov(RegisterA64& rd, RegisterA64& rt);
public: public:
......
...@@ -93,8 +93,8 @@ void do1() { ...@@ -93,8 +93,8 @@ void do1() {
do2(); do2();
} }
void breakCallback(REG regs[]) { void breakCallback(REG* regs) {
LOGE("breakCallback"); LOGE("breakCallback = %d", regs[1]);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment