2支棒棒糖 发表于 2019-10-19 07:22:00

Android逆向学习(1)-破解某直播盒子App

## 一、反编译

用 (https://github.com/skylot/jadx) 直接打开Apk,发现没有加固,源码如下:



## 二、源码分析

\1. 打开app,通过adb查看当前activity的名称

```
adb shelldumpsys activity | grep -i run
```


com.box.base.MainActivity就是主页

\2. MainActivity有四个tab页,找到第一个tab页FragmentLivePlatform



打开FragmentLivePlatform,整个界面比较简单,为RecyclerView实现的GridView视图



找到item的点击事件



查看ActivityRoomList类,与FragmentLivePlatform类似的GridView布局,

查找item点击



jionLiveRequest请求完成后,会触发续费的dialog窗口,我们在这里拦截响应结果

我们发现请求时会传递当前界面的handler,查看hadler实现



当isSuccessFul方法返回false时,会弹出续费的dialog,那么问题简单了,我们只要修改isSuccessFul的返回值即可



修改isSuccessFul方法,永远return true

## 三、破解

\1. apktool -r d test.apk

\2. 将isSuccessFul复制到as中并修改



\3. 生成smali代码(as java2smali插件)



\4. 替换原代码(第一步apktool 反编译出来的smali文件)



\5. apktool b test, 拿到未签名的apk

\6. 签名

```
jarsigner -verbose -keystore test.keystore -signedjar G:\signapk\test.apk G:\hack\test_unsigned.apk android.keystore
```

大功告成

## 总结:

文中的app为快餐式应用,并未进行加固,代码混淆,重签名校验等安全策略,

所以并未涉及到脱壳,xposed,动态分析so,网络抓包等内容。

后面会针对性的去尝试破解,并寻找对应的安全方法


页: [1]
查看完整版本: Android逆向学习(1)-破解某直播盒子App