fix bad sub register block address calculation!!!

This commit is contained in:
Ryan Fleury
2026-06-14 20:20:52 -07:00
parent 7f985b35f3
commit eb87cb053e
+2 -2
View File
@@ -359,7 +359,7 @@ pe_x64_uwnd_step(Arch arch, MemoryMap *memory_map, UWND_ModuleInfo *module_info,
PE_UnwindGprRegX64 gpr_reg = (inst_byte - 0x58) + (rex & 1)*8; PE_UnwindGprRegX64 gpr_reg = (inst_byte - 0x58) + (rex & 1)*8;
X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(gpr_reg); X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(gpr_reg);
Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code]; Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code];
U64 *reg_ptr = (U64 *)((U8 *)&regs + reg_rng.min); U64 *reg_ptr = (U64 *)((U8 *)regs + reg_rng.min);
reg_ptr[0] = value; reg_ptr[0] = value;
regs->rsp = sp + 8; regs->rsp = sp + 8;
} }
@@ -428,7 +428,7 @@ pe_x64_uwnd_step(Arch arch, MemoryMap *memory_map, UWND_ModuleInfo *module_info,
PE_UnwindGprRegX64 gpr_reg = (modrm & 7) + (rex & 1)*8; PE_UnwindGprRegX64 gpr_reg = (modrm & 7) + (rex & 1)*8;
X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(gpr_reg); X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(gpr_reg);
Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code]; Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code];
U64 *reg_ptr = (U64 *)((U8 *)&regs + reg_rng.min); U64 *reg_ptr = (U64 *)((U8 *)regs + reg_rng.min);
U64 reg_value = reg_ptr[0]; U64 reg_value = reg_ptr[0];
// rjf: read immediate // rjf: read immediate