[ILASM] .maxstack の数を増やす
.assembly extern mscorlib { } .assembly test { } .method static void Main() cil managed { ldstr "Windows 2000で" br target ldstr ".Net 4と" .method public hidebysig .maxstack 4 ldloc.1 ldloc.1 ldc.i4.s 3 |
サンプルソースコード
.Net 4 の ilasm でアセンブルする。
72 01 00 00 70 28 01 00 00 0A 38 0A 00 00 00 72 1D 00 00 70 28 01 00 00 0A 72 2D 00 00 70 28 01 00 00 0A 2A ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 2A ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 2A ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 0B 07 1F 51 5F 07 1F A2 5F 1F 01 63 60 1F 03 5A 0B 07 2A |
コード部分
赤がmain
紫がFuga10
水色がFuga
黄色がFuga2
バイナリエディタで覗いてみた所。
関数は
+00 DWORD 属性っぽい(0x30xx0000)
+04 WORD maxstack
+06 DWORD コード数
+0A DWORD 不明
みたいなヘッダが含まれている。
引数や、返り値、使うインデックスの数などを増やしても変わらないがmaxstackは関数の頭にWORD形式で埋まってることがわかった
Comments