一道安卓Unity逆向和apktool使用
apktool安装:Apktool
反编译apk:
1 | apktool d /.../...apk |
会在apk文件夹下生成包含如下若干文件的项目文件夹:
打包:
1 | apktool b ../../dir |
会在 项目文件夹/dist 下生成打包好的apk
未签名APK不能在安卓手机上安装
有的APP在启动时会对签名校验,要逆APP,跳过校验
keytool jarsigner 工具是jdk自带的
1 | # 在当前文件夹下生成证书 |
1 | # 使用当前目录下my-release-key.keystore证书进行apk签名 |
生成的 target.apk 就可以安装了
[MRCTF2020]PixelShooter
首先apk拖到jadx里,查看源码方法推断使用 Unity,安装后为一个飞机游戏。玩家死后有一亿分即可获得flag。
解包,将 /assets/bin/Data/Managed/Assembly-CSharp.dll 拖入 dnSpy,搜索 score关键字,找到添加分数方法,改成加一亿分:
然后重新编译,保存所有模块,按上文所说打包,生成证书,签名,安装,进入游戏很容易就获得flag了: