本帖最后由 极限度—魔 于 2014-5-26 19:11 编辑
本人也是大菜鸟一个,我的第一个安卓软件的破解,如果出错请点出~
需要工具:
ApkIDE【APK改之理】
某助手【可行百度,截图会有给出名字】
感谢低调和Dawn的提点
开始教程:
首先我们用IDE反编译软件
然后我们在搜索框输入:\u5f53\u524d\u79ef\u5206
这个是怎么来的呢? 这个其实就是这个软件的积分ASCII码提示:当前积分的Unicode码,可以在IDE的搜索窗口右击有转换为xxx的选项,点击搜索全部后如下图:
我们双击当前积分字样,就会出现以下代码:
我们不用管他,我们接着在搜索框里输入0x32【50的十六进制】,搜索框里有也有这个转换选项,搜索并点击进入代码后出现下面代码:
[mw_shl_code=css,true]const/16 v3, 0x32 // 定义v3数据为50
if-ge v2, v3, :cond_0 // 当v2大于或等于v3时则跳转到cond_0处 (v3=50)
.line 54
invoke-virtual {p0}, Lcom/android/zj/common/service/AdLoader;->showOffers()V
.line 86
:goto_0
return-void
.line 56
:cond_0 // 跳转位置
new-instance v0, Lcom/android/zj/common/ui/IPbar;
iget-object v2, p0, Lcom/android/zj/common/service/AdLoader;->activity:Landroid/app/Activity;
const-string v3, "\u8bf7\u7a0d\u540e..." // 当前积分[/mw_shl_code]
,
这样我们就很容易知道它是怎么执行的了。现在我们有两个方法,一个是修改最低积分50改为最低积分为0,另个是改跳转
改修最低积分的话,只要把0x32修改为0就可以了
修改后代码为:
[mw_shl_code=css,true]const/16 v3, 0 //
if-ge v2, v3, :cond_0
.line 54
invoke-virtual {p0}, Lcom/android/zj/common/service/AdLoader;->showOffers()V
.line 86
:goto_0
return-void
.line 56
:cond_0
new-instance v0, Lcom/android/zj/common/ui/IPbar;
iget-object v2, p0, Lcom/android/zj/common/service/AdLoader;->activity:Landroid/app/Activity;
const-string v3, "\u8bf7\u7a0d\u540e...[/mw_shl_code]
修改跳转的话就把if-ge 修改为 if-ne 即可 因为if-ne是不等于则跳转,也就是说当v2≠v3时则跳转到cond_0处
修改后代码:
[mw_shl_code=css,true]method private openLimit()V
.locals 4
.prologue
.line 53
iget v2, p0, Lcom/android/zj/common/service/AdLoader;->points:I
const/16 v3, 0x32
if-ne v2, v3, :cond_0
.line 54
invoke-virtual {p0}, Lcom/android/zj/common/service/AdLoader;->showOffers()V
.line 86
:goto_0
return-void[/mw_shl_code]
|