如何在 IDA 中使用 JMP?

How to use JMP in IDA?

.text:004430FE                 jz      short loc_44311B
.text:00443100                 push    30h             ; uType
.text:00443102                 push    offset Athingy; "Hello"
.text:00443107                 push    offset AnotherThingy; "Works"
.text:0044310C                 call    sub_438090
.text:00443111                 add     esp, 0Ch
.text:00443114                 push    0
.text:00443116                 call    sub_44C424
.text:0044311B
.text:0044311B loc_44311B:                             ; CODE XREF: sub_442C70+48Ej
.text:0044311B                 mov     ecx, 0FAh
.text:00443120                 mov     esi, offset buf
.text:00443125                 lea     edi, [ebp+var_3FC]
.text:0044312B                 rep movsd
.text:0044312D                 push    offset aTest; "test"
.text:00443132                 lea     eax, [ebp+var_3FC]
.text:00443138                 push    eax
.text:00443139                 call    sub_465450
.text:0044313E                 add     esp, 8

如果我想将 jz(在顶部)更改为 jmp 并将其设置为 add esp, 8。我怎样才能这样做?

我知道如何给程序打补丁并转到 assemble,但是关于 jmp 我会输入什么?

您可以在英特尔的手册中查找短jmp 的操作码。我手边没有它,但如果没记错的话,它是 0xEB。

用于计算跳转偏移量的公式为(目标地址 - 跳转指令地址 - 2)。 (2 是因为这是短跳转指令的长度,包括它的参数 - CPU 将偏移量添加到跳转指令之后的指令指针值)。