-
Notifications
You must be signed in to change notification settings - Fork 6
Usage CN
启动前端 (React.js, 127.0.0.1:3000):
cd frontend
npm start
启动后端 (Django server):
cd backend
python3 manage.py runserver
使用USB连接你的安卓手机,启动 最新的 frida-server (测试于12.11.9版)。
下载最新的 release 压缩包并解压为frider文件夹。
在本地服务器(apache/nginx/IIS...)的3000端口上跑 frontend,
// 如果不想用apache那些,也可以用这个:
cd frider
npm install serve
serve -l 3000 -s frontend
如果要改端口号,请在 backend/backend/settings.py
中更改跨域设置:
CORS_ORIGIN_WHITELIST = (
'http://127.0.0.1:3000',
'https://127.0.0.1:3000',
'http://localhost:3000',
'https://localhost:3000',
)
启动后端 (Django server):
cd backend
python3 manage.py runserver
使用USB连接你的安卓手机,启动 最新的 frida-server (测试于12.11.9版)。
启动后按下 Connect
. 请确保backend/server/functions/utils.py
中的GBK(默认)与cmd的编码保持一致。
点选一个APP,从侧面栏进入其他页面。
提供包含 versionCode, permissions, paths, instruction sets 等APP基础信息展示。写得烂,可能在某些adb版本下这页无法正常工作。
阅读中文版的Tips,选择一个脱壳方案然后点GO
。dex文件也会存放在/data/data/(packageName)
和 /sdcard/Frider/(packageName)
目录并不会自动清理,请留意。
先点 Inject
注入frida脚本到 selected package(injected package是空的)。注入成功会显示在injected package。
选择A和B方案中的一种进行方法枚举。
点击Method List中你想要追踪的方法名,会将其追加到TraceList中。
从侧边栏进入Trace页面。
Intercept方法的参数和返回值需要Burp Suite或者其他网络工具监听 127.0.0.1:8080 端口。 然后启动Intercept(Java) ?
选项。
最后按Plan A 的 Start
,从这一刻开始追踪。
- Tracer 视图:
- 在Burp Suite 中 intercept: URL = className + methodName + args/retval
先点 Inject
注入frida脚本到 selected package(injected package是空的)。注入成功会显示在 injected package。
如果你手太快了,目标 Module 还没有被加载,可以等下刷新此页面。
点 Enumerate Exports
展示导出函数/变量。
Click Trace
to add native function into your TraceList.
暂未找到合适的方法自动处理参数类型,这部分需要手动在 backend\server\functions\frida_scripts\fridaAPI.js
中完成参数处理(参考网上的各种frida脚本)。因为可以在 fridaAPI.js 中直接修改参数,这部分不会再转发到 Burp。
enter() 和 exit() 函数是给前端的 Tracer 提供数据的,需要的话就用吧(当然,得先处理参数)。
写完 fridaAPI.js 之后请重新 inject
。
该部分演示待补。
从前端的 Trace 界面中提供目标函数所在module的地址(可在NativeEnum页面中获取),然后手动在 fridaAPI.js 中写入 Offset 值并处理参数。
该部分演示待补。