在 IDA Pro 中使用常量值设置 QWORD

逆向工程 艾达 调试 dll
2021-06-20 03:58:19

函数的第 3 行,我在地址 7FE875F3FE0 处有一个 QWORD,它解析为函数返回 true的值85857490416如果不是,则将该值设置为 0。

我想知道如何将此 QWORD 修改为上述数字序列,以便函数返回 true。我曾尝试组装此 LoC,但由于字节填充不匹配,它会终止该功能。

代码洞是一个选项?如果是这样,有人可以帮助我吗?或者 MOV 声明?

最近刚开始使用 RE 和 IDA Pro。

代码段

push    rbx
sub     rsp, 20h
mov     rax, cs:qword_7FE875F3FE0
mov     rbx, rcx
test    rax, rax
jnz     short loc_7FE8728D09D

loc_7FE8728D09D:
mov     [rcx], rax
xor     eax, eax
add     rsp, 20h
pop     rbx
retn

QWORD 的.data表示

.data:000007FE875F3FE0 qword_7FE875F3FE0 dq ? 
.data:000007FE875F3FE0                                         
.data:000007FE875F3FE8 db    ? ;
.data:000007FE875F3FE9 db    ? ;
.data:000007FE875F3FEA db    ? ;
.data:000007FE875F3FEB db    ? ;
1个回答

最简单的解决方案可能是将函数的第一个块修补为以下内容:

push    rbx
sub     rsp, 20h
mov     rax, 85857490416
mov     rbx, rcx

虽然mov rax, 85857490416会消耗额外的字节,但您可以删除test rax, raxjnz short loc_7FE8728D09D进行补偿。

如果它仍然不适合,那么是的,代码洞穴可能是下一个选择。