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