我使用ida open classes.dex,它显示

CODE:00189570                 invoke-virtual                  {v0, v1, menu}, <void MenuInflater.inflate(int, ref) imp. @ _def_MenuInflater_inflate@VIL>


我不明白行尾的@VIL,这是什么?
完整的代码

//MainActivity.java
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }


完整的ida视图

public boolean ro.rotry.MainActivity.onCreateOptionsMenu(
CODE:00189564       android.view.Menu menu)
CODE:00189564 this = v2
CODE:00189564 menu = v3
CODE:00189564                 .prologue_end
CODE:00189564                 .line 34
CODE:00189564                 invoke-virtual                  {this}, <ref MainActivity.getMenuInflater() imp. @ _def_MainActivity_getMenuInflater@L>
CODE:0018956A                 move-result-object              v0
CODE:0018956C                 const/high16                    v1, 0x7F0D0000
CODE:00189570                 invoke-virtual                  {v0, v1, menu}, <void MenuInflater.inflate(int, ref) imp. @ _def_MenuInflater_inflate@VIL>
CODE:00189576                 .line 35
CODE:00189576                 const/4                         v0, 1
CODE:00189578
CODE:00189578 locret:
CODE:00189578                 return                          v0
CODE:00189578 Method End


更新

这是我的[完整的android应用代码,https://github.com/roroco/try_the_complex/tree/understand-@VIL]

最佳答案

我发现classes.dex中的所有方法都有/@[VIZL]+/,我认为它非常相似[罗马数字(https://en.wikipedia.org/wiki/Roman_numerals),我猜@VIL的意思是“在V(5)I(1)L(50)地址”,并且在ida函数窗口中,它存在@ZL,“ Z”表示0

08-18 05:10