smali 获取values 中string 数据
时间: 2024-01-24 15:17:07 浏览: 120
在 Smali 中,你可以使用 `const-string` 指令来获取字符串常量值。假设你要获取 `strings.xml` 文件中的 `app_name` 字符串,可以按照以下步骤进行操作:
1. 打开 `strings.xml` 文件,找到 `app_name` 字符串的资源 ID。它应该类似于 `@string/app_name`。
2. 在 Smali 代码中,使用 `sget-object` 指令获取字符串资源的引用:
```
sget-object v0, Lcom/example/myapp/R$string;->app_name:I
```
3. 然后使用 `invoke-virtual` 指令调用 `Resources.getString()` 方法获取字符串值:
```
invoke-virtual {p0, v0}, Landroid/content/Context;->getString(I)Ljava/lang/String;
```
完整的代码示例:
```
const-string v1, "app_name"
const/4 v2, 0x0
invoke-virtual {p0, v1, v2}, Lcom/example/myapp/R$string;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v0
sget-object v1, Lcom/example/myapp/R$string;->app_name:I
invoke-virtual {p0, v0}, Landroid/content/Context;->getString(I)Ljava/lang/String;
```
注意,上面的示例假设你的应用程序包名为 `com.example.myapp`。如果你的包名不同,你需要相应地修改代码中的包名。
阅读全文