吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18629|回复: 43
收起左侧

[Android 原创] 一个简单的apk破解思路分析

  [复制链接]
fisher 发表于 2017-4-14 14:55
本帖最后由 fisher 于 2017-5-10 18:21 编辑

0x0  确定目标
OResearch(单纯形法计算器)为例
工作环境:某遥安卓
作案工具:ApkIDE

0x1  敲“门
”问路
现在大多数的思路都是 按字搜索法。
猜想:如果能用“按图索骥”的方法来找“门”,那岂不是美滋滋?
所以这里我采用这种思路来找到“门”
查看当前activity,确定为LpActivity
Screenshot_2017-04-14-14-06-17.png
很容易就找到TA
BaiduShurufa_2017-4-14_14-13-36.png
还没翻到几行就看见了这样完美的字眼,嘻嘻
BaiduShurufa_2017-4-14_14-17-8.png
[Java] 纯文本查看 复制代码
  
public void onClick(View paramView)
  {
    CheckBox localCheckBox = (CheckBox)findViewById(2131558511);
    if ((ResearchApp.IS_FREE) && (localCheckBox.isChecked())) {
      AndroidUtils.displayFreeAppAlert(this, getString(2131099756), getString(2131099755), getString(2131099844));
    }
    for (;;)
    {
      return;
      super.onClick(paramView);
    }
  }

0x3  破门而入
通过上面一翻折腾我们已经能大概确定目标就在ResearchApp.smali
所以我们直接打开,在.method static constructor这里找到了TA
BaiduShurufa_2017-4-14_14-21-56.png
[Java] 纯文本查看 复制代码
.method static constructor <clinit>()V
    .locals 1

    .prologue
    .line 11
    const/4 v0, 0x1

    sput-boolean v0, Lcom/android/ResearchApp;->IS_FREE:Z

    .line 13
    const/4 v0, 0x2

    sput v0, Lcom/android/ResearchApp;->MAX_FREE_LP_VARS:I

    .line 14
    const/4 v0, 0x4

    sput v0, Lcom/android/ResearchApp;->MAX_FREE_LP_RESTR:I

    .line 16
    const/4 v0, 0x3

    sput v0, Lcom/android/ResearchApp;->MAX_FREE_TP_SIZE:I

    return-void
.end method

显然
,IS_FREE就是验证当前是否为FREE版,而MAX_FREE_*就是FREE最大可以使用的变量个数
如果是PRO版本,肯定就不需要
MAX_FREE_*啦!
尝试做出如下改动
[Java] 纯文本查看 复制代码
.method static constructor <clinit>()V
    .locals 1

    .prologue
    .line 11
    const/4 v0, 0x0
#change the default value
    sput-boolean v0, Lcom/android/ResearchApp;->IS_FREE:Z

    .line 13
    const/4 v0, 0x2

    sput v0, Lcom/android/ResearchApp;->MAX_FREE_LP_VARS:I

    .line 14
    const/4 v0, 0x4

    sput v0, Lcom/android/ResearchApp;->MAX_FREE_LP_RESTR:I

    .line 16
    const/4 v0, 0x3

    sput v0, Lcom/android/ResearchApp;->MAX_FREE_TP_SIZE:I

    return-void
.end method

0x4  关门善后
打包签名就不再赘述了
真♂机试用图
Screenshot_2017-04-14-14-52-45.png
成品
链接: http://pan.baidu.com/s/1o8LkqV4 密码: 52pj
补充一下原文件地址http://www.wandoujia.com/apps/com.simplex
@
冥界3大法王 感谢观看~
Screenshot_2017-04-14-13-41-53.png

点评

安卓4.0以上没有调试者模式,不然显示当前CPU的路径,你是如何做到的?书上说的三击开启隐藏项也没有找到呢?  发表于 2017-5-10 18:17
亲爱的有没有原版,我好练手啊~~  发表于 2017-5-10 15:10

免费评分

参与人数 13威望 +1 吾爱币 +21 热心值 +13 收起 理由
wmsuper + 1 + 1 我很赞同!
fu90 + 1 + 1 用心讨论,共获提升!
qtfreet00 + 1 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ixiaosha + 1 + 1 热心回复!
superzhangxue + 1 + 1 谢谢@Thanks!
Binarian + 1 + 1 谢谢@Thanks!
dadao815 + 1 + 1 谢谢@Thanks!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qmopl + 1 + 1 已答复!
数字蜀黍 + 1 + 1 谢谢@Thanks!
ArrayList + 1 + 1 用心讨论,共获提升!
非常猥锁 + 1 + 1 不错,晚饭加鸡脚
倾城丶 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| fisher 发表于 2017-4-19 22:58
SQLite 发表于 2017-4-15 19:11
楼主好!已拜读。想问个问题:
为何将图中源码第6行 : const/4 v0, 0x1   改为 :  const/4 v0, 0x0    ...

抱歉回复有点多,现在才看到。因为
[Java] 纯文本查看 复制代码
const/4 v0, 0x1
sput-boolean v0, Lcom/android/ResearchApp;->IS_FREE:Z

这里翻译过来就是给IS_FREE做了一个赋值,IS_FREE 是否FREE版,如果其bool值为FALSE,很明显这里就不是FREE版了,变身为PRO版.
实际上这个教程并不是完整的,这样做出来的APK需要破解Android核心.
当然,这里主要是分享一下思路,所以就不作其他方面的扩展啦~
 楼主| fisher 发表于 2017-5-10 18:33
本帖最后由 fisher 于 2017-5-10 19:23 编辑

@冥界3大法王  那个不是调试者模式。显示当前activity太容易了。 shell dumpsys Activity就能取出来当前activity,不过我习惯性偷懒。直接用了 当前activity 这个小工具

百度这个app名字  当前activity

点评

哪有下载呢,亲,我就喜欢这种监控路径的工具,网上下载了几个抓包的也有类似效果,但该死的华为没root  发表于 2017-5-10 18:50
黑山走天涯 发表于 2017-4-14 15:12
非常猥锁 发表于 2017-4-14 15:28
能看源码?
小蒲 发表于 2017-4-14 15:41
感谢分享
 楼主| fisher 发表于 2017-4-14 16:12

你可以在smali文件那里点击查看反编译之后的源码。尽管不是很完美,但是大致能看懂了
smith_k 发表于 2017-4-14 16:22
感谢分享
Jeysir 发表于 2017-4-14 16:34
小白表示完全看不懂
龙雨 发表于 2017-4-14 17:05
谢谢分享!!
ganxie 发表于 2017-4-14 18:49
膜拜膜拜
寒玉冰菓 发表于 2017-4-14 20:14
学习参观一下。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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