初识 hook

访客3年前黑客工具1122

本文作者:天启@涂鸦智能安全实验室

一.什么是 hook?

Hook 技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,

钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以

强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。

Hook 技术本质是函数调用,由于处于 Linux 用户状态,每个进程有自己独立的进程控

件,所以必须先注入所要 Hook 的进程空间,修改其内存中进程代码,替换过程表的符号地

址,通过 ptrace 函数附加进程,向远程进程注入 so 库,从而达到监控以及远程进程关键函

数挂钩;

二.常见的 hook 框架

架名称框

框架特性

Xposed

Java 层的 HOOK 框架,由于要修改 Zgote 进程,需要 Root

CydiaSubstrator

本地层的 HOOK 框架,本质上是一个 inline Hook

Dexposed

AndFix

Sophix

AndroidMethodHook

Legend

在 AndFix 框架的基础上,在 *** 进行替换前进行了 *** 的备份

VirtualXposed

Virtual APP 与 Xposed 的一个结合

Frida

动态代码检测框架,它可以使你的 js 代码或者代码段注入到Windows,Linux,android,macOS,GNU / Linux,iOS 和 QNX 上的本机

三.使用 frida 进行一个简单的 demon

3.1 为什么选择 frida?

从上面的介绍,我们就可以明显地看出,frida 是一个跨平台,简单实用且强大的 hook 框架!

但是 frida 也有本身先天的缺陷,比如基于 Xposed 框架开发的 hook 插件可以直接在客户端

运行不需要 PC 的参与,从我们接下来的 demon 我们就可以很清楚地看到,基于 frida 开发的

hook 插件离不开 PC 的参与。

3.2安装环境

根据官网介绍 frida 的运行环境如下

  • Python :建议最新的 3.X
  • 操作系统 :Windows,macOS,或者 GNU/Linux
  • Android :Genmotion 或者 Android 真机
  • Frida-server :Genmotion 下载 x86 版本的,国内的 Android 真机选择下载 arm 版本,
  • 下载地址:https://github.com/frida/frida/releases

本次 demon 所对应的 frida 环境如下:

  • Python :3.7.4
  • 操作系统 :macOS 10.15.3
  • Android :genmotion 模拟器
  • Frida-server :frida-server-12.8.11-android-x86.xz

3.3运行 frida

(1) 使用 adb 将 frida-server-12.8.11-android-x86 移到/data/temp 目录下面,并且改变他的

权限。使用到的命令:adb push /Users/tools/安卓/frida/frida-server-12.8.11-android-x86

/data/local/temp,chmod 777 frida-server-12.8.11-android-x86

(2) 转发本地端口流量到 frida-server。使用到的命令 adb forward tcp:27043 tcp:27043

(3) 将 demon.apk 文件安装在 genmotion 模拟器上

(4) PC 上运行 hook.py 进行对 android 运行程序进行 hook

3.4frida 进行 hook 的效果图

图 1 未进行 hook 时的原始模样

图 2 进行 hook 成功的截图

四.打包所有需要的东西

我把编译过的 apk 以及编译前的 java 源码,还有 python 实例程序统一打包,放在我的

github 地址中,只需要在模拟器上运行 apk,frida-server,在本机上运行 python 程序,不需要做

任何操作就能进行 hook.

项目地址:https://github.com/ba1ma0/frida-demon

漏洞悬赏计划:涂鸦智能安全响应中心(https://src.tuy *** )欢迎白帽子来探索。

*** 内推计划:涵盖安全开发、安全测试、代码审计、安全合规等所有方面的岗位,简历投递sec@tuy *** ,请注明来源。

标签: 初识 hook

相关文章

被行李箱绊倒去世家族索赔被驳回-被行李箱绊倒殒命家族起诉箱主人

上年3月8日,北京西地铁口突发性了一起意外事件,一位老人不经意被旅行箱摔倒后不幸身亡,这起安全事故引起了社会发展上很多人的关心,事儿产生后被旅行箱摔倒命丧大家族提起诉讼箱主人家,但是经过人民法院案件审...

新手产品如何画流程图?

新手产品如何画流程图?

编辑导语:产物司理在日常事情中常常会用到流程图,流程图可以辅佐你梳理思路和事情流程,对付产物司理来说也是一个必备技术;本文作者分享了关于互联网产物流程图在利用中的留意事项,我们一起来看一下。 关于互...

护士节礼物(2020年护士节送什么礼物好 )

护士节礼物(2020年护士节送什么礼物好 ) 2020年让我们看到了医护人员的力量。五月的护士节就要到了,护士节礼品买什么好,才能够表达对白衣天使的敬爱之情呢?您身边的礼品定制好帮手——艾丝雅兰,为...

西安理工大学迎新网站(西安理工大学新生报到

西安理工大学迎新网站(西安理工大学新生报到

为进一步提高工作效率,更好地服务于广大新生,西安理工大学2019年迎新工作采用数字化线上线下结合进行,各位新生可通过迎新网站http://yingxin.xaut.edu.cn点击右上角的“迎新服务入...

痛经怎么办缓解疼痛(痛经时这样做可以缓解疼

痛经会有周期性下腹部胀痛、刺痛、隐痛、坠痛等症状,严重者会出现痉挛性疼痛、撕裂性疼痛,疼痛可放射至骶腰背部,疼痛的时间长短不一。大约有过半数的痛经患者还会伴有乳房胀痛、肛门坠胀、胃痛腹泻、倦怠乏力的症...

淘宝怎么卖东西?如何上淘宝网卖东西

淘宝怎么卖东西?如何上淘宝网卖东西

相信这个问题是大多数人会遇到的一个问题,很多新手开了网店之后自己也比较着急,但是就是没有人看没有人下买,其实如果你想卖出去产品的话肯定要分析一下影响淘宝网店卖出去产品的因素是什么,这个你分析到位了然后...