说明:对加固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 清单文件内 <Application> 节点中 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

APP逆向案例之(二)对加固APP进行分析和破解相关推荐

  1. App逆向案例 X嘟牛 - Frida监听 WT-JS工具还原(一)

    App逆向案例 X嘟牛 - Frida监听 & WT-JS工具还原(一) 提示:文章仅供参考,禁止用于非法途径: 文章目录 App逆向案例 X嘟牛 - Frida监听 & WT-JS工 ...

  2. 精品连载丨安卓 App 逆向课程之二逆向神器 frida 的介绍

    " 阅读本文大概需要 8 分钟. " 前面我们介绍了精品连载丨安卓 App 逆向课程一之环境配置,下面我们来接着介绍一个安卓 App 逆向大杀器-- frida. 前阵子受< ...

  3. APP逆向案例之(一)过 app 更新提示

    案例:某APP打开时提示更新 思路:想这是查壳看看有没有加壳,没有就去反编译按照提示搜索下,结果却是没有加壳反编译了下搜索,搜索不到,后来想到是不是网络传过来的,那这样是不是就要先获取本身APP的版本 ...

  4. APP逆向案例之(三)sign 参数破解

    说明:某新闻APP sign 参数 抓包发现包含内容: url: https://124.*.*.*/api/categorynews/lists 参数: 其中 sign 参数是需要变化的否则访问失败 ...

  5. [JS逆向案例]诸葛找房Cookie之acw_sc__v2分析

    目录 文章目录 目录 声明 逆向目标 抓包分析 参数定位 混淆还原 编写还原文件 执行还原命令 查看还原结果 参数分析 最终效果 部分代码 完整代码 声明 本文章中所有内容仅供学习交流,抓包内容.敏感 ...

  6. H5的APP逆向方法

    注:小肩膀新课程<安卓逆向百例>,讲解一百个APP的实战,1999¥. 现在的app开发有很多框架,不再是单纯的Java和so了.不同框架开发的app,有不同的逆向方法. 1. 常见的Ja ...

  7. App设计灵感之十二组精美的租车类App设计案例

    对于租车 App 来说,需要展示给用户的包括车辆基本信息.价格以及使用条件等,如何让用户可以更快的找到这些信息,这十二组设计案例也许会为你带来灵感. ① Car Rental App Design C ...

  8. 启xin宝app的token算法破解——逆向篇(二)

    启xin宝app的token算法破解--抓包分析篇(一)文章已经对该app进行了抓包分析,现在继续对它进行逆向. 对于一个app而言,我们要逆向app,需要知道什么呢? 逆向工具 Java基础,甚至c ...

  9. app逆向篇之实战案例-某音乐app

    提示!本文章仅供学习交流,严禁用于任何商业和非法用途,如有侵权,可联系本文作者删除! 前言 最近初学app逆向,该文章仅用来记录学习分析的过程,如有不对的地方,希望各位大佬能不吝指点 下载地址:apk ...

最新文章

  1. .Net 编码以及与这些编码关联的代码页
  2. JavaScript公共运行库
  3. java toolkit invoker_有没有哪位老哥愿意帮一下新人啊
  4. python使用selenium调用edge浏览器webdriver
  5. RGB888与RGB565颜色对照表
  6. 显卡驱动卸载工具DDU
  7. 手机储存卡数据如何恢复
  8. 关于SES2000找管线定位问题的实验
  9. 以太坊质押时代到来,开发者机遇何在?
  10. win10 删除设备和驱动器中你不要的图标
  11. 张景明:方剂【方歌】——清热剂
  12. 什么是Galil(加利尔)运动控制卡,它是用来干嘛的呢?galil开发文件dmc32.dll,动态链接库,API
  13. MySQL最重要的日志-binlog详解
  14. freemind中文方框解决
  15. 在VMware上实现vsphere client的EXSI
  16. 习题11-2 查找星期 (15分)
  17. python xlsxwriter行数_使用python库xlsxwriter库来输出各种xlsx文件的示例
  18. 预装win10降级win7系统图文教程
  19. bzoj 3563: DZY Loves Chinese
  20. 素数筛——试除法——埃式筛——欧啦筛

热门文章

  1. Nand Flash 通过调整阈值的Retry方法简单描述
  2. 华为怎么显示返回按键_苹果手机为何一直没有“返回键”?其实乔布斯生前就说出了答案!...
  3. 【vue+pc端】实现微信扫码登录pc端,后端通过微信开发平台,前端生成二维码(仅供参考)
  4. 小程序实现通讯录查询
  5. 谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo
  6. WIN10实用小技巧——快速回到桌面
  7. leaflet实现风场流动
  8. linux CentOS7安装VCS、Verdi、SCL
  9. echarts地图生成
  10. 天猫精灵接入ESP8266+DHT11(blink)