概要

関数にジャンプ(分岐)します。
ジャンプ先の関数でretをしてもジャンプ元の関数には戻ってきません。


注意点

  1. jmp 先の関数の引数の数および型は、jmp 元と同じである必要があります。
  2. jmp 先の関数の返り値の型は、jmp 元と同じである必要があります。


書式

グローバル関数

 jmp <関数の戻り値の型> <関数名>()

クラスの静的メンバ関数

 jmp <関数の戻り値の型> [<ライブラリ名、名前空間名など>]<クラス名>::<関数名>()

クラスのメンバ関数

 jmp instance <関数の戻り値の型> [<ライブラリ名、名前空間名など>]<クラス名>::<関数名>()


すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 
 
 
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
 
 
-
|
|
|
|
|
!
.assembly test{}
 
.method static void main()
{
    .entrypoint
 
        ldstr "She was "     call void class [mscorlib]System.Console::WriteLine( string )  
        jmp void abuse()
 
        ldstr ", and didn't comes back"     call void class [mscorlib]System.Console::WriteLine( string )     
    ret
}
 
.method static void abuse()
{
        ldstr "tripped"     call void class [mscorlib]System.Console::WriteLine( string )     
    ret
}

実行結果:

 She was
 tripped

C#では・・・

 表現できません;

VB.NETでは・・・

 表現できません;

トップ 編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード 新規 一覧 単語検索 最終更新 ヘルプ 最終更新のRSS xenowire
Last-modified: 2018-01-25 (木) 15:09:04