基于 frida 实现的逆向工具包 hooker
hooker逆向工作台:https://github.com/CreditTone/hooker
hooker 是一个基于 frida 实现的 逆向工具包。为逆向开发人员提供统一化的脚本包管理方式、通杀脚本、自动化生成hook脚本、内存漫游探测activity和service、firda版JustTrustMe。
hooker 和 frida、objection 有什么不同
- 职责不同:frida 注重打造调试引擎、objection 注重将 frida 的 api 简单封装一下让你好快速上手 frida。而 hooker 是重新站在一个安卓应用开发和安卓逆向工程师的角度去打造的更加专业 Android 逆向工作台,重新定义了逆向 android 的工作方式。
- 封装不同:frida 是基于gumjs(V8)、C/C++封装的调试引擎,用于动态 Hook 跟踪、拦截和主动调用函数等。hooker 是基于 frida 作为引擎和自己打造的 Dex 库(radar)调用 Android Framework 层代码完成的。
- 交互方式不一样:frida 和 objection 只有 attach 上才能操作各种指令,而 hooker 提供 shell 命令行交互式让你可以通过 jadx 进行动静结合分析。
- 更注提供重 Android 逆向 思路和线索:frida 和 objection 没有对任何 Android Freamwork 层 的 hook 和能主动调用代码点位进行封装,这使得难以有逆向思路。而 hooker 的几乎所有命令都是围绕 Android Freamwork 进行封装,让一个即使没有 Android 开发经验的人也能快速找到逆向分析思路。
- hook 脚本产出方式不一样:frida 你需要先进行很多语法方面的学习,才能完成对各种类的各种方法进行frida脚本的编写。hooker 不需要你了解 frida 语法细节。比如你只需通过j okhttp3.OkHttpClient:newCall 就可以生成一个 hook okhttp3.OkHttpClient 类的 newCall 方法的脚本, 即使对于任何一个被混淆的类操作也是如此。(你应该把更多的时间和精力放在逆向思路上,而不是熟悉某些语法上。)
- 提供操作原生 AndroidUI 功能:你可以 ./attach 每个 app 目录下的 android_ui.js 脚本,它提供了通过 ViewId、ViewText 找到 Android 原生的 View 并点击,或者你想强制打开某个 Activity(比如某个界面只有会员才能进入,这时候你就可以采用 Android "原生代码" 打开的方式)。
环境部署
hooker 仅支持在 Linux 和 MacOS 下运行,并且现在和将来都不会支持 windows 操作系统!
git clone 项目
ubuntu:~$ git https://github.com/CreditTone/hooker.git
ubuntu:~$ cd hooker
ubuntu:~$ ls
安装依赖
ubuntu:~/hooker$ pip install -r requirements.txt
手机连接adb
ubuntu:~/hooker$ adb devices
List of devices attached
FA77C0301476 device
手机开发环境部署
如果你的手机已经启动了frida-server,可以忽略这步。不过还是建议你采用hooker推荐的hluda-server,因为官方的frida-server在启动之后实际上会向app注入frida-agent.so作为代理,聪明的应用可以通过读取/proc/{pid}/maps检测到正在被frida调试。不过,已经有ju人帮我们重新编译了frida-server,把敏感特征去掉了。
注意:部分手机出现部署之后adb连不上的问题,那请使用deploy2.sh。
#以piexl2为例
stephen@ubuntu:~/hooker$ adb push mobile-deploy/ /sdcard/
stephen@ubuntu:~/hooker$ adb shell #进入手机命令行界面
sailfish:/ $ su #进入root权限命令行模式
sailfish:/ $ sh /sdcard/mobile-deploy/deploy.sh
disable android firewall.
start frida-server
start network adb.
deploy successfull.
stephen@ubuntu:~/hooker$ #如果你看到你的adb命令被弹出来了,表示已经正常部署。
部署之后手机的增强功能
- 1.关闭iptables防火墙,解决部分手机默认防火墙开启的问题
- 2.启动frida-server,如果你的手机是arm64他将优先启动arm64位的frida-server
- 3.在/data/mobile-deploy目录生成tools_env.rc 当你有内网穿透和网络服务转发、编辑文件、检测网络方面的需求时可以执行source /data/mobile-deploy/tools_env.rc,它将临时生成vi、telnet、frpc、tcpforward、ll命令以便你进行更便捷的开发,如图
快速定位
自动化生成frida hook脚本
frida版just_trust_me
frida版just_trust_me实战测试报告
目录
- hooker和frida、objection有什么不同
- hooker环境部署
- 1. git clone项目
- 2. 安装依赖
- 3. 手机连接adb
- 4. 手机开发环境部署
- 5. 部署之后手机的增强功能
- 快速开始
- 1. 查看可调试进程
- 2. attach一个应用
- 3. 应用工作目录
- 应用工作目录的命令
- 1. hooking
- 2. attach
- 3. spawn
- 4. objection
- 5. xinitdeploy
- 6. kill
- 应用工作目录的通杀脚本
- 1. url.js
- 2. activity_events.js
- 3. click.js
- 4. android_ui.js
- 5. keystore_dump.js
- 6. edit_text.js
- 7. text_view.js
- 8. ssl_log.js
- 9. object_store.js
- 10. hook_RN.js
- 11. just_trust_me.js
- 12. just_trust_me_okhttp_hook_finder.js
- hooker调试命令行
- a-打印Activity栈
- b-打印Service栈
- c-扫描指定Object
- d-展开Object[]、List或Map
- v-以View方式查看对象
- e-检测类在内存中是否存在
- s-正则表达式扫描类
- j-生成指定类的hook脚本
- k-生成字符串hook脚本
- hooker高级应用
- radar.dex
- 脚本的内置函数
- 1. loadDexfile(dexfile)
- 2. checkLoadDex(className,dexfile)
- 3. loadXinitDexfile(dexfile)
- 4. loadXRadarDexfile()
- 5. fastTojson(javaObject)
- 6. getPrettyString(javaObject)
- 7. getField(javaObject, fieldName)
- 8. storeObjectAndLog(javaObject)
- 原生ui自动化
- 1. startActivity(activityName)
- 2. contextStartActivity(activityName)
- 3. contextStartActivity(activityName)
- 4. home()
- 5. back()
- 6. finishCurrentActivity()
- 7. clickByText(text)
- 8. clickById(id)
- 9. hover(x,y,upStepLength)
- 10. viewTree()
- 远程frida支持
- 更新教程
- 1. clone最新项目
- 2. 方式一覆盖核心文件到你的hooker
- 3. 方式二覆盖你的应用工作目录到最新hooker
基于 frida 实现的逆向工具包 hooker相关推荐
- 3. Android逆向-基于Frida的工具Objection
文章目录 Objection安装使用 安装 使用 Ubuntu 连接测试 Windows 问题 Objection安装使用 在开始熟悉Frida时,接触的示例是需要frida-server在一个roo ...
- [原创]基于frida的脱壳工具
frida-unpack 基于Frida的脱壳工具 0x0 frida环境搭建 frida环境搭建,参考frida官网:frida. 0x2 原理说明 利用frida hook libart.so中的 ...
- APP爬虫|frida-某资讯app逆向过程,带你一起使用 frida 进行完整逆向
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python编程与实战 ( 想要学习Python?Py ...
- 安卓基于Frida HOOK传感器 实现虚拟运动跑步
安卓基于Frida HOOK传感器 实现虚拟运动跑步 (本文运行环境:WIN10 + Pythom 3.6) 众所周知,安卓HOOK是十分厉害的的,所以有一天,我突发奇想能不能动态HOOK安卓的传感器 ...
- 5、frida进阶-Android逆向之旅---Hook神器家族的Frida工具使用详解
本文转载自:https://www.cnblogs.com/qwangxiao/p/9255328.html 一.前言 在逆向过程中有一个Hook神器是必不可少的工具,之前已经介绍了Xposed和Su ...
- 基于ANSYS Polyflow的逆向挤出模头设计攻略
摘要:内侧灯罩属于复杂截面塑料异型材,目前其挤出模头的设计主要依赖于经验,需要反复试模和修模,使得模具质量难以保证,生产周期长,成本高. 本文采用数值模拟方法对内侧灯罩进行了反向挤出模头设计.首先对内 ...
- objection - 基于frida的命令行hook工具食用手册
0x1 介绍&安装Objection objection是基于frida的命令行hook工具, 可以让你不写代码, 敲几句命令就可以对java函数的高颗粒度hook, 还支持RPC调用 目前只 ...
- 基于Frida实现OKHttp的抓包
前言 在进行逆向分析时候,抓包有很多种方式,今天带来了一种新方法对基于OKHttp实现的网络请求进行抓包,该方法有一定的局限性. Frida Frida是一款轻量级的Hook框架,Java与Nativ ...
- c语言延时函数_介召几个frida在安卓逆向中使用的脚本以及延时Hook手法
0x00 frida简介 frida是近几年才推出的一款全平台的逆向神器.功能上主要采用动态hook的方式,加入log,修改逻辑等.可以对java,native等hook. 具体使用情况,谁用谁知道. ...
最新文章
- 美国任命首位首席信息安全官
- 编译OpenJDK及JDK题外话
- [HIHO1323]回文字符串(区间dp)
- Win10 和 Ubuntu 20.04 安装 face_recognition 和 dlib
- linux 无法mkdir文件夹,linux 不能mkdir了
- nginx限流方案的实现(三种方式)
- c语言求阶层的某位数,求10000的阶乘(c语言代码实现)
- 模版方法模式 Template Method Pattern — 穷人和富人的不同婚恋历程
- DataFrame数据转为list,再逐行写入Excel
- 单片机编程软件很简单(10),Keil单片机编程软件常见文件介绍
- 基于R语言的现代贝叶斯统计学(INLA下的贝叶斯回归、多层贝叶斯回归、生存分析、随机游走模型、广义可加模型、极端数据的贝叶斯分析等)
- SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card【学习笔记】...
- 结合量价持仓分析的股指期货日内交易策略
- C语言编译预处理#define(x,y)语句中x*y 、(x)*(y)、(x*y)的问题
- UltralSo制作u盘映像,出现“设备忙,请关闭其他应用程序”的处理方法。
- 短视频搬运如何上热门?搬运视频哪个平台容易挣钱?
- android ui web,AndroidUI4Web:最适合Android开发者的WebApp框架
- vSphere中Storage vMotion的流程详解
- 计算机屏幕节省电,【火腿课堂】当FT8/FT4数字模式遇上电脑“屏幕保护程序或省电模式”时...
- 设置IDEA注释符不在行首显示
热门文章
- 论文浅尝 | XQA:一个跨语言开放域问答数据集
- Android官方开发文档Training系列课程中文版:键盘输入处理之控制输入法的显示方式
- 【LeetCode】3月22日打卡-Day7
- 论文学习14-End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures(端到端实体关系抽取)
- 国科大prml15-目标检测
- Windows下如何搭建Gradle环境?
- Koa 中间件的执行
- 20181123_任务(套件培训)
- 每个努力奋斗过的人,被不公正的际遇砸了满头包的时候,都有那么一瞬间的代入感。出生就是hard模式的人,早已经历了太多的劳其筋骨饿其体肤,再多的人为考验只会摧毁人对美好的向往。...
- Linq的优点以及注意事项