{"id":13846169,"url":"https://github.com/deathmemory/FridaContainer","last_synced_at":"2025-07-12T05:32:12.619Z","repository":{"id":37483330,"uuid":"297094218","full_name":"deathmemory/FridaContainer","owner":"deathmemory","description":"FridaContainer 整合了网上流行的和自己编写的常用的 frida 脚本，为逆向工作提效之用。 frida 脚本模块化，Java \u0026 Jni Trace。","archived":false,"fork":false,"pushed_at":"2024-10-28T07:49:38.000Z","size":4712,"stargazers_count":1167,"open_issues_count":0,"forks_count":281,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-11-20T20:42:46.016Z","etag":null,"topics":["android","frida","fridacontainer","hook","ios","trace"],"latest_commit_sha":null,"homepage":"https://bbs.pediy.com/thread-265160.htm","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deathmemory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-20T14:29:53.000Z","updated_at":"2024-11-19T06:41:49.000Z","dependencies_parsed_at":"2023-02-09T02:16:18.597Z","dependency_job_id":"acadbb28-2665-4a16-86af-b8a64731e532","html_url":"https://github.com/deathmemory/FridaContainer","commit_stats":{"total_commits":75,"total_committers":2,"mean_commits":37.5,"dds":"0.013333333333333308","last_synced_commit":"63a838885738e62d764bb485727c04a49440dd3c"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathmemory%2FFridaContainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathmemory%2FFridaContainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathmemory%2FFridaContainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deathmemory%2FFridaContainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deathmemory","download_url":"https://codeload.github.com/deathmemory/FridaContainer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225799470,"owners_count":17526051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","frida","fridacontainer","hook","ios","trace"],"created_at":"2024-08-04T17:04:32.373Z","updated_at":"2025-07-12T05:32:12.604Z","avatar_url":"https://github.com/deathmemory.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# FridaContainer\n\nFridaContainer 整合了网上流行的和自己编写的常用的 frida 脚本，为逆向工作提效之用。\n\nnpm build 后，用 Pycharm 打开编辑，可以看到 frida api 代码补全提示。\n\n# 注\n\nfrida 17.0.0 以上版本 API 变动较大，将新开分支以支持新版本。\n\n## 1. 编译和使用\n\n### 1.1 源码直接使用【推荐】\n\n需要根据自己的需求修改 index.ts，编写实际操作内容。\n使用 index.ts 入口方式可以按照以下方式编译和调用。\n\n```sh\n$ git clone https://github.com/deathmemory/FridaContainer.git\n$ cd FridaContainer/\n$ npm install\n## after edit index.ts\n$ npm run build\n$ frida -U -f com.example.android --no-pause -l _fcagent.js\n```\n\n- 开发实时编译\n\n```sh\n$ npm run watch\n```\n\n- Setup for android\n\n为 Andriod 手机初始化环境以应用第三方库(gson)\n\n```shell script\n$ python setupAndroid.py\n```\n\n### 1.2 作为 npm node 模块使用\n作为 npm ndoe 使用在新版本中会有问题，具体原因目前还没有时间看，建议用上面的源码推荐方式使用。\n\n~~支持作为 npm node 模拟直接嵌入 typescript 项目中。~~\n\n~~[详细引入方式请看这里](docs/use_as_npm_node.md)~~\n\n### 1.3 赘述几句我当前的使用习惯\n\n1. 使用 `pycharm` 做开发（其他 IDE 也一样）\n2. clone 仓库后，在项目根目录创建 agent 目录（已加入 gitignore）在这里开发业务脚本\n3. 修改 `index.ts` 引入 agent 目录下的类\n4. 单开一个 shell 跑 `npm run watch` 实时编译脚本\n5. 不断修改 index 或 agent 的脚本，注入、测试，达到目的。\n\n## 2. 功能简介\n\n本仓库会持续补充更新。\n\n### 2.1 Android \n\n- [Android 详细文档](docs/android.md)\n\n1. 一键去常规反调试\n2. 打印堆栈\n3. 通用的 Dump dex 方法\n4. 过 ssl pinning （新增 cronet bypass）\n5. Hook JNI\n6. Java methods trace\n7. JNI trace\n8. frida multi dex hook(java use)\n9. ......\n\n### 2.2 iOS\n\n- [iOS 详细文档](docs/ios.md)\n\n1. 便捷的获取函数地址\n2. 模糊查找函数地址\n3. 打印堆栈\n4. dump ui 结构\n5. 常见数据类型转换及打印\n6. ......\n\n### 2.3 FCCommon 跨平台通用方法\n\n| 方法 | 说明 |\n| ----- | ---------------------------- |\n| showStacksModInfo| 打印指定层数的 sp，并输出 module 信息 (如果有）|\n| getModuleByAddr | 根据地址获取模块信息 |\n| getLR | 获取 LR 寄存器值 |\n| dump_module | dump 指定模块并存储到指定目录 |\n\n## 3. 感谢\n[todo 引用参考]\n\n由于引用较多，且时间比较久了，也很难都列出来，以后慢慢列举吧。\n感谢无私的代码分享者们。\n\n\u003cdetails\u003e\n\u003csummary\u003e感谢参考与引用\u003c/summary\u003e\n\n- [universal-android-ssl-pinning-bypass-with-frida](https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/)\n- [rida-multiple-unpinning](https://codeshare.frida.re/@akabe1/frida-multiple-unpinning/)\n- [art methods tracer](https://github.com/hluwa/ZenTracer)\n- [JNI-Frida-Hook](https://github.com/Areizen/JNI-Frida-Hook)\n- [jnitrace](https://github.com/chame1eon/jnitrace)\n- [frida_hook_libart](https://github.com/lasting-yang/frida_hook_libart)\n- [使用Frida简单实现函数粒度脱壳](https://bbs.kanxue.com/thread-260540.htm)\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeathmemory%2FFridaContainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeathmemory%2FFridaContainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeathmemory%2FFridaContainer/lists"}