好友
阅读权限20
听众
最后登录1970-1-1
|
本帖最后由 编草鞋的蚂蚱 于 2017-10-30 10:25 编辑
上一次,在逆向、从啥都不会开始!
中讲了一个热血奥特曼的教程。
今天,我们趁热打铁,再破解一个相同类型的APP
想破解一个游戏,那么首先就要先拿过来玩一会。
感觉是要搜索“支付成功”,
是的,没错,还是跟着感觉走!
那么,就搜索了:
之后下面框显示搜到三个:
点开,拿到我们想要的那个,(怎么知道那个想要???一个个查看呗!!反正就三个。)
然后就是改代码了:
下面是提取的要修改的smali代码了:
.class Lcom/ck/sdk/EGameSDK$1;
.super Ljava/lang/Object;
.source "EGameSDK.java"
# interfaces
.implements Lcn/egame/terminal/paysdk/EgamePayListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/ck/sdk/EGameSDK;->payEGame(Ljava/util/HashMap;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcom/ck/sdk/EGameSDK;
# direct methods
.method constructor <init>(Lcom/ck/sdk/EGameSDK;)V
.locals 0
.prologue
.line 1
iput-object p1, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
.line 323
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public payCancel(Ljava/util/Map;)V
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 348
.local p1, "arg0":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
invoke-static {}, Lcom/ck/sdk/CKSDK;->getInstance()Lcom/ck/sdk/CKSDK;
move-result-object v0
invoke-virtual {v0}, Lcom/ck/sdk/CKSDK;->getContext()Landroid/app/Activity;
move-result-object v0
const-string v1, "\u652f\u4ed8\u88ab\u53d6\u6d88"
invoke-static {v0, v1}, Lcn/egame/terminal/sdk/log/EgameAgent;->onEvent(Landroid/content/Context;Ljava/lang/String;)V
.line 350
iget-object v0, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
iget-object v1, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
invoke-static {v1}, Lcom/ck/sdk/EGameSDK;->access$0(Lcom/ck/sdk/EGameSDK;)Lcom/ck/sdk/PayParams;
move-result-object v1
const-string v2, "-100000"
const-string v3, "payCancel"
invoke-static {v0, v1, v2, v3}, Lcom/ck/sdk/EGameSDK;->access$2(Lcom/ck/sdk/EGameSDK;Lcom/ck/sdk/PayParams;Ljava/lang/String;Ljava/lang/String;)V
.line 351
return-void
.end method
.method public payFailed(Ljava/util/Map;I)V
.locals 5
.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 337
.local p1, "arg0":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
.line 338
.local v0, "values":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;"
const-string v1, "errorInt"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
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-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 339
invoke-static {}, Lcom/ck/sdk/CKSDK;->getInstance()Lcom/ck/sdk/CKSDK;
move-result-object v1
invoke-virtual {v1}, Lcom/ck/sdk/CKSDK;->getContext()Landroid/app/Activity;
move-result-object v1
.line 340
const-string v2, "errorInt"
.line 339
invoke-static {v1, v2, v0}, Lcn/egame/terminal/sdk/log/EgameAgent;->onEvent(Landroid/content/Context;Ljava/lang/String;Ljava/util/Map;)V
.line 343
iget-object v1, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
iget-object v2, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
invoke-static {v2}, Lcom/ck/sdk/EGameSDK;->access$0(Lcom/ck/sdk/EGameSDK;)Lcom/ck/sdk/PayParams;
move-result-object v2
new-instance v3, Ljava/lang/StringBuilder;
invoke-static {p2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
const/4 v4, 0x0
invoke-static {v1, v2, v3, v4}, Lcom/ck/sdk/EGameSDK;->access$2(Lcom/ck/sdk/EGameSDK;Lcom/ck/sdk/PayParams;Ljava/lang/String;Ljava/lang/String;)V
.line 344
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 326
.local p1, "data":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
invoke-static {}, Lcom/ck/sdk/CKSDK;->getInstance()Lcom/ck/sdk/CKSDK;
move-result-object v0
invoke-virtual {v0}, Lcom/ck/sdk/CKSDK;->getContext()Landroid/app/Activity;
move-result-object v0
const-string v1, "\u652f\u4ed8\u6210\u529f"
invoke-static {v0, v1}, Lcn/egame/terminal/sdk/log/EgameAgent;->onEvent(Landroid/content/Context;Ljava/lang/String;)V
.line 331
iget-object v0, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
iget-object v1, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
invoke-static {v1}, Lcom/ck/sdk/EGameSDK;->access$0(Lcom/ck/sdk/EGameSDK;)Lcom/ck/sdk/PayParams;
move-result-object v1
invoke-static {v0, v1}, Lcom/ck/sdk/EGameSDK;->access$1(Lcom/ck/sdk/EGameSDK;Lcom/ck/sdk/PayParams;)V
.line 333
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中的内容。
从这儿
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 326
.local p1, "data":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;"
invoke-static {}, Lcom/ck/sdk/CKSDK;->getInstance()Lcom/ck/sdk/CKSDK;
move-result-object v0
invoke-virtual {v0}, Lcom/ck/sdk/CKSDK;->getContext()Landroid/app/Activity;
move-result-object v0
const-string v1, "\u652f\u4ed8\u6210\u529f"
invoke-static {v0, v1}, Lcn/egame/terminal/sdk/log/EgameAgent;->onEvent(Landroid/content/Context;Ljava/lang/String;)V
.line 331
iget-object v0, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
iget-object v1, p0, Lcom/ck/sdk/EGameSDK$1;->this$0:Lcom/ck/sdk/EGameSDK;
invoke-static {v1}, Lcom/ck/sdk/EGameSDK;->access$0(Lcom/ck/sdk/EGameSDK;)Lcom/ck/sdk/PayParams;
move-result-object v1
invoke-static {v0, v1}, Lcom/ck/sdk/EGameSDK;->access$1(Lcom/ck/sdk/EGameSDK;Lcom/ck/sdk/PayParams;)V
.line 333
return-void
到这儿!
然后就先编译,看看能用不。
果然,各种跑车随便买咯。
至于“请求太频繁”的窗口,日后再改。
新手就要多做、多练!别说会不会!!多做几个,就会了。
小伙伴们,为逆疯狂吧!
原版 链接:http://pan.baidu.com/s/1nvaaf81 密码:mshz
破解版 链接:http://pan.baidu.com/s/1qYMCYBE 密码:39qh
|
免费评分
-
查看全部评分
|