[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