编草鞋的蚂蚱 发表于 2017-10-30 00:32

热血奥特曼破解版【附教程】

本帖最后由 编草鞋的蚂蚱 于 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

下一次会讲解一个同样简单的教程。
请点:狂怒飞车破解版【附教程】






编草鞋的蚂蚱 发表于 2017-10-30 12:58

坑爹酱、 发表于 2017-10-30 12:50
感觉没什么用 我不会逆向 但是只能看着来操作 你贴的代码什么意思都不懂你这个教程就力不从心了 跟普通的 ...

破解多了,用心找规律,慢慢就会好。所有的帖子都是大概这个模式,我一开始学习也是照着模板慢慢来。如果只是照着葫芦画瓢,不肯用心去思考,就很难进步了。

坑爹酱、 发表于 2017-10-30 12:50

感觉没什么用 我不会逆向 但是只能看着来操作 你贴的代码什么意思都不懂你这个教程就力不从心了 跟普通的破解教程贴差不多

宁致远 发表于 2017-10-30 00:43

本帖最后由 宁致远 于 2017-10-30 01:17 编辑

这是什么???? 水帖吗?

改好了,还是不错的嘛!!!

会飞的丑小鸭 发表于 2017-10-30 01:02

教程写的很不错 支持楼主

编草鞋的蚂蚱 发表于 2017-10-30 01:12

宁致远 发表于 2017-10-30 00:43
这是什么???? 水帖吗?

不好意思,当时太困了,有点乱,已经修改好了。

zhishui 发表于 2017-10-30 01:24

感谢楼主分享

183595412 发表于 2017-10-30 01:26

写这么多。可不容易。谢谢

sdaza 发表于 2017-10-30 06:34

没看懂。

天气很好yo 发表于 2017-10-30 08:17

九年前的我,一定会下载的。

michaelgxw 发表于 2017-10-30 08:27

很详细的,不错

左殇魂 发表于 2017-10-30 08:27

学习了,
页: [1] 2 3 4 5 6
查看完整版本: 热血奥特曼破解版【附教程】