有没有办法在gdb中操作零标志?

问题描述 投票:2回答:1

我想对可执行文件进行逆向工程,并且由于strcpy函数,我希望在堆栈溢出过程中。当反汇编时,比较后有一个jne,什么时候是假代码继续退出函数,结果退出程序。如果是真的它会跳转到自定义函数,使用strcpy。我在想我必须操纵零标志,以避免调用退出函数。我的想法是正确的,如果有的话,在gdb中有一个技术可以使用吗?谢谢你的过程

x86 gdb reverse-engineering
1个回答
3
投票

我假设这是关于x86。您可以使用以下方法设置EFLAGS寄存器(包含ZF):

(gdb) set $eflags = 0

这将清除所有可以实际清除的位,包括ZF位。如果您只想清除ZF标志,可以使用其位为0x40的事实:

(gdb) set $eflags = $eflags & ~0x40

info reg eflags展示了这种操纵的效果。

© www.soinside.com 2019 - 2024. All rights reserved.