第八课、真实app去壳、去升级
第八课、真实app去壳、去升级1、去壳
[*]1 frida-dexdump -U -f com.hello.qqc全自动去壳
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211212235416.png
[*]2 grep -ril "MainActivity" 搜索MainActivity在哪个dex中
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211212251860.png
2、快速定位
[*]1 objectionhook弹窗的几种方式
[*]window
[*]dialog
[*]2 android hooking watch class android.app.Dialog 查看源码进行尝试hook
[*]3 随便点击后发现被调用 大概是这个类 下面就是回溯调用栈
[*](agent) Hooking android.app.Dialog.setCancelable(boolean)设置不可取消的api
[*]4hook 这个方法看看调用栈
[*]android hooking watch class_method android.app.Dialog.setCancelable --dump-args --dump-backtrace --dump-return
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211223359861.png
[*]结合静态jadx代码进行分析
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211224108961.png
[*]
3、内存可视化漫游
[*]不确定找到的位置是不是要找的地方
[*]加载wallbreaker回溯代码
[*]plugin load /root/.objection/plugins/Wallbreaker
[*]plugin wallbreaker classdump 看一个类的结构
plugin wallbreaker classsearch 根据一个名字找一个接近的类
plugin wallbreaker objectdump 看对象的实例的内容
plugin wallbreaker objectsearch 找一个对象实例
[*]plugin wallbreaker objectsearch cn.net.tokyo.ccg.ui.fragment.dialog.Update
DialogFragment
: UpdateDialogFragment{372b25e #1 UpdateDialogFragment}
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211225016413.png
[*]可见即可得得到内存地址
[*]dump出这个实例
[*]plugin wallbreaker objectdump --fullname 0x1dca
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211225441982.png
[*]继续dump cn.net.tokyo.ccg.bean.VersionBean$Version a这个实例对象
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211225559407.png
[*]找到确定就是这个代码的位置
[*]android hooking watch class cn.net.tokyo.ccg.ui.fragment.dialog.UpdateDialogFragment 看看调用栈
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211230630393.png
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211231107861.png
[*]调用了b
[*]目标是不要让这个窗口起来就是看b代码逻辑让窗口不起来
[*]查看b的调用栈代码
[*]android hooking watch class_method cn.net.tokyo.ccg.ui.fragment.dialog.UpdateDialogFragment.b--dump-args --dump-backtrace --dump-return
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211231434154.png
[*]发现是从MainActivity过来的
[*]https://img-pool-own.oss-cn-shanghai.aliyuncs.com/img/image-20230211231835108.png
[*]找到这个参数是versionbean的重载
[*]@Override // b.a.a.a.d.b.z
public void a(VersionBean.Version version, boolean z) {
this.f1696a = version.url;
if (version != null) {
UpdateDialogFragment.b(version, z).show(getSupportFragmentManager(), UpdateDialogFragment.class.getSimpleName());
}
}
[*]修改这部分代码即可
4、定位代码思路5、修改源码实现
[*]1、apktool 解包
[*]2、替换dex修改文件名
[*]3、重打包 签名
[*]4、apktool 再次解包 修改smile代码
[*]5、重打包 签名
沙发做一回 需要密码的那种可以去吗,一直想学 检测frida怎么过? 感谢分享 沙发做一回 感谢分享!学习下 APP学习看一下 我觉得我要先学一下英文 轻轻cao,肉丝弟子