【问题标题】:IDA Assembly change jump destinationIDA 程序集更改跳转目的地
【发布时间】:2015-03-26 02:54:31
【问题描述】:

我是逆向工程的新手,我正在尝试改变一个

__text:001C2BE4                 jz      loc_1C3180

跳转到

__text:001C3180 loc_1C3180:

跳转到另一个子程序。 (__text:00128DC0 sub_128DC0:)

但是,我还不明白如何执行此操作。我可以通过编辑十六进制值来更改程序集,但由于 loc_* 只是 IDA 给子例程的名称,我不知道该怎么做。

有人可以解释如何更改jz 的目的地吗?

谢谢。

【问题讨论】:

    标签: assembly x86 reverse-engineering disassembly ida


    【解决方案1】:

    事实证明,loc_1C3180 不是 just a name given to the subroutine by IDA - 实际上它是直接从被跳转到的loc-ation 的(图像相对)地址派生的,即在这种情况下是0x1C3180

    jz 后跟一个(在这种情况下)有符号的 32 位偏移量,如果满足条件,它将添加到指令指针中。

    要使用的带符号偏移量可以使用以下公式计算(注意:可能会回绕)

    JumpOffset = Address of jump target - (Address of Jump instruction + 5)
    

    +5 出现是因为这是 jz 指令的长度,包括偏移量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2017-07-08
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 2011-07-02
      相关资源
      最近更新 更多