我花了几个小时对 apk 进行逆向工程,现在我想我陷入了困境。 我有一些方法需要修改,以便始终返回 True。对于其中一个,我设法简单地设置一个常量并返回它,但对于这些,我无法理解它。
1 - 我想这个一定很简单:
.method public getHasRight()Ljava/lang/Boolean;
.locals 1
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 1
invoke-virtual {p0}, Lcom/milibris/lib/mlkc/model/KCIssue;->realmGet$hasRight()Ljava/lang/Boolean;
move-result-object v0
return-object v0
.end method
2 - 这个我认为我需要将 p1 设置为 true,但在编译过程中我总是遇到错误。
.method public setIsFree(Ljava/lang/Boolean;)V
.locals 0
.param p1 # Ljava/lang/Boolean;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 1
invoke-virtual {p0, p1}, Lcom/milibris/lib/mlkc/model/KCIssue;->realmSet$isFree(Ljava/lang/Boolean;)V
return-void
.end method
3 - 这个,因为它没有
Ljava/lang/Boolean
我什至不确定它是否必须返回布尔值?我怎么能确定呢。无论如何,我怎样才能让它返回 true ?
.method public isConnected()Z
.locals 1
.line 1
iget-object v0, p0, Landroid/support/v4/media/MediaBrowserCompat;->a:Landroid/support/v4/media/MediaBrowserCompat$b;
invoke-interface {v0}, Landroid/support/v4/media/MediaBrowserCompat$b;->isConnected()Z
move-result v0
return v0
.end method
抱歉这个愿望清单,但我在谷歌上有太多紫色链接。 Smali 一开始很难掌握,尤其是当您不是来自 Java 世界时。
感谢您的帮助:)
thx @t.m.adam,我成功地用这个破解了 Minecraft 许可证验证