• APP逆向案例之(二)对加固APP进行分析和破解


    说明:对加固APP进行分析和破解,对发现新版本提示关掉

    1、先对APP窗口类行进HOOK,确定窗口提示用的是那个类。

    android hooking watch class android.app.AlertDialog

    2、发现一个非常明显的函数 setCancelable

    objection -g com.hello.qqc explore -s "android.app.Dialog.setCancelable --dump-args --dump-backtrace --dump-return"

    3、接着发现另外函数进行HOOK

    objection -g com.hello.qqc explore -s "android hooking watch class_method cn.net.tokyo.ccg.ui.fragment.dialog.UpdateDialogFragment --dump-args --dump-backtrace --dump-return"

    4、到此追的差不多地方了,要去反编译去看看源代码,由于是加固的APP先用Frida-dexdump进行脱壳

    frida-dexdump -U -f com.fantua*********ujbk

     5、在所有dex文件中搜索UpdateDialogFragment 内容 最后查出在dessess03.dex中

    grep -ril "UpdateDialogFragment" ./*.dex

    6、用 jadx 工具打开这个 dessess03.dex 文件,搜索这个UpdateDialogFragment 这个类

     7、通过再次对接着 UpdateDialogFragment 类行进hook 重新启动弹出升级窗口发现下面函数

     

    objection -g com.hello.qqc explore -s "android hooking watch class_method cn.net.tokyo.ccg.ui.fragment.dialog.UpdateDialogFragment.b --dump-args --dump-backtrace --dump-return"

     8、再次跟踪 UpdateDialogFragment.a 函数发现这个函数 判断了版本就是这了

     9、然后更改重新打包。

    9.1、重新打包时应该使用脱壳后原始APP的dex替换掉原来的壳dex

    解决:需要在使用 apktool 反编译时选择不反编译dex文件并删除壳的dex, apktool 的 -s 参数就提供了不反编译APK中的dex文件的功能。

    apktool d com.xxxxsssaae.apk -s

    在反编译完成后,删除原始的classes.dex并且将脱壳后的dex文件按照文件大小依次命名并存储到壳的dex所在的目录

    9.2、APP在加固后的入口点变成了壳的入口点,因此在重新打包之后还需要修改 AndroidMainfest.xml的入口类

    解决:修改APP的入口类,因此我们需要jadx重新打开包含关键函数的dex文件,并搜索 extends Application 的代码,最终排除第三方库和系统相关的代码,剩下cn.net.tokyo.ccg.base.App 类,在定位到后,将反编译结果目录下AndroidManifest.xml 清单文件内 节点中 android:name 对应的值修改为找到的完整类名,修改完毕后 使用如下命令 apktool b com.xxxxsssaae 对结果目录重新进行编译。

    然后使用jarsigner签名工具生成一个签名文件,并且使用生成的签名文件对打包好的app 进行签名。

    keytool -genkey -alias abc.keystore -keyalg RSA -validity 2000 -keystore abc.keystore

    jarsigner -verbose -keystore abc.keystore -signedjar zhibo_patch.apk zhibo.apk abc.keystore

  • 相关阅读:
    如何重装Windows Mirosoft Store
    关于webpack(v5.74.0)的钩子在插件中的应用
    CSS页面基本布局
    设计模式笔记03-工厂模式-Factory
    Oracle 的LogMiner
    03【Jedis连接Redis服务器】
    JNI入门
    【湖科大教书匠】计算机网络随堂笔记第5章(计算机网络运输层)
    系统韧性研究(1)| 何谓「系统韧性」?
    桌面云涉及到的概念
  • 原文地址:https://blog.csdn.net/zhaoxiaoba123/article/details/128052421