Shift saved values down the stack by 8 bytes
MODIFY
frida_mode/src/instrument/instrument_x64.c
frida_mode/src/instrument/instrument_x64.c
@@ -68,10 +68,10 @@ typedef struct {
// sahf
// mov rax,QWORD PTR [rsp-0x80]
- uint8_t mov_rax_rsp_80[5];
- uint8_t lahf;
uint8_t mov_rax_rsp_88[8];
- uint8_t mov_rbx_rsp_90[8];
+ uint8_t lahf;
+ uint8_t mov_rax_rsp_90[8];
+ uint8_t mov_rbx_rsp_98[8];
uint8_t mov_eax_prev_loc[6];
uint8_t mov_prev_loc_curr_loc_shr1[10];
@@ -83,10 +83,10 @@ typedef struct {
uint8_t adc_bl_0[3];
uint8_t mov_ptr_rax_rbx[2];
- uint8_t mov_rsp_90_rbx[8];
- uint8_t mov_rsp_88_rax[8];
+ uint8_t mov_rsp_98_rbx[8];
+ uint8_t mov_rsp_90_rax[8];
uint8_t sahf;
- uint8_t mov_rsp_80_rax[5];
+ uint8_t mov_rsp_88_rax[8];
} afl_log_code_asm_t;
@@ -102,10 +102,10 @@ typedef union {
static const afl_log_code_asm_t template =
{
- .mov_rax_rsp_80 = {0x48, 0x89, 0x44, 0x24, 0x80},
- .lahf = 0x9f,
.mov_rax_rsp_88 = {0x48, 0x89, 0x84, 0x24, 0x78, 0xFF, 0xFF, 0xFF},
- .mov_rbx_rsp_90 = {0x48, 0x89, 0x9C, 0x24, 0x70, 0xFF, 0xFF, 0xFF},
+ .lahf = 0x9f,
+ .mov_rax_rsp_90 = {0x48, 0x89, 0x84, 0x24, 0x70, 0xFF, 0xFF, 0xFF},
+ .mov_rbx_rsp_98 = {0x48, 0x89, 0x9C, 0x24, 0x68, 0xFF, 0xFF, 0xFF},
.mov_eax_prev_loc = {0x8b, 0x05},
.mov_prev_loc_curr_loc_shr1 = {0xc7, 0x05},
@@ -116,10 +116,10 @@ static const afl_log_code_asm_t template =
.adc_bl_0 = {0x80, 0xd3, 0x00},
.mov_ptr_rax_rbx = {0x88, 0x18},
- .mov_rsp_90_rbx = {0x48, 0x8B, 0x9C, 0x24, 0x70, 0xFF, 0xFF, 0xFF},
- .mov_rsp_88_rax = {0x48, 0x8B, 0x84, 0x24, 0x78, 0xFF, 0xFF, 0xFF},
+ .mov_rsp_98_rbx = {0x48, 0x8B, 0x9C, 0x24, 0x68, 0xFF, 0xFF, 0xFF},
+ .mov_rsp_90_rax = {0x48, 0x8B, 0x84, 0x24, 0x70, 0xFF, 0xFF, 0xFF},
.sahf = 0x9e,
- .mov_rsp_80_rax = {0x48, 0x8B, 0x44, 0x24, 0x80},
+ .mov_rsp_88_rax = {0x48, 0x8B, 0x84, 0x24, 0x78, 0xFF, 0xFF, 0xFF},
}

Shift saved values down the stack by 8 bytes