当前位置: 首页 > news >正文

25.安卓逆向2-frida hook技术-拦截弹框事件(拦截强制更新弹框和解决jadx加载dex文件不全问题)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:图灵Python学院

工具下载:

链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89

提取码:zy89

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:24.安卓逆向2-壳与frida-dexdump砸壳

有些app不更新的话会弹出一个窗口,让我更新,如果不更新关闭弹框,它就会退出app,强制让我们更新,接下来就写怎么解决这个问题

首先打开 Charles 抓一下包,看个东西,如下图,不关闭更新弹框,有些数据包就没法抓,显示unknown,只有把更新弹框过了才行

开始干掉弹框,怎么干掉?就是在更新弹框中找文字,如下图立即更新这个文字,这样我们就可以根据这个文字使用jadx反编译apk,然后搜索这个文字,也就是看源码找内容

然后打开jadx反编译apk,如下图发现,它的源码被保护起来了,也就是加壳了

然后使用MT管理器查看app加壳的方式,如下图可以看到它采用360加固

然后解决壳,使用 frida-dexdump 砸壳,如下图使用frida-dexdump可能会出现错误,这个错误是不影响的

如下图虽然 frida-dexdump 出错了,但它还是把源码下载下来了,然后全选把它们拖进jadx里

如下图全选拖进去之后,它还是很少,这是jadx的问题,需要进行设置

首先点击首选项

把下图红框位置改成no,然后点击保存,下图红框意思是加载dex文件是检测dex文件是否正确,改成no不让它检测就可以了

如下图可以看到它正常了

到这就砸壳完成,开始下一步搜索更新弹框里的文字,如下图会发现,根据更新弹框里的文字什么都搜不出来,这个办法不行,就算搜出来也不是我们想要的

然后百度搜索frida hook app强制更新,当遇到问题的时候要利用网络搜索,你要相信你遇到的前辈们也都肯定遇到了,前辈们遇到了也肯定解决了,所以要利用网络搜索

如下图搜索出来会有很多,这里一个一个的看

如下图红框,有个 UpdateDialog,接下来使用 UpdateDialog这个关键字去搜索,UpdateDialog中文意思是更新对话框(对话框就是弹框),很多app都会用UpdateDialog这样的名字,如果使用 UpdateDialog 这个名字搜不出来就继续看别的文章,总有一个可以

可以搜出来很多

下图红框的名字最符合,所以先观察一下它

如下图双击进入 UpdateDialogFragment 类

然后看到下图红框的文字,它就很贴合更新弹框,然后继续观察别的

然后下图红框的方法,startDownloadApp它的中文名是 启动下载app

如下图双击 startDownloadApp 进入 startDownloadApp方法

然后再双击进入start方法

image-20250707203015588

然后进入start方法 startDownload 进入 startDownload方法

然后再双击

如下图进入 startDownload方法,到这就很明显是下载app的方法,然后通过最开始的名字 onServiceConnected,ServiceConnected中文意思是服务已连接(意思是和服务器以建立好连接),然后现在就能确定 UpdateDialogFragment 类就是更新弹框的类

然后回到下图位置,也就是 UpdateDialogFragment 类中

然后鼠标滚轮上下滑动观察附近的代码,可以看到下图红框位置,installApp中文意思是安装app

它在下图红框位置进行了调用,onUpdateClick意思是 on更新点击,意思是更新按钮的点击事件,也就是点击立即更新按钮执行的代码

通过fridahook掉installApp方法进行验证是不是点击立即更新按钮后执行的代码,如下图鼠标右击选择复制为frida片段

这里注意注入Firda要用重启的方式,如下图注入下方代码后,点击立即更新按钮它不会更新了,只会打印,所以现在就通过了验证 UpdateDialogFragment 类就是更新弹框的代码,接下来找,更新弹框在哪弹出来的

然后还是在这附近观察,然后看到下图红框的代码,initData中文意思是初始化数据,然后 UpdateDialogFragment 类是更新弹框的代码,这里的initData结合类的作用它的意思是初始化弹框数据,下图红框中还有一个getNewVersion,中文意思是获取最新版本,把getNewVersion方法hook掉让它返回当前app的版本应该也能不弹框,但还有更好的东西

所有app打开弹框,一般都会有show这个关键词,接下来找一找这个关键词,如下图红框show方法,接下来hook它

然后鼠标右击复制为frida片段

把下图红框的代码注释掉,不让它执行原本的代码,然后app不会弹出更新弹框了,可以正常使用了


img

http://www.dtcms.com/a/270154.html

相关文章:

  • 从0到1搭建ELK日志收集平台
  • 扣子Coze飞书多维表插件参数获取流程
  • 如何利用机器学习(ML)检测异常登录行为
  • 深深浅浅地理解 Python 中的 `Barrier` 对象
  • emscripten编译cocos2dx项目输入框支持中文
  • MySQL 全库表记录统计与空间估算教程
  • 猿人学js逆向比赛第一届第十五题
  • SpringAI学习笔记-MCP服务器简单示例
  • 软考(软件设计师)数据库原理-SQL
  • HTML+JS+CSS制作一个数独游戏
  • CSS揭秘:9.自适应的椭圆
  • 记一次mount point is busy问题排查
  • 数据结构 —— 栈(stack)在算法思维中的巧妙运用
  • C++进阶—二叉树进阶
  • 笔记/TCP/IP四层模型
  • Fence-音视频设备资源同步
  • IT 技术领域创作者三周年纪念日
  • 【CodeTop】每日练习 2025.7.8
  • Java 阻塞队列:7种类型全解析
  • 起重机械的工作循环门限值计算逻辑
  • 容器技术入门与Docker环境部署
  • Ntfs!LfsRestartLogFile函数分析之两次调用Ntfs!LfsReadRestart函数的目的
  • (生活比喻-图文并茂)http2.0和http3.0的队头阻塞,http2.0应用层解决,TCP层存在,3.0就是彻底解决,到底怎么理解区别???
  • AI健康小屋“15分钟服务圈”:如何重构社区健康生态?
  • MyBatis-Plus:深入探索与最佳实践
  • C#,js如何对网页超文本内容按行拆分,选择第A-B个字符返回HTM?
  • stack_queue扩展学习 --- 反向迭代器
  • 戴尔3670装win11和ubuntu双系统踩坑教程
  • 自动驾驶传感器的标定与数据融合
  • 【Android】组件及布局介绍