用户
搜索
  • TA的每日心情
    擦汗
    6 天前
  • 签到天数: 87 天

    连续签到: 1 天

    [LV.6]常住居民II

    i春秋作家

    a--o--e.lofter.com

    Rank: 7Rank: 7Rank: 7

    18

    主题

    156

    帖子

    1238

    魔法币
    收听
    1
    粉丝
    2
    注册时间
    2017-9-14

    春秋游侠i春秋签约作者热心助人奖春秋文阁

    发表于 2018-2-1 17:03:27 154709
    本帖最后由 XiaoYue97 于 2018-2-1 17:03 编辑

    N2d0TGMxZ.jpg
    作者:à ō é
    链接:https://bbs.ichunqiu.com/thread-33647-1-1.html
    来源:i春秋社区

    摘要
    最近在研究Android逆向,内购破解这一块,发现挺有味道的,当然只限做技术研究。
    下面通过对某单机游戏的内购破解,详细介绍一下内购的方法和原理以及防护等。

    材料准备
    1)APP下载,本次演示的软件:登山赛车至天朝历险
    我们去其官网下载即可,另外在其他市场下载一个低版本的,
    这里我另外下载了一个 v1.3.1的,后面会有用。
    image001.png
    image002.png

    2)至于工具,一个Android Killer加个 夜神模拟器 就可以了

    3)放Android Killer 一看,可正常回编,这样也省了不少事
    image003.png

    内购破解
    01. 内购流程


    内购即应用中付费购买道具或其他东西。其加入了第三方SDK(支付SDK)。
    支付SDK提供商(如移动、联通、支付宝等)先开发一个支付SDK,
    并进行加固等保护,再为开发者提供支付接口的使用指南,
    开发者在APP中添加了支付SDK后,通过相关配置使用SDK即可完成收费功能。

    而从国内安卓的单机应用来看,其内购流程可简括为:APP--支付SDK--支付SDK服务器--APP。

    Google Play内购流程较国内安卓的会更复杂一点



    在国内主流的内购SDK开发主要分为两类,
    即短信运营商类(三大运营商)和第三方支付平台类(微信、支付宝等)


    02. 搜索关键字符
    内购的关键函数
    paysuccess onsuccess  buysuccess threadSuccess orderBombsuccess  payonbilling  dobilling PayResult  onBillingFinish  BillingResult inresult  paycallback  resultStatus 9000  0x2328
    从字面上就可知道,都是判断支付结果用的(其中0x2328是9000的十六进制)

    02x01 直接搜索购买失败的Toast
    1). 安装游戏后购买金币,随便填个,让它弹出购买失败的错误提示
    image004.png

    2). 搜索关键字符 “短信验证码验证失败” 另,转Unicode码也没搜到
    image005.png

    3). 试着搜索它的变量名 “gc_security_sms_err
    image006.png

    4). 果然,版本更新了,但 名称还是没变的,再试着搜索它的ID “0x7f0700a1
    image007.png

    5). 但至此并没搜索到其关键的判断语句,So,另找它法

    02x02 搜索支付的API关键接口
    1> 看一下支付的方式,还有微信和支付宝,不过我们这里就看短信支付(好友代付)吧
    image008.png

    2> 从输入的手机号的错误提示可知是移动的接口,我们将其拉入 Android Killer后
    搜索移动支付 API 的关键字BillingResult”(前面已介绍第三方SDK的相关资料)
    image009.png

    3> 另,看AndroidMainfest.xml文件发现应用原入口被改
    image010.png

    4> 我们来看原入口下的类(有需要可以看反编译后的JAVA代码),这里我们直接看Smali语句
    image011.png

    5> 跳到:pswitch_data_0处,显然这是某API的返回代码,先另外看看 :pswitch_1 分支
    image012.png

    6> 由 :pswitch_1分支可断定,:pswitch_1与购买失败有关,相反 :pswitch_0 则与购买成功有关
    image013.png

    7> 我们可让其判断总为成功,便可达到内购破解的目的,改的方法有很多,
    这里我们利用goto 指令就可简单实现,目标就是让其跳转到成功购买
    image015.png

    汇编中的跳转指令
        1,  goto :goto_0  偏移量goto_0不能为0,通过短偏移量无条件跳转到目标;
        2,  If语句;
        3,  switch
               packed-switch v0, :pswitch_data_0 v0是switch需要判断的值;
               :pswitch_data_0 偏移表,表中值是有规律递增的;
               sparse-switch v0, :pswitch_data_0 偏移表中值是无规律的。

    8> 最后,来看看我们修改的结果吧
    image016.png
    image017.png

    02x03 修改游戏内存
    这个就不多说了,直接上工具

    a. root手机,安装目标APP和内存修改器(这里使用了八门神器)

    b. 先启动八门神器(类似的像葫芦侠,幸运破解器,烧饼修改器等)
    image018.png

    c. 进入应用,开始飙车,后拿出八门神器,对金币值进行搜索
    image019.png

    d. 因数值较多,可继续搜索,进一步确定金币的内存数据
    image020.png

    e. 可以看到,只有一条数据发生变化,直接修改,这里改为 12345678
    image021.png

    f. 修改成功,同时也说明此游戏没有防护
    image022.png

    g. 至此,可退出八门神器,继续飙车,秋名山等着你
    image023.png

    02x04 其他方法
    其他方法如,进程注入,Hook,修改初始数据(找到本地的相关文件直接修改)等,
    反正就是改,,,为了尊重开发者,还是跟着游戏规则慢慢玩就好,不然也会失去游戏的一些乐趣。

    扩展阅读
    Android逆向之旅—Android手机端破解神器MT的内购VIP功能破解教程 | 尼古拉斯.赵四






    登山赛车之天朝历险_内购破解版  
    链接:  https://pan.baidu.com/s/1ggQeGoV  密码:
    游客,如果您要查看本帖隐藏内容请回复

    总结
    内购破解,对于游戏是不公平的,作为开发者,需要增加应用的防护机制,
    如防注入,防hook,防内存修改,防二次打包,简而言之就是加固。
    作为玩家,无规不成方圆,游戏是用来娱乐的,
    这里我们只做技术研究,游戏还是支持官方原版的好。
    逆向/破解/病毒分析板块  专属QQ交流群:496266893

    https://bbs.ichunqiu.com/forum-60-1.html
    发表于 2018-2-1 17:26:08
    本帖最后由 XiaoYue97 于 2018-2-2 11:17 编辑

    板凳板凳对于最近流行的旅行青蛙,内购破解原理也是一样的,大家可自行研究一下

    旅行青蛙破解参考:

    Unity3d类安卓游戏逆向分析初探 - 浮萍 - 猎户安全实验室

    旅行青蛙破解分析从内存到存档再到改包 - 黯夏子风 - 看雪学院

    逆向/破解/病毒分析板块  专属QQ交流群:496266893

    https://bbs.ichunqiu.com/forum-60-1.html
    使用道具 举报 回复
    发表于 2018-2-1 17:18:04
    沙发沙发
    欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!投稿请加我QQ:286894635。
    i春秋-楚:533191896
    i春秋-燕:129821314
    i春秋-齐:417360103
    i春秋-秦:262108018
    使用道具 举报 回复
    哟,这都直接VIP通关的节奏了
    使用道具 举报 回复
    发表于 2018-2-1 19:14:35
    四楼,四楼
    破解的目的是为了更好的开发
    使用道具 举报 回复
    厉害厉害了我的大表哥
    使用道具 举报 回复
    使用道具 举报 回复
    厉害了大表哥。
    使用道具 举报 回复
    厉害了,word
    使用道具 举报 回复
    牛逼牛逼
    使用道具 举报 回复
    发表于 2018-2-2 11:32:34
    感谢分享
    使用道具 举报 回复
    发表于 2018-2-4 10:26:49
    666666666666学习了
    使用道具 举报 回复
    发表于 2018-2-8 08:36:57
    6666666666666666666
    使用道具 举报 回复
    厉害厉害
    使用道具 举报 回复

    厉害厉害了 大表哥
    使用道具 举报 回复
    12下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册