3

Visual Studio でインライン アセンブリを使用して、特定のアドレスにジャンプしたいと考えています。私はこれを試しました:

_asm {
    jmp 0x12345678
}

しかし、コンパイラは、「オペコードはこの型のオペランドを使用しません」と言います。

ダイレクトジャンプってどうやるの?

4

3 に答える 3

0

モジュールにリンカ オプション /DYNAMICBASE:NO /FIXED /BASE:0x[your base address] を使用している場合は、次を使用できます。

_asm
{
    jmp label1 + 0xFFFFFF
label1:
}

逆アセンブリでコンパイルすると、次のようになります。

    _asm
    {
        jmp label1 + 0xFFFFFF
040117DC E9 FF FF FF 00       jmp         050117E0  
    label1:
    }

その後、いじって、宛先アドレスへの E9 ジャンプを取得できます。

于 2015-09-18T17:36:03.470 に答える