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

Inspeckage,动态分析安卓 APP 的 Xposed 模块

前提

我在不久前写过《 APP 接口拦截与参数破解》的博文;最近爬取APP数据时又用到了相关技术,故在此详细描述一下 Inspeckage 的功能。(环境准备本文不再赘述)

功能

在电脑上访问 http://127.0.0.1:8008 就可以看到 inspeckage 的 web 界面了。

在这里插入图片描述

点击页面,开启实时更新为 on,然后在模拟器中点击 LAUNCH APP,在页面中刷新就可以看到数据了。动态刷新开关打开,webserver就会加载手机端的所有数据。(这个开关并不是控制手机端工具的开关,仅仅是webserver是否动态刷新数据的开关。查看数据时,可以关闭动态刷新,否则展开数据会不断的被收起,无法正常查看)

(如果 web 页面没有输出结果,查看 APP is running 是否为 true,Logcat 左边分那个自动刷新按钮是否开启)

在这里插入图片描述

如图所示,inspeckage 提供了对所分析 apk 的一些基本信息,提供直接下载 apk 到电脑,截图手机屏幕等辅助功能,最核心的功能是监控 share preferences,加解密函数的使用,http 访问等。下面一一分析。

在这里插入图片描述

使用 logcat 功能需要先转发端口到本地:adb forward tcp:8887 tcp:8887。

点击 start,再点 connect 就可以在网页中实时查看该 app 的 logcat 输出。

在这里插入图片描述

Tree view 按钮可以实时浏览 app 的数据目录并直接下载文件到本地。

在这里插入图片描述

如果采用 inspeckage 来分析的话,直接在 crypto 记录中就可以看到。

在这里插入图片描述

由于这个apk 采用的 md5 方法是写在 so 中的,所以 inspeckage 的 hash 记录中并没有相关的记录。这个可以采用 hook 自定义函数的方式来解决。

反编译 apk,找到调用 so 的方法为 getPart2,同理其实也可以手动 hook 住 getPart1。

在这里插入图片描述

设置好 hook 的方法后,重启 app 生效。

在这里插入图片描述

在 hook 的记录中可以看到 getPart2 的返回值。Inspeckage 在动态分析 apk 的过程可以快速获得一些信息,节省分析的时间。

使用 Inspeckage,用户可以获取大量关于应用程序行为的信息:

模块说明
Logcat实时查看该app的logcat输出
Tree View可以实时浏览app的数据目录并直接下载文件到本地
Package Information应用基本信息(组件信息、权限信息、共享库信息)
Shared PreferencesLOG:app XML文件读写记录;Files:具体XML写入内容
Serialization反序列化记录
Crypto常见加解密记录(KEY、IV值)
Hash常见的哈希算法记录
SQLiteSQLite数据库操作记录
HTTPHTTP网络请求记录
File System文件读写记录
Misc.调用Clipboard,URL.Parse()记录
WebView调用webview内容
IPC进程之间通信记录
+Hooks运行过程中用户自定义Hook记录

1、信息收集

获取APP基本信息(如上图所示)

【1】权限:请求权限(Requested Permissions)、自定义权限(APP Permissions)

【2】组件:导出和非导出的组件(Activity、Service、Broadcast Receiver、Content Provider)

【3】共享库(Shared Libraries)

【4】标志位:Debuggable,Allow Backup

【5】其他:UID,GIDs,Package等

l 请求权限
l App权限
l 共享库
l 导出和非导出的Activity,内容提供其,广播接收器和服务
l 检查该应用程序是否可调式
l 版本,UID和GID

2、Hooks

使用 Hooks,用户可以实时查看应用程序的行为

【1】Shared Preferences(日志和文件)

【2】Serialization(序列化)

【3】Crypto(加密)、Hash

【4】SQLite数据库

【5】HTTP、WebView、IPC等

【6】Hooks(自定义HOOK)

l 共享首选项(日志和文件)
l 序列化
l 加密
l 哈希表
l SQLite数据库
l HTTP(HTTP代理工具是最好的选择)
l 杂项(剪贴板,URL.Parse())
l WebView
l IPC

使用 Logcat 查看日志的功能,需要先转发 8887 端口到本地。

在这里插入图片描述

点击 Start,再点 connect 就可以在网页中实时查看 app 的 logcat 输出。

在这里插入图片描述

+Hooks 模块中,可对被测 APP 进行 hook,很方便。

在这里插入图片描述

在这里插入图片描述

3、其他操作

使用 Xposed,用户可以执行一系列操作,例如开启非输出的Activity

l 开启任意Activity(输出和非输出)
l 调用提供器(输出和非输出)
l 禁用FLAG_SECURE
l 取消SSL选项
l 开启、停止或重启应用程序

4、附加部分

l APK下载
l 查看应用程序的目录树
l 下载应用程序的文件
l 下载hooks生成的文本文件格式的输出
l 屏幕截图

5、配置

设置选项中,提供了ssl uncheck,设置代理等。经过测试发现 SSL uncheck 效果一般。https 流量依然很多抓不到。

尽管该工具有一些连接 HTTP 库的 hooks,使用外部代理工具仍然是分析应用程序流量的最好的选择。

在 Inspeckage 中,用户可以:

l 添加连接目标应用的代理
l 启用和禁用代理
l 在ARP表中添加条目

http://www.lryc.cn/news/213287.html

相关文章:

  • Windows详细安装和彻底删除RabbitMQ图文流程
  • 自定义表单规则
  • Spring 中 Bean 的作用域有哪些?Spring 中有哪些方式可以把 Bean 注入到 IOC 容器?
  • 【01低功耗蓝牙开发】
  • 【Java 进阶篇】Java BeanUtils 使用详解
  • YugaByteDB -- 全新的 “PostgreSQL“ 存储层
  • 众佰诚:抖音上做生意卖什么好
  • 【Redis】环境配置
  • 设计交换机原理图前应先理清的框图
  • Bellman-ford 贝尔曼-福特算法
  • Docker数据目录迁移解决方案
  • 公共字段自动填充、菜品管理
  • 前端面试 面试多起来了
  • Qt常见类名关系整理
  • YOLO8实战:yolov8实现行人跟踪计数
  • shell脚本学习-2
  • web3:智能合约浏览器版本的 IDE - remix 使用教程
  • 信号类型(通信)——QPSK、OQPSK、IJF_OQPSK调制信号
  • 常用压缩文件操作函数总结
  • leetcode_274 H指数
  • 微服务框架Consul--新手入门
  • docker运行syslog-ng,搭建日志服务器
  • Redis代替session实现用户验证
  • Ubuntu 内核降级到指定版本
  • uniapp开发app,在ios真机上出现的css样式问题
  • uniapp 页面间传参方法
  • 【年终特惠】基于最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇系统性实践技能提升
  • 驱动开发7 基于GPIO子系统编写LED驱动,编写应用程序进行测试设置定时器,5秒钟打印一次hello world
  • 亚马逊云科技为奇点云打造全面、安全、可扩展的数据分析解决方案
  • 应用案例|基于三维机器视觉的曲轴自动化上下料应用方案