本帖最后由 编草鞋的蚂蚱 于 2017-11-24 16:23 编辑
先讲一个热血奥特曼,以后会从易到难、从简到繁、从0到有的不定期更新讲解,小伙伴,让我们一起逆袭!这个游戏很好破解,很适合刚入门的童鞋学习。关键是找在哪里能够打开局面,只要找到那个入口,下面就好弄了。
应用宝先下载,然后。。。
一开始在andord skill上面搜“paysuccess”(一般情况下,都是搜索汉字“成功”,然后转化为“Unicode”来搜索,因为
玩游戏时弹出的框是支付成功,所以就试着搜“paysuccess”)下面框里弹出这些:
注意“pay”
感觉这些里面,肯定有需要我们改的内容,
然后就打开来看,跟着感觉走,没错,就是干!
果然找到了我们想要的,然后就是修改了。
下面就是复制下来的smali代码:
.class Lcom/sg/game/pay/Pay_CTCC$1;
.super Ljava/lang/Object;
.source "Pay_CTCC.java"
# interfaces
.implements Lcn/egame/terminal/paysdk/EgamePayListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/sg/game/pay/Pay_CTCC;->pay(ILcom/sg/game/pay/PayCallback;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcom/sg/game/pay/Pay_CTCC;
.field final synthetic val$callback:Lcom/sg/game/pay/PayCallback;
.field final synthetic val$index:I
# direct methods
.method constructor <init>(Lcom/sg/game/pay/Pay_CTCC;Lcom/sg/game/pay/PayCallback;I)V
.locals 0
.param p1, "this$0" # Lcom/sg/game/pay/Pay_CTCC;
.prologue
.line 41
iput-object p1, p0, Lcom/sg/game/pay/Pay_CTCC$1;->this$0:Lcom/sg/game/pay/Pay_CTCC;
iput-object p2, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$callback:Lcom/sg/game/pay/PayCallback;
iput p3, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$index:I
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public payCancel(Ljava/util/Map;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 45
.local p1, "arg0":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
iget-object v0, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$callback:Lcom/sg/game/pay/PayCallback;
iget v1, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$index:I
invoke-interface {v0, v1}, Lcom/sg/game/pay/PayCallback;->payCancel(I)V
.line 46
return-void
.end method
.method public payFailed(Ljava/util/Map;I)V
.locals 4
.param p2, "errorInt" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;I)V"
}
.end annotation
.prologue
.line 50
.local p1, "params":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
iget-object v0, p0, Lcom/sg/game/pay/Pay_CTCC$1;->this$0:Lcom/sg/game/pay/Pay_CTCC;
invoke-static {v0}, Lcom/sg/game/pay/Pay_CTCC;->access$000(Lcom/sg/game/pay/Pay_CTCC;)Landroid/app/Activity;
move-result-object v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "\u652f\u4ed8\u5931\u8d25="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const/4 v2, 0x1
invoke-static {v0, v1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
.line 51
iget-object v0, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$callback:Lcom/sg/game/pay/PayCallback;
iget v1, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$index:I
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, ""
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-interface {v0, v1, v2}, Lcom/sg/game/pay/PayCallback;->payFail(ILjava/lang/String;)V
.line 52
return-void
.end method
.method public paySuccess(Ljava/util/Map;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 56
.local p1, "arg0":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
iget-object v0, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$callback:Lcom/sg/game/pay/PayCallback;
iget v1, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$index:I
invoke-interface {v0, v1}, Lcom/sg/game/pay/PayCallback;->paySuccess(I)V
.line 57
return-void
.end method
再将其中的.method public payFailed(Ljava/util/Map;I)V
和.method public payCancel(Ljava/util/Map;)V
中的内容换成.method public paySuccess(Ljava/util/Map;)V
中的内容(从:.method 开始到.end method
结束)即:
.class Lcom/sg/game/pay/Pay_CTCC$1;
.super Ljava/lang/Object;
.source "Pay_CTCC.java"
# interfaces
.implements Lcn/egame/terminal/paysdk/EgamePayListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/sg/game/pay/Pay_CTCC;->pay(ILcom/sg/game/pay/PayCallback;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcom/sg/game/pay/Pay_CTCC;
.field final synthetic val$callback:Lcom/sg/game/pay/PayCallback;
.field final synthetic val$index:I
# direct methods
.method constructor <init>(Lcom/sg/game/pay/Pay_CTCC;Lcom/sg/game/pay/PayCallback;I)V
.locals 0
.param p1, "this$0" # Lcom/sg/game/pay/Pay_CTCC;
.prologue
.line 41
iput-object p1, p0, Lcom/sg/game/pay/Pay_CTCC$1;->this$0:Lcom/sg/game/pay/Pay_CTCC;
iput-object p2, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$callback:Lcom/sg/game/pay/PayCallback;
iput p3, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$index:I
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public payCancel(Ljava/util/Map;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 56
.local p1, "arg0":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
iget-object v0, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$callback:Lcom/sg/game/pay/PayCallback;
iget v1, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$index:I
invoke-interface {v0, v1}, Lcom/sg/game/pay/PayCallback;->paySuccess(I)V
.line 57
return-void
.end method
.method public payFailed(Ljava/util/Map;I)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 56
.local p1, "arg0":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
iget-object v0, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$callback:Lcom/sg/game/pay/PayCallback;
iget v1, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$index:I
invoke-interface {v0, v1}, Lcom/sg/game/pay/PayCallback;->paySuccess(I)V
.line 57
return-void
.end method
.method public paySuccess(Ljava/util/Map;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 56
.local p1, "arg0":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
iget-object v0, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$callback:Lcom/sg/game/pay/PayCallback;
iget v1, p0, Lcom/sg/game/pay/Pay_CTCC$1;->val$index:I
invoke-interface {v0, v1}, Lcom/sg/game/pay/PayCallback;->paySuccess(I)V
.line 57
return-void
.end method
这样我们就可以进行编译了,
点击购买,然后会弹出以下的框:
然后当我们再购买钻石时是下面的内容:
点击×,就会显示购买成功!,
完成破解!!!
链接分享一波!
原版 链接:http://pan.baidu.com/s/1c2o5B00 密码:4ayb
破解版 链接:http://pan.baidu.com/s/1cg2fxW 密码:1hz7
下一次会讲解一个同样简单的教程。
请点:狂怒飞车破解版【附教程】
|