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

news2024/12/23 10:57:44

前提

我在不久前写过《 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.coloradmin.cn/o/1153234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win11系统自带便利签

步骤如下: 在搜索框输入 便笺 2. 打开及用。

实现基于 Azure DevOps 的数据库 CI/CD 最佳实践

数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA 调研报告 DORA(DevOps Research &am…

图纸管理制度《七》

1、目的: 明确技术图样与文件的签署、更改及标准化等内容,对技术图样与文件进行有效的控制。技术文化是公司的核心秘密,是公司能够持续发展并在市场上保持强势竞争力的有力保障,公司的技术文件属于公司所有,公司的每一…

C++:关联式容器set的介绍

1、set的介绍 set是按照一定次序存储元素的容器 在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。 set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。 在内部&#…

xmind2testcase使用与二次开发

xmind2testcase安装、简单二次开发与使用说明: 添加xmind文件备份 重构生成CSV文件 preview预览页面数据显示重构 一、安装 1.xmind2testcase安装 pip install xmind2testcase 2.启动服务 进入默认位置:C:\Users\dell\AppData\Roaming\Python\Py…

医院能耗管控平台,医院节能降耗的有效利器

随着人们对医院舒适度要求的不断提升,医院采用新技术及信息化建设等手段来提升服务,导致能源使用效率高,医院能耗管控平台可以帮助医院在运行的基础上,促进医院节能降耗等工作。 医院目前存在的问题 1、医院人口密度大、用能系统…

2023年05月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 运行以下程序,如果通过键盘先后输入的数是1和3,输出的结果是?( &#x…

springweb flux拦截请求获取参数和方法做接口签名防重放校验

在给spring webflux做接口签名、防重放的时候,往往需要获取请求参数,请求方法等,而spring webflux无法像spring mvc那样好获取,这里根据之前的实践特地说明一下: 总体思路: 1、利用过滤器,从原…

Yuhan Blu-ray DVD Creator for Mac: 打造专属的高清视听盛宴

在如今的高清时代,谁能拒绝一款能够轻松将高清影片刻录成蓝光DVD的刻录机呢?而Yuhan Blu-ray DVD Creator for Mac正是这样一款令人惊艳的软件。 作为一款专为Mac用户打造的蓝光DVD刻录机,Yuhan Blu-ray DVD Creator for Mac支持将各种高清视…

涛思数据与胜软科技达成战略合作,共同赋能石油行业数字化转型

近日,北京涛思数据科技有限公司(以下简称“涛思数据”)与山东胜软科技股份有限公司(以下简称“胜软科技”)于山东东营签署战略合作协议。双方围绕石油行业数字化转型趋势,合力打造石油行业数字化转型解决方…

设计模式_观察者模式

观察者模式 介绍 设计模式定义案例问题堆积在哪里解决办法观察者是行为型设计模式 多个对象 观察 1个对象小强考试完 成绩公布了 家长/同学得知成绩后 做出不同反应一个一个通知很麻烦 先通知谁 也有讲究的 信息发布方 抽象出一个信息管理类 负责管理监听者 类图 代码 Obse…

【Apache Flink】Flink DataStream API的基本使用

Flink DataStream API的基本使用 文章目录 前言1. 基本使用方法2. 核心示例代码3. 完成工程代码pom.xmlWordCountExample测试验证 4. Stream 执行环境5. 参考文档 前言 Flink DataStream API主要用于处理无界和有界数据流 。 无界数据流是一个持续生成数据的数据源&#xff0…

如何理解 Spring Boot 中的 Starter?

Starter 是 Spring Boot 的四大核心功能特性之一,除此之外,Spring Boot 还有自动装配、Actuator 监控等特性。Spring Boot 里面的这些特性,都是为了让开发者在开发基于 Spring 生态下的企业级应用时,只需要关心业务逻辑,减少对配置…

初识FFmpeg

前言 无意间见到群里的小伙伴展示视频工具。功能比较多,包括视频编码修改,画质处理,比例处理、名称提取,剪辑、标题拆解。因此开始了FFmpeg学习。以下摘自百度百科的解释。 FFmpeg是一套可以用来记录、转换数字音频、视频&#xf…

【LVS实战】02 搭建一个LVS-NAT实验

一、网络结构 用虚拟机搭建如下的几台机器,并配置如下的ip 关于虚拟机网卡和网络的配置,可以参考 iptables章节,05节:网络转发实验 主机A模拟外网的机器 B为负载均衡的机器 C和D为 RealServer 二、C和D主机的网关设置 C和D机…

vue项目引入elementui样式组件05

vue前端开发,关于样式部分,不需要自己去写,可以引用现有的一些组件,比如elemtnui,可官网查看 1、下载对应的包到vue项目中 通过npm进行安装 npm i element-ui -S2、引入到项目中,官网也提供了例子 3、运…

Shopee流量和销量不佳?或许你没有掌握正确的引流方法

很多卖家做了很久,但是发现流量和销量都没怎么增长,今天陈哥就分享一下如何正确的引流。 以下是一些有效的引流策略: 1. 站内引流:选择高性价比的潮流商品,根据目标客户群和重点品类进行选品。优化商品名称和描述&am…

顺序表练习

顺序表练习 图解插入与删除,详见相关内容:顺序存储结构的插入与删除 //顺序表的定义、创建、插入、删除、查找 //定义:结构体中数组、表长 //创建:输入元素,表长 //插入:判断表是否已满、判断位序合法性 //插入位序k…

好用的视频下载工具推荐

我不允许还有人不知道这款视频下载工具, 真的太好用了! !! 随着视频行业的崛起,如今网络上各种各样的视频层出不穷, 那我们看到喜欢的视频该如何下载呢?今天小编来给大家分享一款非常实用的视频下载工具——Downni, 它兼容国内外大多数视频网…

网络编程服务端与客户端存在的端口问题

服务端的窗口不能再次使用的原因如下: 服务器端的窗口不能再次使用的原因可能有以下几点: 1. 窗口已经关闭:如果服务器端的窗口已经被关闭,那么就无法再次使用。关闭窗口后,服务器会释放相关资源,包括与该…