如何在dalvik bycode中理解@VIL

时间:2016-03-24 14:53:55

标签: android dalvik ida

我使用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]

1 个答案:

答案 0 :(得分:-1)

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