发新帖

【破解记录之】含有特定支付<skynetpay>的短代通杀教程

  [复制链接]
126355 98
本帖最后由 水波摇曳 于 2015-1-22 17:07 编辑

以后我每分析一个程序会尽量在论坛分析一下思路和一些独特的方法
希望大家多多支持论坛哈

适合的游戏有:
<神庙逃亡>
<地铁酷跑><水果忍者><果宝三国> 甚至那个厂商...

下面是教程,提提人气,就隐藏了,莫怪哈~


适合的特征:
反编译之后的结构中有以下文件树


处理的方法:
1.全局搜索“already_owned”会有两个结果:


点击第二个smali里面的,会定位到Lcom/skynetpay/android/payment/frame/PaymentPlugin;类中;

2.修改的方法是让程序始终走“already_owned”所在_cond流程,修改后代码如下:
[Java] 纯文本查看 复制代码


    ....
    ....
    ....

    invoke-static {v1, v2}, Lcom/skynetpay/lib/e/g;->b(Ljava/lang/String;Ljava/lang/CharSequence;)V

    .line 329
    iget-boolean v1, p0, Lcom/skynetpay/android/payment/frame/PaymentPlugin;->r:Z

    goto :cond_0    /////////始终走:cond_0

    .line 330
    const-string v1, "PaymentPlugin"

    const-string v2, "\u4e0a\u4e00\u7b14\u4ea4\u6613\u672a\u5b8c\u6210\uff0c\u4e0d\u80fd\u8fdb\u884c\u4e0b\u4e00\u7b14\u4ea4\u6613!"

    invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    .line 479
    :goto_0
    return-void

    ....
    ....
    ....

    invoke-direct {p0, p2, v0}, Lcom/skynetpay/android/payment/frame/PaymentPlugin;->enqueuePurchase(Ljava/lang/String;Lcom/skynetpay/lib/plugin/PluginResultHandler;)I

    move-result v5

    .line 339
    sget-boolean v1, Lcom/skynetpay/lib/config/a;->c:Z

    goto :cond_1    //始终走:cond_1

    .line 340
    const-string v1, "PaymentPlugin"

    new-instance v2, Ljava/lang/StringBuilder;

    ....
    ....
    ....

    invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    .line 344
    :cond_1      //让程序走:cond_1
    invoke-virtual {p0, p2}, Lcom/skynetpay/android/payment/frame/PaymentPlugin;->findItemByIdentifier(Ljava/lang/String;)Lcom/skynetpay/android/payment/frame/bean/Item;

    move-result-object v6

    .line 345
    goto :cond_3   //////goto

    .line 346
    new-instance v1, Lcom/skynetpay/lib/plugin/PluginResult;

    sget-object v2, Lcom/skynetpay/lib/plugin/PluginResult$Status;->ERROR:Lcom/skynetpay/lib/plugin/PluginResult$Status;

    const-string v3, "payment_item_not_found"

    ....
    ....
    ....

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v1, v2}, Lcom/skynetpay/lib/e/g;->b(Ljava/lang/String;Ljava/lang/CharSequence;)V

    goto/16 :goto_0

    .line 356
    :cond_3      ///////////////让程序始终走:cond_3流程
    iget-boolean v1, v6, Lcom/skynetpay/android/payment/frame/bean/Item;->isOwned:Z
    /////////////////这里的那句跳转代码删除
    new-instance v1, Lcom/skynetpay/lib/plugin/PluginResult;

    sget-object v2, Lcom/skynetpay/lib/plugin/PluginResult$Status;->OK:Lcom/skynetpay/lib/plugin/PluginResult$Status;

    const-string v3, "product_already_owned"
    
        .line 358
    invoke-virtual {p0, v3}, Lcom/skynetpay/android/payment/frame/PaymentPlugin;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    invoke-direct {v1, v2, v3}, Lcom/skynetpay/lib/plugin/PluginResult;-><init>(Lcom/skynetpay/lib/plugin/PluginResult$Status;Ljava/lang/String;)V

    .line 359
    invoke-virtual {v1}, Lcom/skynetpay/lib/plugin/PluginResult;->getMessage()Ljava/lang/String;

    move-result-object v2
   ////////////////////注释这句不让toast弹出
    #invoke-virtual {p0, v2}, Lcom/skynetpay/android/payment/frame/PaymentPlugin;->makeToast(Ljava/lang/CharSequence;)V


这样达到的结果如下:
A、支持离线;
B、支持三网;
C、无支付限制;
D、点击获得型破解内购;


整个程序可能还会有“盗版”验证的字样,如下图:


为了防止它提示出来,修改的关键地址在:Lcom/s1/lib/internal/ax;->q()Landroid/app/Activity;
让它始终返回为0即可,修改后的代码为:
[Java] 纯文本查看 复制代码
.method public final q()Landroid/app/Activity;
    .locals 1

    .prologue
        const/4 v0, 0x0
        
    return-object v0
.end method





好了。
希望大家都自己试试,
出现什么问题,及时提问解决..
多多支持论坛


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

楼主你这么给力你爸妈知道吗?: 5.0 啥也不说了,顶楼主!: 5.0
楼主你这么给力你爸妈知道吗?: 5 啥也不说了,顶楼主!: 5
  发表于 2015-2-12 18:01
已有16人评分 威望 NB 贡献 荣获致谢 理由
cnb + 1 大神,可以转吗?
wapjia + 1 onPurchaseFail代码复制到onPurchaseSuccee.
亿联网络 + 1 + 1 很给力!
freeparty + 1 + 1 谢谢,早知道有教程自己就来这里先看一下。.
7ktest + 1 + 1 很给力!
听鬼哥说故事 + 1 + 3 + 1 + 1
Xhy + 1 + 1 赞一个!
2crack + 1 + 1 很给力!
ceshi999 + 1 + 1 很给力
小小小木头 + 1 + 1
andrewhzf + 1 很给力!
默小坑 + 1 + 1 很给力!
sndncel + 1 + 1 很给力!学习了呀。
Dawn + 1 涨姿势了
花墨 + 1 + 1 很给力!
myoldid + 1 + 1 赞一个! 今天正好遇到这类游戏了,赞一个.

查看全部评分 总评分: 威望 +1  NB +17  贡献 +1  荣获致谢 +13 

举报 使用道具

回复

精彩评论100

xxoo    发表于 2015-1-19 15:34:43 | 显示全部楼层
看看额 `````````

举报 使用道具

回复 支持 0 反对 1
An01roid    发表于 2015-1-19 15:26:33 | 显示全部楼层
谢谢大神的教程。

举报 使用道具

回复 支持 反对
爱好者    发表于 2015-1-19 15:27:11 | 显示全部楼层
看看,学习学习!

举报 使用道具

回复 支持 反对
fammer    发表于 2015-1-19 15:27:36 来自手机  | 显示全部楼层
叼叼叼叼叼

举报 使用道具

回复 支持 反对
lonelykin    发表于 2015-1-19 15:27:54 | 显示全部楼层
学习 大神之作:lol

举报 使用道具

回复 支持 反对
myoldid    发表于 2015-1-19 15:29:38 | 显示全部楼层
看看是什么方法,学习下

举报 使用道具

回复 支持 反对
a359566926    发表于 2015-1-19 15:30:31 | 显示全部楼层
支持一下,学习学习!

举报 使用道具

回复 支持 反对
蝌蚪它大爷    发表于 2015-1-19 15:32:09 | 显示全部楼层
谢谢大神分享~学习

举报 使用道具

回复 支持 反对
l569171196    发表于 2015-1-19 15:37:31 来自手机  | 显示全部楼层
看看试试试试

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表