脚本加密——fridamod 专属,保护你的脚本源码
为什么要加密
写了好脚本不想让别人直接看源码?JsHook 的加密脚本功能就是干这个的:
- 加密后的脚本文件不能直接阅读
- 运行时由 fridamod 在内存中解密执行
- 不影响正常功能,性能开销极小
硬限制
加密脚本只能在 fridamod 框架下运行。fridainject 和 fridagadget 不支持加密脚本。
这是因为加密脚本的解密逻辑内嵌在 fridamod 组件里,而 fridainject/fridagadget 不走 fridamod 的解密通道。
加密工具
JsHook 应用内自带脚本加密工具:
- 进 工具集 页面
- 找到 脚本加密 或类似入口
- 选要加密的
.js文件 - 执行加密
加密后会生成一个新文件(扩展名可能不变,也可能改成 .enc.js),原文件保留作备份。
加密脚本怎么识别
加密后的脚本文件头会有特殊标记,JsHook 自动识别并在运行时解密。正常用户不用关心标记格式——只要 fridamod 框架能加载、脚本能正常跑就行。
注意事项
加密前备份
加密是不可逆的(至少 JsHook 不提供解密功能)。加密前一定保留原始 .js 文件。
脚本仓库里怎么分发加密脚本
如果你的脚本仓库要分发加密脚本:
type字段保持frida- 确保仓库用户都用 fridamod 框架
- 在
desc或markdown里注明"加密脚本,需 fridamod"
加密脚本 + 内核驱动模式
加密脚本可以配合内核驱动模式使用,没问题。内核驱动模式下的解密和普通模式一样,在内存中完成。
不加密的替代方案
如果加密对保护不够(毕竟最终还是会在内存里解密),可以考虑:
- 脚本关键逻辑用 native 层实现(编译成 .so),JS 层只做壳
- 脚本中加入混淆(JS 混淆工具)
- 定期更新脚本,让过时版本失效
加密只是第一道防线,不是绝对安全。