- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 smali github 上问过这个问题,但这可能是一个更好的地方再问一次。
我观察到两个我想问的奇怪的代码反编译案例。该代码是在 Windows 10 上使用 apktool 2.4.1 对 apk 进行反编译的,这两个问题都与确定这在 smali 语言中是否合法以及如何以逻辑和编程方式(使用解析器)进行处理有关。
.class public final Likev2/network/sdk/network/tools/VpnBuilderHelper;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Likev2/network/sdk/network/tools/VpnBuilderHelper$a;
}
.end annotation
# instance fields
.field public a:Landroid/net/VpnService$Builder;
.field public final a:Landroid/net/VpnService;
.field public a:Likev2/network/sdk/network/tools/VpnBuilderHelper$a;
.field public b:Likev2/network/sdk/network/tools/VpnBuilderHelper$a;
# direct methods
.method public constructor <init>(Landroid/net/VpnService;)V
.locals 0
if-eqz p1, :cond_0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
...
如果您观察前三个实例字段,所有三个都具有相同的名称“a”。它们也有不同的类型。最初,我在想这可能是从父类(super class)中隐藏成员的情况,但是这个父类(super class)的父类(super class)是普通的对象。
...
# virtual methods
.method public final -deprecated_javaName()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lb0/m0;->javaName:Ljava/lang/String;
return-object v0
.end method
...
这里有问题的方法名称是'-deprecated_javaName'。考虑到“-”字符,这是一个合法名称吗?我在谷歌上搜索,发现只有一个地方提到了这个名字,这是在下面的代码中:
https://jar-download.com/artifacts/com.squareup.okhttp3/okhttp/4.2.2/source-code/okhttp3/CipherSuite.kt
...
@JvmName("-deprecated_javaName")
@Deprecated(
message = "moved to val",
replaceWith = ReplaceWith(expression = "javaName"),
level = DeprecationLevel.ERROR)
fun javaName(): String = javaName
...
我正在使用自定义 antlr 脚本解析 smali,该脚本将函数名称设置为始终以字母开头并且在此字符上失败。
最佳答案
field_id_items
包括被引用字段的名称和类型。因此,在同一个类中拥有多个具有相同名称但类型不同的字段是完美的。由于字段引用始终包括名称和类型,因此对于引用哪个字段没有歧义。-deprecated_javaName
是一个完美的 dex 成员名称 :)关于android - 关于使用 apktool 从 apk 反转的特殊 smali 类的两个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63728360/
我在 smali 中有这行代码 :cond_2 sput-boolean v11, Lcom/geo/main/MainActivity;->mLARGE:Z 我想直接给v11赋一个True值 我该怎
我收到以下 dalvikvm 验证程序错误: Line 1041: W/dalvikvm( 2610): VFY: register1 v5 type 13, wanted 5 Line 1042:
我需要一个额外的寄存器来在 smali 方法中存储一个字符串。我知道 smali 代码中的寄存器逻辑(参见 https://github.com/JesusFreke/smali/wiki/Regis
.method private a()Landroid/content/Intent; .locals 5 .prologue .line 297 :try_start_0 iget-object v
我需要将此指令转换为 smali 代码: Uri uri = Uri.parse("http://www.google.com"); // missing 'http://' will cause c
我正在尝试生成基于 .smali 文件的调用图。然而,我遇到了一个令人困惑的案例如下: .super Landroid/graphics/drawable/Drawable; .source "SBa
.method public c()Ljava/lang/String; .locals 3 const/4 v1, 0x0 const-string v0, "wifi" invoke-virtua
我有一个 smali 代码,我想在其中的一开始就注入(inject)一个 sleep 函数。为此,我创建了一个只是 hibernate 的应用程序,生成了它的 smali 并作为 onCreate 方
按照 smali 代码,通过单击查看按钮在 web View 中查看 url。但链接后面是结果 url 中的 PackageName 。那么我应该在以下 smali 代码中更改什么才能仅转到链接?
我注入(inject)了这段代码invoke-static {p0}, Lcom/outfit7/talkingtomcandyrun/Toast;->show(Landroid/content/Co
smali 中的这一行是做什么的?我一直在谷歌上搜索 .restart 的东西,但没能找到任何关于它的信息。 .restart local v3 #i:I 最佳答案 这相当于 dex 文件
我使用 baksmali 反汇编了一个 Android 应用程序,并研究了生成的smali代码。其中一个类包含以下行: .local v1, "future":Lcom/android/volley/
我对一些 android apk 进行了逆向工程,以添加一些用于功能测试的工具。我想知道给定一个 smali,如下所示,我该如何添加类似 的内容 Log.e(TAG, "some descritpio
我一直在研究 smali 中的一个简单方法(此处来自 Android),我想知道如何对它做一些简单的事情,比如 return false。我一直在尝试通过与 Java 对应物比较和一些示例来理解它,我
是否存在 .smali 文件的解析器? 让我更明确一点: 我需要编写一个程序。 这个程序的输入是一个.smali文件。 这个程序(感谢我的解析器寻找 ) 应该在每次声明全局变量时捕获。 下一步添加一些
我知道如何从函数返回 TRUE bool 值: .locals 1 const/4 v0, 0x1 return v0 现在我需要返回一个整数(10000 值)。怎么办? 最佳答案 下面的方法 pub
我使用 apktool 将 .dex 解码为 smali,但我找不到编辑 DEBUG 的方法,DEBUG 是一个默认为 false 的 boolean 值(在 Java 字节码编辑器中读取 0x000
我对apk文件进行逆向工程,发现AlertDialog is cancelable false invoke-virtual {v0, v4}, Landroid/app/AlertDialog$Bu
我正在逆向一个 Android 应用程序。我想修改并重建它。我使用APK Studio(这几乎是 apktool 的 GUI 版本)来获取 apk 中的文件。现在阅读 smali 代码非常困难。 我还
序言 我正在尝试使用 dex 文件的 Smali/Baksmali 汇编器/反汇编器来了解 DalvikVM 指令。 问题 来自这个java文件 package gd; class Hello {
我是一名优秀的程序员,十分优秀!