吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5962|回复: 12
收起左侧

[Android 原创] hooker自动化生成frida脚本

[复制链接]
西二旗搬砖仔 发表于 2021-3-31 20:19

背景需求

使用frida逆向的同学免不了写frida脚本,相关frida语法肯定是要熟悉的。懒点的同学直接用objection生成,

objection生成的脚本有如下缺点

1、方法调用采用apply(this, arguments)语法,让开发人员难以二次修改
2、方法内部没有堆栈打印
3、没有辅助方法
4、脚本输出在命令行,需要手动复制到本地文件
5、生成的脚本没有版本注释,难以维护

hooker自动化生成frida脚本

https://github.com/CreditTone/hooker

下面以某音app为例我们要生成com.bytedance.frameworks.core.encrypt.RequestEncryptUtils这个类的frida脚本

快速开始

1. 查看可调试进程

stephen@ubuntu:~/hooker$ ./hooker 
  PID  Name                           Identifier                                                   
-----  -----------------------------  -------------------------------------------------------------
 2857  Android Auto                                              
14403  信息                             com.google.android.apps.messaging                            
12073  存储已屏蔽的号码                       com.android.providers.blockednumber                          
 1574  实时数据壁纸                         com.ustwo.lwp                                                
15637  抖音                             com.ss.android.ugc.aweme                                     
 2480  搜狗输入法                          com.sohu.inputmethod.sogou                                   
12073  用户字典                           com.android.providers.userdictionary                         
13362  电话                             com.google.android.dialer                                    
 1704  电话和短信存储                        com.android.providers.telephony                              
 1704  电话服务                           com.android.phone                                            
11818  知乎                             com.zhihu.android                                                                                     
Enter the need to attach package.
: 

2. attach应用

stephen@ubuntu:~/hooker$ ./hooker
  PID  Name                           Identifier                                                   
-----  -----------------------------  -------------------------------------------------------------
15637  抖音                             com.ss.android.ugc.aweme                                     
 2480  搜狗输入法                          com.sohu.inputmethod.sogou                                   
12073  用户字典                           com.android.providers.userdictionary                         
13362  电话                             com.google.android.dialer                                    
 1704  电话和短信存储                        com.android.providers.telephony                              
 1704  电话服务                           com.android.phone                                            
11818  知乎                             com.zhihu.android                                            
 1451  系统界面                           com.android.systemui                                         
12424  紧急警报                           com.android.cellbroadcastreceiver                            
12073  联系人存储                          com.android.providers.contacts                               
 1431  蓝牙                             com.android.bluetooth                                        
  929  设置存储                           com.android.providers.settings                               
10149  运营商设置                          com.google.android.wfcactivation                             
14376  通讯录                            com.google.android.contacts                                  
  929  通话管理                           com.android.server.telecom                                   
14807  阿里巴巴                           com.alibaba.wireless                                         
Enter the need to attach package.
: com.ss.android.ugc.aweme  #在此处输入某音进程的Identifier回车即可调试应用
: 
提示1: 第一次调试你的应用时hooker将在当前目录生成以进程Identifier命名的应用专有工作目录,并初始化生成一些你可能会用到的通杀脚本。
提示2: 成功attach一个应用时,命令将pause在等待输入调试指令的阶段。pause状态下使用命令进行高级调试请直接跳到

j - 生成指定类的hook脚本

在命令行输入j com.bytedance.frameworks.core.encrypt.RequestEncryptUtils -o com.bytedance.frameworks.core.encrypt.RequestEncryptUtils.js 就会生成指定类名称的hook脚本,也是hooker最核心的功能之一。相比objection,hooker生成的脚本有标注生产脚本的apk版本和类名。并且每个方法内部已经具备打印堆栈的功能,包括调用时间、线程id、线程名、调用对象的hashcode,调用方法用时都有很详细的描述。


此脚本源码参考RequestEncryptUtils.js

objection生成的脚本就不贴了,给objection留点面子!!!

hooker生成脚本和objection生成脚本优势对比

项目 生成脚本命令 能否打印堆栈 包含辅助方法 脚本版本信息注释 脚本可定制性
hooker j [class_name] -o [outputpath].js 包含 带apk version和生成命令
objection android hooking generate simple [class_name] 不能(白纸一张) 不包含 不带 一般

开源这个项目的目的是让大家把精力放在逆向思路上,不要去纠结语法上的问题啦。了解原理就ok了,后面让代码去生成代码岂不美哉!

https://github.com/CreditTone/hooker

免费评分

参与人数 6威望 +1 吾爱币 +24 热心值 +4 收起 理由
maroo + 1 前言:hooker仅支持在Linux和MacOS下运行,并且现在和将来都不会支持window.
新手来脱机 + 1 转载 就请标明,
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
XF010101 + 1 + 1 试一下
helian147 + 1 + 1 谢谢@Thanks!
罗婷 + 1 [b][color=Red]是个人才跟我一样优秀[/color][/b]

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

弘德书院 发表于 2021-4-2 11:27
再win10的电脑上可以使用嘛?
hehehero 发表于 2021-12-10 16:02
前言:hooker仅支持在Linux和MacOS下运行,并且现在和将来都不会支持windows操作系统!windows做开发是没有灵魂的!
爱你小吉君 发表于 2021-4-1 15:01
lifz888 发表于 2021-4-1 15:36
非常好的学习资料,支持分享
wykdz 发表于 2021-4-1 17:02
这个好用的
来根烟 发表于 2021-4-2 07:35
感谢分享
头像被屏蔽
First丶云心 发表于 2021-4-2 07:43
提示: 作者被禁止或删除 内容自动屏蔽
whngomj 发表于 2021-4-2 08:38
谢谢分享,学习了。
不苦小和尚 发表于 2021-4-25 07:08
看着不错,可惜手上没有Linux
小飞虫 发表于 2021-11-19 17:00
win可惜的离开
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表