吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 52154|回复: 32
收起左侧

[Android 原创] 管家婆物联通apk破解教程

  [复制链接]
matrix3306 发表于 2015-10-26 14:57
本帖最后由 matrix3306 于 2015-10-27 23:20 编辑

一、写在前面:安卓逆向方面我也是新手,本教程如有问题欢迎站内信指正。
android逆向必备:JDK、Android SDK、apktool、(其他基于apktool的整合型工具如apkide、apktoolkit、apkdb等),静态/动态分析工具IDA(6.1以上)
jdk和android sdk的安装看教程http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html 和 http://jingyan.baidu.com/article/63f23628ea4d480209ab3d4d.html
本文不在赘述。
二、现在正式开始教程了:
古人云:谋定而后动。先让我们了解一下android逆向的常规步骤吧。
1、使用apktool反编译apk安装包(或者直接解压apk然后用apktool反编译classes.dex文件也行)
2、阅读反编译的源码找到需要破解的功能并破解
3、使用apktool将修改好的源码进行回编
4、将回编好的apk签名
5、真机/模拟器测试,如果有问题回到第二步继续。
好了,现在让我们开始破解之旅吧。
三、正式破解:
0、在逆向之前我们先在真机/模拟器上运行一下要破解的apk,看看受限制的功能和相关的提示。(这步俗称踩点)
1、首先是第一步逆向。我们可以选择运行apkide,然后将要逆向的apk拖进来。或者右键apk使用apkdb反编译。如下图:
QQ截图20151026115341.png QQ截图20151026103614.png

反编译完成后我们可以看到目录中生成了这些文件和文件夹:

QQ截图20151026115736.png
(1) assets 文件夹
此文件夹可以存放资源文件。至于是神马资源文件,怎么读取,这些我们就不用深究了,因为不常改。
(2) res 文件夹
主要用来存放资源。此文件夹下可以创建子文件,常见的有:
anim 动画
drawable 图片
color 颜色
menu 菜单
layout 布局
values 常量值
xml 任意xml文件
我们修改apk时,一般就在这里修改。比如汉化,改名称,去广告,改字体颜色,大小神马的。
(3)smali
里面主要是dex文件反编译得到的smali文件。不会java的改不起。顶多搜几个关键词汉化一下。值得注意的是,汉化时不能直接输入汉字,而应输入对应的十六进制代码。
(4)AndroidManifest.xml
此文件是apk中最重要的文件之一。它是apk的全局配置文件,提供了android系统所需要的关于该应用的必要信息。
(5)lib 一些库文件
(6)apktool.yml apktool反编译后自动生成的文件,请不要修改或删除,否则可能会无法回编。

2、修改:
根据踩点信息可知,当软件在运行时会有“试用”字样的提示,我们顺藤摸瓜,在apkide内搜索“试用”->转换为unicode 点击搜索全部。
QQ截图20151026121121.png
可用看到搜索到了MainActivity.smali文件,双击它会自动打开这个文件。
QQ截图20151026122712.png
通过阅读这个文件里的setEndDate()方法我们可以看的出这里用了一个switch语句来判断过期(看不懂smali语法的同学可以参考我博客的http://vipcloud.cc/index.php/archives/88/这篇文章,或者直接使用apkide的打开Java源码功能阅读。不过强烈建议阅读smali源码,因为翻译的java源码有时候不够准确,会误导人。)
QQ截图20151026123126.png QQ截图20151026123316.png

阅读setEndDate()方法我们发现这个switch语句的判断条件就是 ZhuceTime.GUOQI()方法的返回值。那么问题就简单了,我们可以分两步来破解。
首先,我们修改/media/wlgjty/functional/ZhuceTime.smali文件中的 .field private static final Shiyong_day:I = 0xc 为.field private static final Shiyong_day:I = 0xffff。这样如果用户第一次安装就会写入65535天的试用期(大概170多年吧
但是我们发现这样破解并不算完美,只是增加了试用期而已。那么我们继续读/media/wlgjty/functional/ZhuceTime.smali文件的GUOQI()方法,我们发现当它返回-6的时候。switch语句就会MainActivity.smali文件的
    .line 597
    const-string v2, "\u60a8\u7684\u624b\u673a\u5df2\u505c\u7528\uff01"

    invoke-static {p0, v2}, Lcom/media/wlgjty/functional/Functional;->SHOWTOAST(Landroid/content/Context;Ljava/lang/CharSequence;)V

    goto :goto_0
这里然后报出“您的手机已停用”这样的错误。解决办法就是把/media/wlgjty/functional/ZhuceTime.smali文件中的返回值-0x6替换为-0x4。
同理,修改所有条件的返回值即可绕过时间限制和设备限制。
当然,为了保险起见,你也可以选择把MainActivity.smali中setEndDate()方法对应的响应也改掉,比如:
将:pswitch_X中的语句全部替换成
    invoke-direct {p0}, Lcom/media/wlgjty/main/MainActivity;->isShowLogin()V

    .line 601
    invoke-virtual {p0}, Lcom/media/wlgjty/main/MainActivity;->setdenglu1()V
这样就可以了。最后,我们修改一下/res/layout/目录下对应的布局文件,
比如:删掉zhuce.xml中的 <TextView android:gravity="right" android:layout_width="80.0dip" android:layout_height="fill_parent" android:layout_marginLeft="100.0dip" android:text="到期时间:" style="@style/EmphasisBrownFontStyle" />
即可干掉到期时间的显示(放心删吧,因为ZhuceTime.smali文件和MainActivity.smsli文件中对应逻辑的处理方法我们已经改掉了,这里显示的时间是没用的了)。
同理,你可以修改掉login_tishi.xml中的文字用来装13
当然,如果你看那个“通用版”一类的字样心烦,你也可以选择把项目源码中的“\u901a\u7528\u7248”全部替换成“\u7834\u89e3\u7248”(你要写的版本名字的unicode编码)。
3、回编&&4、签名:
appide可以直接点击菜单栏的编译->编译成apk来进行回编,当右下角的进度条走完就编译好了。
QQ截图20151026144538.png QQ截图20151026144707.png
有同学会发现apkide编译有时候会卡死,这大部分是因为apktool版本问题造成无法回编。解决办法就是,换一个版本再回编
这里推荐apkdb,这个工具集成了很多版本的apktool,同时还会在失败时自动切换版本,编译后自动加签名,可以避免新手敲太多命令十分好用。使用方法也很简单,右键项目目录->使用apkdb编译,然后选版本回车即可。
5、最后别忘了在真机或者模拟器上测试你修改的结果哦。
QQ截图20151026145520.png QQ截图20151026145539.png QQ截图20151026145607.png QQ截图20151026145617.png
经过修改系统时间等一系列测试,我们发现已经成功破解掉限制了。

破解出来的apk在此:管家婆物联通安卓破解版 :http://www.52pojie.cn/thread-424557-1-1.html管家婆物联通餐饮行业安卓app破解版: http://www.52pojie.cn/thread-425711-1-1.html


注意:目前破解并不完美,已知bug如下:连入测试服务器完全正常,但连入正式服务器时报javaXXXX错误。由于我没有正式服务器程序或者地址,如果谁能提供一个正式服务器的测试账号什么的就可以把它完美破解了(有问题欢迎站内信联系我)。
后记:强烈推荐 世事繁华皆成空 大牛的全套教程 http://www.52pojie.cn/thread-408645-1-1.html  我是写完了才发现原来好多知识点我讲罗嗦了





免费评分

参与人数 10威望 +1 热心值 +10 收起 理由
miracles + 1 用心讨论,共获提升!
boy101947 + 1 用心讨论,共获提升!
奥多比 + 1 新手的福音呀!楼主出个视频教程
jori + 1 谢谢@Thanks!
jiachengzi + 1 热心回复!
yezhiyu123 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
布仔说神话 + 1 谢谢@Thanks!
Hmily + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
qaz003 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
jack0323 + 1 精品教程,值得大家学习!

查看全部评分

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

头像被屏蔽
xiugoo 发表于 2015-10-26 15:04
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| matrix3306 发表于 2015-10-26 15:28
jack0323 发表于 2015-10-26 15:29
Tisrop 发表于 2015-10-26 22:34
感谢楼主分享 我现在也在研究安卓破解
wa22 发表于 2015-10-27 00:34
精品,值得学习。
吾爱抓鸡 发表于 2015-10-27 03:11
好像很强大的样子!!
baigecxh 发表于 2015-10-27 10:30
不知道这个是干嘛用的,但是看起来真的很强大
tzone 发表于 2015-10-27 11:17
看着功能好强大,不知道如何使用
kill 发表于 2015-10-27 23:48
这个教程需要点时间来消化 了,谢谢楼主发帖。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 21:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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