Chr_小屋 - frida
type: channel
link: https://blog.chrxw.com/tag/frida/
items: PIP安装Frida失败的解决方法
items: 小黑盒逆向分析笔记（五）【未完成】
items: 安卓Hook框架Frida入门介绍
items: 小黑盒逆向分析笔记（一）

PIP安装Frida失败的解决方法
type: item
date: 2022-05-01T17:06:46+08:00
description: 前言 这几天重操旧业开始日某个APP，Frida已经更新到15了，更新的时候遇到了一些问题 正文 直接 pip install frida 会报错，错误如图 其实就是需要手动下载一个egg包放在用户目录即可，可以在PyPI上下载到 可是没有预编译的适用于Python3.9的egg包，只好自己编译了 下载最上面的 Source Distribution 源码包，解压以后手动编译 # 构建 python setup.py build # 编译egg包 python setup.py bdist_egg 然后又报错了…… 这里出错是因为参数path是二进制字符串而不是普通的字符串，需要做一个decode操作转成普通字符串即可 在setup.py第191行加上.decode('utf-8')即可 改完就可以顺利编译了，编译好的egg文件在dist目录下，把这个文件拷到用户根目录，比如C:\Users\chr11 然后用pip安装即可 pip install frida frida-tools 然后就可以愉快地hook了

小黑盒逆向分析笔记（五）【未完成】
type: item
date: 2021-11-19T13:28:00+08:00
description: 前言 本文仅供学习探讨之用，如果侵犯您的权益请联系我删除。 上文 [post cid="714"/] [post cid="1347"/] [post cid="1365"/] [post cid="1383"/] 前情提要 距离上一篇文章已经过去一年多了，前两天心血来潮找了最新版本研究了一下，熬了两天夜也没整明白，不打算继续研究下去了，做个笔记记录下分析过程。 @> 本文适用于小黑盒 1.3.191，小黑盒历史版本参考我的仓库 @> 全文评论后可见

安卓Hook框架Frida入门介绍
type: item
date: 2020-07-18T14:52:00+08:00
description: 前言 一些链接： Frida：主页链接 GitHub Frida-Demo：GitHub 本文使用的工程文件：GitHub (包含项目源码和用到的工具) 准备工作 Frida是一个全平台注入框架，使用JavaScript编写注入代码，可以很方便的实现动态Hook。这里用Frida-Demo这个程序来演示。 一台Root过的手机或者带有完整Root权限的模拟器。 电脑端环境配置 安装Frida pip install frida frida-tools 测试Frida frida --version 配置好ADB，与真机或者模拟器连接，常用的连接方式如下： # USB连接 adb usb # 网络连接 adb connect 192.168.x.x 手机端环境配置 获取Frida-Server: 下载链接 注意要下载frida-server开头的文件，末尾的arm、x86代表适用的平台，真机就选择arm，模拟器选择x86。 至于选择32位的还是64位的frida-server，主要取决于目标APP是32位还是64位的，根据需要选择。 设置Frida-Server 首先把Frida-Server传到手机上： # 请将【 】中的内容修改为文件所在路径 adb push 【frida-server-12.10.4-android-arm】 /data/tmp/frida-server adb push 【frida-server-12.10.4-android-arm64】 /data/tmp/frida-server64 然后打开一个Shell： adb shell 运行以下命令： su cd /data/tmp chmod 700 frida-server* ./frida-server -l 0.0.0.0 & 最后一行加了个&，代表把frida-server作为后台任务启动，这样即使我们Shell连接，frida-server也不会被终止。 测试Frida-Server 我们打开另一个命令行，输入以下命令： # 如果使用USB连接 frida-ps -U # 如果使用网络连接 frida-ps -R 如果能看到手机进程列表说明设置成功了。 安装Frida-Demo练习程序 下载地址：GitHub 安装过程就不赘述了。 准备开发环境 Frida使用JavaScript编写注入代码，我们选择Python作为加载器。 我使用的是VSCode+Python3.8作为开发环境，配置方法参见另一篇博文：[post cid="1296" /] 也可以选择PyCharm，看个人喜好了。 首先新建一个run.py作为加载器，内容如下： import frida # PS: 现在的Frida好像是根据进程名称而不是包名来识别 # 如果提示attach失败就改成进程名,也就是Frida Demo再试试 process_name = 'infosecadventures.fridademo' # 发送信息回调函数 def on_message(message, data): if message['type'] == 'send': print(f"[*] {message['payload']}") else: print(message) if __name__ == '__main__': try: device = frida.get_usb_device() except: device = frida.get_remote_device() if not device: print("* 连接到Frida Server失败") else: process = device.attach(process_name) # 加载JS脚本 js = open('hook.js', encoding='utf-8').read() script = process.create_script(js) script.on('message', on_message) script.load() # 输入任意值结束 input() script.unload() 然后在相同的目录下新建一个hook.js来编写注入代码 console.log("脚本载入成功"); Java.perform(function() { //在这里编写Hook函数 }); 注入实战 我们打开Frida-Demo 如图，Frida Demo一共有3个模块，从左到右依次是【PIN密码爆破】【绕过root检测】【加密算法破解】。 我们先用工具分析一下代码，这个演示程序的代码没有经过混淆，而且去除了不必要的代码，很容易看。 我使用的是Jadx，把frida-demo.apk拖进去即可…

小黑盒逆向分析笔记（一）
type: item
date: 2019-11-25T21:02:00+08:00
description: 前言 本文仅供学习探讨之用，如果侵犯您的权益请联系我删除。 [...]