基于 frida 实现的逆向工具包 hooker

 

hooker逆向工作台https://github.com/CreditTone/hooker

hooker 是一个基于 frida 实现的 逆向工具包。为逆向开发人员提供统一化的脚本包管理方式、通杀脚本、自动化生成hook脚本、内存漫游探测activity和service、firda版JustTrustMe。

 

 

hooker fridaobjection 有什么不同

 

  • 职责不同: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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495178.shtml

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

相关文章

[恢]hdu 2021

2011-12-14 03:40:00 地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2021 题意&#xff1a;中文题。 代码&#xff1a; # include <stdio.h>int gao(int num){int sum 0, i, tab[] {100, 50, 10, 5, 2, 1} ;for (i 0 ; i < 6 ; i) { sum …

魏少军谈AI芯片热潮和架构创新 透露清华Thinker芯片将独立融资

来源&#xff1a;网易智能摘要&#xff1a;在近日于深圳举办的2018 CCF-GAIR 全球人工智能与机器人峰会上&#xff0c;清华大学微电子所所长魏少军发表了演讲&#xff0c;阐述了AI时代芯片架构的问题。会后&#xff0c;魏少军接受了网易智能的专访&#xff0c;谈到了中国芯片行…

JS 逆向 --- 过无限debugge、hook、js混淆还原、控制流混淆

访问这个网站的时候&#xff0c;cookie 里面会有一个 sign 值&#xff0c;这个sign 值是通过 JavaScript 代码生成的&#xff0c;JS 代码是用 ob 混淆的&#xff0c; 当打开 "开发者工具" 时&#xff0c;会直接进入 "无限 debugger" 模式&#xff0c;过无限…

《那些年啊,那些事——一个程序员的奋斗史》——63

相对于黄华中的坚决要分家的念头来说&#xff0c;武总其实还是处于一种非常犹豫不决的状态。虽然武总已经找过段伏枥谈了几次话&#xff0c;无一例外都涉及到后续摊牌后的动作&#xff0c;但优柔寡断的武总其实内心并不是非常希望分家的。这也难怪&#xff0c;毕竟段伏枥没有给…

机器人时代的资本主义:21世纪的工作,收入和财富

来源&#xff1a;资本实验室摘要&#xff1a;关于人工智能、机器人、自动化的未来&#xff0c;每天都有无数的讨论。乐观、向往、欢迎&#xff1b;悲观、担心、抗拒……每个人都有自己的态度和心理。聚焦前沿科技创新与传统产业升级关于人工智能、机器人、自动化的未来&#xf…

android

启动activity: Intent intentnew Intent(this, SignInActivity.class); startActivity(intent); 创建一个发邮件的activity Intent intentnew Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL,recipientArray); startActivity(intent); Figure 1. The activi…

JavaScript 逆向 ( 一 ) --- JavaScript 语法基础

js 逆向&#xff1a;https://www.cnblogs.com/wuxianyu/category/1940304.html js逆向2&#xff1a;https://www.cnblogs.com/wuxianyu/category/1941486.html JS 中的类型转换&#xff1a;https://segmentfault.com/a/1190000013679224 1、JavaScript 基础 菜鸟教程 JavaScrip…

解释深度学习的新角度,来自光学的启发

来源&#xff1a;网络大数据摘要&#xff1a;谷歌技术人员、MIT博士Ali Rahimi受光学的启发&#xff0c;从功能模块化和层级的角度讨论了一种解释深度学习的新思路。深度学习已经成熟到可以教给高中生了么?我思考的这个问题&#xff0c;源于不久前我收到的⼀封来自某大公司产品…

jQuery 结构分析

jquery核心 转自http://www.iteye.com/topic/783260 (function( window, undefined ) { // 构造jQuery对象 var jQuery function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); } // 工具函数 Utilities // 异步队列 Deferred // 浏览…

北京航空航天大学王田苗教授:当前智能机器人发展若干挑战性问题

来源&#xff1a;雷锋网摘要&#xff1a;2018 全球人工智能与机器人峰会&#xff08;CCF-GAIR&#xff09;在深圳召开&#xff0c;峰会由中国计算机学会&#xff08;CCF&#xff09;主办&#xff0c;雷锋网、香港中文大学&#xff08;深圳&#xff09;承办&#xff0c;得到了宝…

JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

Node.js 的基础教学 之 exports 和 module.exports&#xff1a;https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript、ES5、ES6&#xff1a;https://www.cnblogs.com/lovesong/p/4908871.html 1、为什么有模块概念 理想情况下&#xff0c;开发者只需要实现核心的业务逻辑&…

一般python项目的结构

看了一下django,sqlalchemy,web.py等项目的结构&#xff0c;大致了解了一般python项目的结构。假设你的项目名叫hello/hello-mypackage-__init__.py-...(your code)-test-__init__.py-runtests.py-...(your test code)-setup.py-README-LICENSE如果要运行test代码&#xff0c;就…

深度 | 智慧城市背景下的“多规合一”标准探究

来源&#xff1a;《技术与应用》 作者&#xff1a;杜青峰 万碧玉 王益 吴丽丽 王树东 姜栋 摘要&#xff1a;在参与智慧城市标准综合评价系统研发过程中&#xff0c;研究我国目前城市规划标准的现状&#xff0c;总结了我国现有城市规划标准中存在的自成标准、内容冲突、缺乏衔接…

Windows Terminal完整指南

原文&#xff1a;Windows Terminal: The Complete Guide&#xff1a;https://www.sitepoint.com/windows-terminal/ From&#xff1a;https://zhuanlan.zhihu.com/p/272082726 github&#xff1a;https://github.com/microsoft/terminal Windows Terminal&#xff0c;它是 WS…

通杀IIS7.0畸形解析0day漏洞

先合并一张PHP一句话图片马&#xff0c;合并方法&#xff1a; ①、DOS合并&#xff1a;copy 1.gif /b 1.txt/a asp.gif ②、用edjpgcom&#xff0c;进行图片和一句话木马的合并&#xff0c; 图片随便找一张. 【顺带着说一下edjpgcom的使用方法&#xff1a;打开edjpgcom.exe所在…

谁将引领5G标准?

来源&#xff1a;中国知识产权杂志作者&#xff1a;王活涛 郑友德 沈剑锋 袁真富中国企业的5G技术创新之所以能不断取得突破性的成果&#xff0c;在全球通信标准上占有一定的“话语权”&#xff0c;在很大程度上得益于中国企业对技术创新的大力投入和发明专利积累。截止2018年6…

Python 操作 Kafka --- kafka-python

kafka-python&#xff1a;https://github.com/dpkp/kafka-python kafka-python 文档&#xff1a;https://kafka-python.readthedocs.io/en/master/apidoc/modules.html kafka 官方文档&#xff1a;http://kafka.apache.org/documentation.html Python 操作 Kafka 的通俗总结&a…

22岁年终总结

不知不觉一年就要过去了&#xff0c;想想刚背包来到北京没多久 这又要回去了&#xff0c;时间过得真快。我们能有多少一个一年啊&#xff0c;这一年我做了些什么 得到了些什么&#xff0c;失去了些什么&#xff0c;感悟到了什么&#xff0c;如何看待人生 如何对待爱情 如何对待…

k8s 基本使用

Kubernetes 编排系统&#xff1a;https://www.cnblogs.com/gaoyuechen/p/8685771.html k8s 集群中的 yaml 文件详解&#xff1a;https://blog.csdn.net/qq_28361541/article/details/106089574 什么是 k8s&#xff0c;k8s 有什么功能 ? &#xff1a;https://www.jianshu.com…

全球芯片行业现状分析:大家都在依赖美国 未来如何破局?

来源&#xff1a;网易智能翻译&#xff1a;乐邦香港媒体《南华早报》近日发文称&#xff0c;中国依赖于美国的核心技术已有一定的时日&#xff0c;但全世界都是如此&#xff0c;美国在半导体制造领域无可撼动的领先优势&#xff0c;是50多年的研发成果。随着中兴事件进入下一个…