锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
Android 仨笨贼2—游戏破解思路另一方法分析

作者: 佚名  日期:2017-05-11 08:08:39   来源: 本站整理

 首先回顾一下常见的破解方法:
1. 按字搜索法。这种方法非常常见,大部分破解都以这个为战略起点。比如有些运营商的有些特别好弄,什么failed、succed之类的。以类名为关键字查找。或者有些游戏有文字提醒,根据“提醒文字”内容,转换编码查找。
2.按图索骥法。这个名字我自己取的,按activity找入口,然后开门进入。
3.其他。
接上一贴的思路。

0x0  确定目标
com.caimeng.sbz2
工作环境:某遥安卓
作案工具:ApkIDE
辅助工具:当前activity

0x1  敲“门”问路
 
查看当前activity,确定为sbz2
打开AApkIDE里面打开,找到。中间过程我就不再赘述了
看smali有难度的话,点击上面那个咖啡图标。查看java源码

 
往下翻看到billingFailed 和 billingSucceed就知道离成功相差不远了
 

[Java] 纯文本查看 复制代码
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public void billingFailed(int paramInt)
{
  Log.d("tag", "------------失败-----------");
  nativeBillingSuccess(sbillingIndex, 0);
}
 
public void billingSucceed(String paramString)
{
  Log.d("tag", "------------成功-----------");
  if ((sbillingIndex < 0) || (sbillingIndex > this.goodInfos.length - 1)) {
    return;
  }
  if ((paramString != null) && (!paramString.equals(this.goodInfos[sbillingIndex]))) {}
  label88:
  for (int i = 0;; i++)
  {
    if (i >= this.goodInfos.length) {}
    for (;;)
    {
      nativeBillingSuccess(sbillingIndex, 1);
      break;
      if (!paramString.equals(this.goodInfos[i])) {
        break label88;
      }
      sbillingIndex = i;
    }
  }
}



0x3  破门而入
很容易的,通过这样我们便确定了billingFailed就是我们下手的对象(不要问我为什么没有0x2,我也不知道为什么上一个贴和这个贴都没有)
所以我们返回到ApkIDE中,找到TA,并尝试做出如下改动

[Java] 纯文本查看 复制代码
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[/size][/size]#这三个其实没有任何影响,不用修改
 
.field public static final BILLING_CANCEL:I = 0x0
 
.field public static final BILLING_FAILD:I = -0x1
 
.field public static final BILLING_SUCCEED:I = 0x1
 
#关键点在这个 billingFailed method
 
.method public billingFailed(I)V
    .locals 2
    .param p1, "sbillingIndex"    # I
 
    .prologue
    .line 320
    const-string v0, "tag"
 
    const-string v1, "------------\u5931\u8d25-----------"
 
    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
 
    .line 322
    sget p1, Lcom/caimeng/sbz2/sbz2;->sbillingIndex:I
 
    .line 323
    const/4 v0, 0x1
#关键点在这里v0设置为0x1
    invoke-static {p1, v0}, Lcom/caimeng/sbz2/sbz2;->nativeBillingSuccess(II)V
 
    .line 324
    return-void
.end method[size=3][size=3]


0x4 关门放包
sdz2是已经破解的成品,小的那个是查看activity的辅助工具

链接: http://pan.baidu.com/s/1b60LIm 密码: 52pj



热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等