Android实操(一):绕过VIP权限

准备环境:

酷我音乐车机版5.0.0.0原版.apk

apktool

签名工具

java自带工具key证书生成

模拟器

 

一:正常安装APP,查看VIP限制

随便点点,看看哪里有需要VIP才可以使用的功能,发现音效和皮肤都需VIP权限

汽车音效示意图:

 

 

 皮肤使用示意图:

 

 

 

二、反编译该apk,得到apk源码

工具:apktool

使用方法:进入apktool目录,进入cmd,通过命令     apktool d 目标apk得到源码   (未选择目录将会反编译到当前目录)

apktool.bat d E:\001\05_Android程序破解示例\酷我音乐车机版5.0.0.0原版.apk

 

反编译完成

 

 

 

 

 

三、查找与提示相关的代码文件,从提示开始找,一直找到有逻辑关系的代码文件修改逻辑关系跳过VIP检验

通过  notepad++  查找源码文件夹下包含   “即享专属汽车音效特权”  字符串的代码文件

 

 

 

 查找结果会出现在下方

 

 

 

点击进入该文件,无逻辑语句,发现name属性名称,按相同步骤再次查找该name   dialog_content_tips_use_car_effect

 

 

 

找到3个含有该name的文件,可以找出ID为   0x7f08001d,按相同步骤再次进行查找

 

 

 

共找出4处含有该ID的文件,显然下面两个是含有判断语句的代码块

 

 

 

 

 

 

可以看到有if语句在判断是否为会员情况,该判断条件是若v0不等于0,则执行下面这条非会员提示的语句,此时我们可以将v0赋值为0,也可以直接使用goto语句跳过这段代码来实现绕过VIP判断,下面的代码块修改方式相同,修改完成后保存即可。

 

 

 

 

 

 

四、根据经验,直接在目录树中查找

一般字符串都会保存在反编译后的res文件夹下values文件夹下的strings.xml文件中

 

 

打开strings.xml文件,查找  “即享专属汽车皮肤特权”,找到name属性值

 

 

 

 

 

 

 一般name属性会存放在res下values下的public.xml文件下,找到ID属性

 

 根据ID属性值,从文件夹中找含有ID值的代码文件,同上,使用goto修改判断语句直接跳过该判断

 

 

五、保存修改后的文件,使用apktool重新编译该文件为apk包

步骤:在apktool文件夹下打开cmd,使用命令   apktool.bat b 目标文件夹(重编译后的apk在目标文件夹下的dist目录下)

命令:apktool.bat b D:\Android工具\apktool\酷我音乐车机版5.0.0.0原版

重编译完成

 

 

 

 六、重新签名

此时编译后的包是没有签名的,没有签名安卓系统不会让他安装,所以需要我们自己给他签一下名,用java自带工具也可以签名,这里用一款签名软件来签名

生成签名证书:

1.进入一个目录,打开cmd

输入命令:keytool -genkey -v -keystore myApp.keystore -alias myApp.keystore -keyalg RSA -validity 30000

命令详细说明

key dec
keytool  工具名称(固定写法)
)-genkey 执行的是生成数字证书操作(固定写法)
-v 打印生成证书的详细信息
-keystore myApp.keystore 生成的证书的文件名为"myApp.keystore"(根据需求,设置你的证书名)
alias myApp.keystore 证书的别名为"myApp.keystore"。(一般和上面的文件名相同,可以不同,但要记好,签名时会用(A))
-keyalg RSA 生成密钥文件采用的算法为RSA(固定写法)
-validity 3000 该数字证书的有效期为30000天,30000天之后该证书将失效

 

按格式执行命令,

第一步会要求创建一个密钥。自己输入一个并记好(后面签名时还会用到的)。输入后并不会显示在窗口中,直接回车后,要求再次输入,重复输入后回车。

然后按提示填写各个问题。

最后在生成证书时会要求输入一个密钥,比如 : android 这个密钥是后面签名要用到的务必记好(B),建议与上面密钥相同。输入后回车

就可以在当前命令行的位置生成如:"myApp.keystore"的证书文件。

 

 

生成文件

使用工具对APP进行签名,最后提示success表示签名成功,签名后会在源文件夹出现一个***sign.apk即为签名后的apk,安装此apk即可

 

 使用命令给apk签名

把apk 与 myApp.keystore 放在同一目录下(不放在同一目录下也可以。放同目录下省去了配置路径的麻烦)

在该目录下执行命令: 

jarsigner -verbose -keystore myApp.keystore -signedjar android-release-signed.apk android-release-unsigned.apk myApp.keystore

 

命令详细说明

key dec
jarsigner 工具称名(固定写法)
-verbose 显示出签名详细信息
-keystore myApp.keystore myApp.keystore 要使用的签名证书文件
-signedjar android-release-signed.apk 签名后的文件名
android-release-unsigned.apk 要签名的文件
myApp.keystore 别名,即(A)步中的别名

 

执行上面命令会要求输入签名密码,比如 android (上面(B)位置提到的)后回车,会在同目录下生成一个签好名的的android-release-signed.apk即为可发布的签名包

 

 

 

 

七、验证是否绕过VIP限制

音效验证:

 

 

 

皮肤验证:

 

 

 

posted @ 2021-06-23 12:12  终末少女的旅行  阅读(1897)  评论(0编辑  收藏  举报