Android破取某漫画app获得VIP权限
0.前言
昨天去公司加班,写业务代码写的我是心烦意乱,今天本打算再继续写的,但是就像肉吃多了也腻一样,想搞点新花样试试,最近对写外挂和破解app很有兴趣,想到最近某漫画app里的某部漫画需要用vip权限才能看,那今天我就想破解这个app,免费获取vip权限。
注意:只是用来学习交流,尊重正版尊重创作者,不要用于非法用途
1.准备工具
1.1 apktool
现在好像比较流行用android killer,但是没有mac版,就用这个了,用来解压apk和重新打包apk。
1.2 dex2jar
用来将dex文件转换成jar包
1.3 jdgui
反编译jar包,得到java代码
1.4sublime
用来查看代码 本文不涉及这些工具的使用方法,只是描写一下思路,具体使用方法请google。
2.过程
2.1解压apk
apk就是zip打包的,将apk后缀修改为zip,所以直接用zip解压就行,如果apk用v2签名的话,解压的时候会报错,这个时候不要担心,硬解,用命令行unzip **.apk。
2.2用dex2jar得到jar包
2.3用jdgui反编译jar包
2.4分析
用jdgui查看java代码,你会发现代码是经过混淆的,这很正常,压根也没期望它不会混淆,混淆不要紧,无非就是变量方法换换名字嘛,耐心分析就好。咱们先正向的想一下,咱们来做一个app,vip权限一般都是在你登录的时候服务器返回给你的一个字段,用来标注你是vip,然后你存储在本地,写一个方法可以判断你是不是vip,打开需要vip的章节的时候先判断你是不是vip,如果是的话就可以打开该锁定章节了。咱们要做的就是修改这个方法,判断vip的时候始终返回true。 既然大致思路有了,那么最主要的问题就是如何确定这是哪个方法在哪个类里。我们先看一下apk的账户页面
可以看到这个蓝色的item就是显示vip信息的。一般app都会把这些文字放在string.xml这种资源文件里,资源文件又会生成R文件标记它的位置,一个int类型,我的思路是通过找到这个R文件中该string的int值,看哪个类的TextView用到了这个string,这个TextView肯定会根据是否是vip而显示不同的东西,然后基本上就可以找到咱们前面说的那个判断vip的方法了
2.5操作
apktool解压apk 得到的文件如下图所示
得到资源文件和smail文件,用sublime打开,打开string.xml文件,搜索**漫画VIP,可以看到然后全局搜索vip_state_1这就是这个string的id,然后全局搜索id可以看到VipInfoView.smail里使用了string,VipInfoView,名字也很清晰了,肯定就是它了,可以看到在VipInfoView的a()方法里调用textView的setText设置了这个string。 这里先不着急看smail文件,打开jdgui,查看VipInfoView.class,搜索a方法,看看在哪里引用,虽然VipInfoView里没有直接引用,但是我会发现一个方法,名字很直白
public void setLoginState(com.netease.cartoonreader.i.b paramb){boolean bool1 = q.a().c();...bool2 = q.a().c();if (!bool1) {break label452;}....label452:this.g.setText(2131625239);...}复制代码
我省略了大部分代码,你会发现如果bool1为false就会跳到label452,调用textview设置text,2131625239有没有很熟悉?这就是那个string的id的十进制表示。所以我推断这个q.a().c()方法就是用来判断vip的,打开com/netease/cartoonreader/e/q这个smail文件 找到这个c方法,修改如下
.method public c()Z.locals 5.prologueconst/4 v4, 0x1return v4.end method
复制代码
关于smail其实我也不是很精通,只是知道一些基本的语法,大家自己去看看就好,不难 使用apktool重新打包,签名安装。最终效果
3总结
整体看难度不大,大家学习参考就好。
关注我的公众号
Android破取某漫画app获得VIP权限相关推荐
- Python项目实战抓取-某漫画app逆向
目录 一工具的准备 二项目思路 三简易代码提供参考 一工具的准备 1.fiddler抓包工具 ,夜神模拟器 2.python环境,Java环境 3.漫画app准备 4.java反编译工具 二项目思路 ...
- android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码...
Android精选源码 一个可以上拉下滑的Ui效果,觉得好看可以学学 APP登陆页面适配 一款采用MVP的的完整漫画APP源码 android实现钉钉地图效果源码 一个使用单个文字生成壁纸图片的app ...
- android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码
Android精选源码 一个可以上拉下滑的Ui效果,觉得好看可以学学 APP登陆页面适配 一款采用MVP的的完整漫画APP源码 android实现钉钉地图效果源码 一个使用单个文字生成壁纸图片的app ...
- android 挂载system 读写,android使用mount挂载/system/app为读写权限,删除或替换系统应用...
注意:以下代码中#开头的则为需要执行的shell命令,其他的为打印的结果.#代表需要使用ROOT权限(su)执行,所以想要修改您android手机某个目录挂载为读写,首先需要有ROOT权限! 先要得到 ...
- android真实项目教程(二)——漫画App初构_by_CJJ
大家晚上好,我是CJJ,继昨天写好框架之后,今天上班一直在想做什么东西...本来想拿我即将要上交的毕业设计做教程的,但是想想好像在重复工作那样子....呵呵 ... 伟大的先人说过,不要重复制造轮子. ...
- 【Android】RecycleView简单仿漫画APP图片相关样式
真的真的想不到起什么标题好了,这次的内容真的是太简单了,没有什么挑战性,一天以内就完成了.最近在学kotlin,也会有一份kotlin的代码,鉴于很多人都是从java开始进行android开发的,ko ...
- 一款漫画APP的实现(二)- 数据拉取 ①
本篇主要分享一下之前提到的漫画APP中数据拉取的技术实现 在开始之前,我们需要明确两点:我们的漫画数据从哪来?利用什么工具获取这些数据? 对于第一点,由于我们大部分人可能都没有能直接获取漫画原稿链接的 ...
- 一款漫画APP的实现(三)- 数据拉取 ② - 拉取速度改进
在上篇博客里我们谈到了漫画数据的拉取思路以及获取数据的基本操作,不过最后我们也遇到了一些问题. 上篇里,我们发现获取到的数据中,只有图片是无法正常显示的,而在文章最后我们也知道了造成这一问题的原因就在 ...
- android采用MVP漫画APP、适配刘海屏、小黄车主界面、录音波浪动画、综合APP等源码
Android精选源码 一款采用MVP架构的仿完整漫画APP源码 Android适配刘海屏幕 基于Xmpp协议的即时通讯社交软件(客户端+服务端) Android小黄车(ofo)app主页菜单效果 一 ...
最新文章
- Adobe Flash player 10 提示:Error#2044:未处理的IOErrorEvent. text=Error#2036:加载未完成 的解决方法
- 不同权限访问详细细节
- JAVA中的GridView每一个赋值,在ASP.NET 2.0中操作数据之六十二:GridView批量更新数据...
- ubuntu 查看进程信息
- 又一位!发40篇SCI,90后博士受聘985教授
- 五笔字型键盘字根图_手机输入法的派别之争:九宫格和全键盘,哪个更科学?...
- java 实例 登录用户 equals的用法
- 基于asp. net sql快餐外卖设计网站成品
- 使用memcpy()时报错
- 中控考勤机无线连接不上服务器,中控考勤机安装及常见问题【图解】
- 《分布式机器学习:算法、理论与实践》
- 2pin接口耳机_耳机插头接线示意图
- knn.predict()报错 Expected 2D array, got 1D array instead: array=[18 90]. Reshape your data either usi
- 数字化住宅小区对计算机网络有需求,浅谈智能小区宽带接入及其技术发展趋势...
- Powershell脚本:一键优化windows 10(原版)
- 小僧去接众僧来赴道 水浒
- 全网刷屏的可达鸭,单个炒到2000元?湖北人要错过了?
- 黄河小浪底调水调沙问题(mathmatica)
- 网络图像的文本识别(阿里天池竞赛)
- springboot自动创建Oracle,一键生成项目 SpringBoot项目代码生成器 支持Oracle 支持MySql...