前言
本次修改中主要用到的工具:
工具 | 用途 |
---|---|
夜神模拟器 | 用于安装MT管理器、Apk包、配合Fiddler抓包等 |
Fiddler | 用于抓包、拦截Apk请求等 |
MT管理器 | 查看apk是否加固;解包资源;打包资源;签名等 |
jadx-gui | 用于打开apk或classes.dex等文件,可用于字符串搜索(但.bytes中字符串无法搜索到) |
BlackDex | 脱壳程序,如果Apk存在加固,可以用该软件尝试脱壳 |
UABEA | 用于查看 .ab 文件,由于某些配置项存放在二进制文件中,用字符串搜索不到,所以用该工具进行查看和修改 |
baksmali | 用于将dex文件解包为smali文件 |
smali | 用于将smali文件打包为dex文件 |
JDK | jadx、jar工具等需要JDK,自行安装配置 |
Fiddler抓包分析
软件配置
参考文章 雷电模拟器的Fiddler抓包配置全过程 进行配置完成后,即可抓取到模拟器中的所有请求
请求拦截
点击工具栏 Tools
-> Customize Rules
找到 OnBeforeRequest 函数,在函数中加入代码进行请求拦截,例如:
if( oSession.host=="192.168.1.100:8001" ){
oSession.host="192.168.1.200:8002";
}
参考文章
jadx查看APK
打开jadx-gui会要求安装JDK,软件会自动打开JDK官方下载地址,下载安装即可。
在jadx-gui中可直接打开apk安装包,也可以单独打开某个classes.dex。
这里主要利用jadx-gui的字符串搜索功能,进行一些比较明显的字符搜索,可以尝试所有软件中的提示信息、弹窗信息、抓包中的请求地址等。
另外,jadx-gui还可以动态调试apk,以及配合Frida进行hook调试,参考:jadx动态调试安卓apk
MT解包APK
直接安装MT管理器官方版即可,在MT管理器中,点击apk包,查看是否加固。
在apk信息界面中点查看
按钮,进入apk包内,长按需要解包的文件,点击解压->
按钮,将文件解压到右侧目录中。例如:
- assets目录
- classes.dex文件等
修改资源文件
修改文件
本次主要修改了 assets/Config_dodsdk.bytes
、 assets/Config_dyxsb.bytes
、assets/urlConfig.json
、 assets/ab/assets_resources_config_platforminfo.bytes.ab
文件,更改文件中的服务器地址信息
修改代码文件
修改文件
本次主要修改了com/dodjoy/dodsdk/api/DodCoreConfig.smali
文件,更改文件中的服务器地址信息
该文件存在于dex代码文件中,所以需要利用工具将dex反编译为smali文件,再进行修改。
smali/baksmali,是dex格式文件与smali文件的转换工具
反编译dex
java -jar baksmali.jar d classes.dex
该命令会在运行目录下创建一个out文件夹,生成所有对应的smali文件。
编译smali
java -jar smali.jar a out
该命令会将运行目录下out文件夹中的smali文件,编译为out.dex文件
MT打包APK
在MT管理器右侧目录中,长按需要打包进apk内的文件,点击<-添加
按钮,将所有修改的文件替换完毕后,左侧目录返回到apk存放目录。
MT签名APK
点击apk文件,在弹出的界面中,点击功能
按钮,点击APK签名
按钮,即可完成APK签名。
评论