如何在smali中将数值设置为整数类

时间:2016-10-02 02:50:21

标签: smali

我正在编辑一些小代码,我需要在游戏中更改某个货币包的价值。

.method public writeToParcel(Landroid/os/Parcel;I)V
.locals 0

invoke-static {p0, p1, p2}, Lcom/google/android/gms/games/achievement/AchievementEntityCreator;->a(Lcom/google/android/gms/games/achievement/AchievementEntity;Landroid/os/Parcel;I)V

return-void
.end method

类Landroid / os / Parcel设置为整数。我想为这个类设置一个10亿的可靠数值。每当完成一项成就时,这将授予我一个这种规模的游戏货币包裹 - 代码是相当不言自明的。那可能吗?如果是这样,怎么办呢?

注意:我不是黑客黑客利用这些知识侵犯任何人的财产。它只是将测试应用程序反向设计为临时的,无害的学习体验,而不是商业流通或任何恶意意图。

1 个答案:

答案 0 :(得分:0)

嗯,让我们看看,这就是我想出的。提示非常令人满意,谢谢! 这是我更新的代码:

.method public writeToParcel(Landroid/os/Parcel;I)V
.locals 0

const p2, 0x3b9aca00 

invoke-static {p0, p1, p2}, Lcom/google/android/gms/games/achievement/AchievementEntityCreator;->a(Lcom/google/android/gms/games/achievement/AchievementEntity;Landroid/os/Parcel;I)V

move-result-object p2

return-void
.end method

我使用IEEE 754转换器找到相当于10亿的dalvik字节码(产生0x4e6e6b28) - 这会起作用吗?它在这里:https://www.h-schmidt.net/FloatConverter/IEEE754.html。 我在这里访问了你的页面:https://github.com/JesusFreke/smali/wiki/Registers以及它如何传递方法参数,我选择了一些指导:)我看到有3个参数寄存器(Lcom / google / android / gms / games / achievement / AchievementEntityCreator; ,Lcom / google / android / gms / games / achievement / AchievementEntity;和Landroid / os / Parcel;)是p0,p1和p2。所以这是我最好的尝试...如果我对任何事情都错了,那么建设性的帮助就会很棒!