loc*_*cct 5 android intellij-idea
我目前正在学习调试 smali 代码,我正在使用这个工具(https://github.com/devadvance/rootinspector)作为例子。
在一个代码片段中,它是这样写的
public boolean checkRootMethod3() {
Log.d(Main.TAG, "check4");
try {
File file = new File("/system/xbin/su");
return file.exists();
} catch (Exception e) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
对应的smali代码如下
.method public checkRootMethod3()Z
.locals 4
.prologue
.line 76
const-string v2, "RootInspector"
const-string v3, "check4"
invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 78
:try_start_0
new-instance v1, Ljava/io/File;
const-string v2, "/system/xbin/su"
invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 79
.local v1, "file":Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->exists()Z
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
move-result v2
.line 81
.end local v1 # "file":Ljava/io/File;
:goto_0
return v2
Run Code Online (Sandbox Code Playgroud)
在 Intellij 调试器的变量窗口中,当我逐步执行代码时,我只能看到“this”对象和 File 变量。
有什么方法可以直接修改虚拟寄存器(v1、v2 等),因为其中一个虚拟寄存器保存返回值。
| 归档时间: |
|
| 查看次数: |
255 次 |
| 最近记录: |