• 大圣降妖录破解


    一.程序介绍
    游戏界面,很脑残的一个游戏,无脑点屏幕砍怪,还不能移动,而且还要很多钱去购买
     
    支付接口:
     
     
    二.定位关键代码思路
    首先明确我们的目标,破解他的收费(内购)
    为了达成这个目标我们得定位到他支付校验的代码,让他支付校验的代码总是返回真即可
     
    那么我们如何定位关键代码呢?
    思路如下:
    1. 查看是否有log输出
    2. 根据支付sdk顺藤摸瓜,向上搜索定位(或者插入打印函数调用栈的代码,向上层调用回溯)
    3. 是否有关键的字符串信息可以被利用
    4. 定位控件可以用dump view,然后查找资源id的方法
    5. 使用adb shell dumpsys activity top得到当前活动Activity
     
    方法一.查看是否有日志输出
    点击支付后,有关键log输出
     
    查看字符串引用的地方正好是内购的地方
     
    同时还有启动支付Activity的信息
     
     
    方法二. 通过支付SDK向上回溯
     
    EgamepayActivity是刚刚的支付页面,但是对其交叉引用发现没有调用者
    在onCreate插入log可以发现onCreate被调用了
     
    JEB中分析发现都调用了EgamePayProtocol这个函数,而且对该类做引用参考并没有发现调用源
    全工程字符串搜索也没有找到相关调用,不犹的怀疑是在so层做了这些调用
     
     loadLibrary看来是在so中完成的相关调用
     
    跟进这个EgamePayListener有点像是支付成功失败取消之后的,对其做引用参考 ,发现没有引用参考
     
    全内存搜索
     
    从EgamePay入手,发现这里里面调用了pay方法,插入log验证也的确是对其做交叉引用,成功定位到关键点
     
    方法三.根据游戏UI的特定字符串信息定位到关键点
     
    方法四.通过dumpsys类可以抓到当前最顶端的Activity,通过分析Activity代码同样可以定位到关键点
     
    方法五.通过dump view定位
    在此app中不适合,因为该UI是canvas上画出来的,抓不到id 所以没法定位相关控件ID
     
     
    三.内购破解
    我们再次看看购买的代码逻辑
     
     不管成功失败 都会调用OnResult(),我们跟进OnResult函数发现:
     
    我们只要让success=0即可
    我发现直接干掉if语句并没有什么用,我选择在外层调用OnResult的时候修改成0,也就是把下面这2个值都修改成0
     
    于是操刀把paycancel干掉,修改为0即可
     
    发现游戏内购被破解掉了
     
    火力全开
     
    通关了
     
     
    由于研究目的,破解版apk就不放出来了
     





  • 相关阅读:
    update语句更新多条记录, 标记下
    点击超链接从VSTF、SVN及文件共享服务器上下载文件
    批量插入数据, 将DataTable里的数据批量写入数据库的方法
    SqlServer规范, 标记下
    学习笔记Mysql操作总结
    今拾到了个联合查询, 琢磨了好几个小时, 标记一下
    【读书笔记】 拜读潘加宇的《软件方法》一书的摘抄(上)
    关于引用类型的 ref 传参操作
    sed 正则表达式处理日志
    各省市个税计算器
  • 原文地址:https://www.cnblogs.com/bingghost/p/5827401.html
Copyright © 2020-2023  润新知