好友
阅读权限10
听众
最后登录1970-1-1
|
hkccc
发表于 2019-11-20 08:27
本人小白,最近才开始学逆向,记录下自己的学习记录,过程比较简单,具体破解步骤如下
该app是我找来练手的一个弱联网游戏,首先运行原APK进入游戏,完成新手教程后确定其充值方式为话费支付,且充值失败后有弹窗提示,这就很简单了。
卸载原版程序,’将安装包丢入Androidkiller中进行反编译,直接打包运行,在不联网的情况下可以正常进游戏。接着搜索“支付失败”的Unicode码,发现结果并不多,且都在joym目录下,逐个查看。(程序的入口:com.joym.PaymentSdkV2.SplashActivity)
第一个是抛出支付失败异常,不管,继续往下看,来到下面一个搜索结果,发现在一个OnResult的函数中,查看其java代码如下。
为了让APK支付成功,找到支付成功对应的smali语句:
:pswitch_0
iget-object v0, p0, Lcom/joym/PaymentSdkV2/model/PlatformCM$6$1;->val$callback:Lcom/joym/PaymentSdkV2/Logic/PaymentCallback;
const/16 v1, 0x64
const-string v2, "\u652f\u4ed8\u6210\u529f"
invoke-virtual {v0, v1, v2, v4}, Lcom/joym/PaymentSdkV2/Logic/PaymentCallback;->onCallback(ILjava/lang/String;Ljava/lang/String;)V
goto :goto_0
然后找到switch(parmInt)对应的smali语句,在其之前插入goto语句,直接无条件跳转到执行充值成功的语句。
goto :pswitch_0
packed-switch p1, :pswitch_data_0
这里的更改就算成功了,为了一步到位,继续看其他地方,来到下面的代码,发现在一个payFailed函数里面,显然的支付失败,查看其java代码。这里为了省事,就不去查哪里调用他们了,直接把支付取消和支付失败函数里的内容都改为支付成功函数里面的语句。
修改完成,继续往下看,略过无关结果,来到一个类似的地方,同上, 代码替换掉。继续往下,来到一个payresult函数,支付成功语句代码
:pswitch_0
iget-object v1, p0, Lcom/joym/PaymentSdkV2/model/PlatformCU$10;->val$callback:Lcom/joym/PaymentSdkV2/Logic/PaymentCallback;
const/16 v2, 0x64
.line 457
const-string v3, "\u652f\u4ed8\u6210\u529f"
……
将下列的因此将紧跟在下面的跳转代码都改为支付成功的跳转pwitch_0
.packed-switch 0x1
:pswitch_0
:pswitch_1
:pswitch_2
继续往下碰到的代码都类似上面,也类似的改就行了。碰到一个判断跳转的地方:
if (((String)localObject1).equals("1"))
{
this.this$0.uploadcuinfo();
this.val$callback.onCallback(100, "支付成功", paramString);
this.this$0.setSharedPreferences("1", "支付成功");
}
意思是调用String的equal函数,与1比较,相等的话执行支付成功回调,这里在对应的smali语句中把判断注释掉,无条件执行支付成功代码就行了:
#if-eqz v3, :cond_0
下面碰到的其他判断跳转也类似的改,if语句中包含的是支付成功的代码就注释掉if语句,否则就将if语句改为goto语句无条件跳转到支付成功代码语句即可。
终于改完了,删除敏感的发短信权限,打包签名,安装到模拟器上运行,点击支付,发现支付成功。
,
然后问题来了,一联网就闪退,请问大佬这是网络签名验证吗,是的话不应该不联网能打开啊,不是的话为啥打开就闪退,该怎么解决啊,自己搞了一个星期,也分析了so层,尽力而为了还是没弄好,求大佬顺便解惑。
注:才刚刚学,知识掌握不多,请大佬解答详细点,万分感谢!
最后,附上网盘地址 原版APK
链接: https://pan.baidu.com/s/1NdrEmD5R4nfuRPvUx5lnXQ 提取码: 33yv
破解不联网正常运行APK
链接: https://pan.baidu.com/s/1hlZBEnRszbu5h66wdr8xsw 提取码: z94b
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|