# jb-netfilter **Repository Path**: h0twind/jb-netfilter ## Basic Information - **Project Name**: jb-netfilter - **Description**: An unofficial edition of ja-netfilter which has modified for activating JetBrains IDE. - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: stable - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-03-29 - **Last Updated**: 2022-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jb-netfilter v3.3.2 [ja-netfilter](https://github.com/ja-netfilter/ja-netfilter) 的 JetBrains IDE 专用增强版本。 *为自用工具,提交和代码都特别乱,别在意~* ## `jb-netfilter` 的优点 * **为破解 JetBrains IDE 而优化** ~~指不定哪天就删库跑路了~~ * 自动为 JetBrains IDE 添加配置 ~~其实手动执行脚本也废不了多少时间~~ * 可自定义 JetBrains IDE 注册信息 ~~面子工程是吧~~ * 集成插件至`jb-netfilter`本体内,运行时间 ~~也许~~ 更快 ## 快速上手 1. 确保已[安装 JDK 11](https://github.com/adoptium/temurin11-binaries/releases/) 2. 在`jb-netfilter`目录下执行 ``` java -jar jb-netfilter.jar --install IDE ``` 如果要为`YouTrack`,`Hub`或`Upsource`配置,更改上述命令中的`IDE`即可 3. 提示输入`custom registration name`,输入自己想要自定义的许可证名即可,默认`jb-netfilter` 4. 提示输入`custom registration expiration date`,输入自己想要自定义的许可证到期日即可,默认`2099-12-31` 5. 等待输出`> Configuration completed.` 6. 如果安装过程报错,可自行翻译找原因,或者提交 [Issue](https://github.com/RayGicEFL/jb-netfilter/issues) 7. 不妨去 [Wiki](https://github.com/RayGicEFL/jb-netfilter/wiki/Keys) 看一下 ## 进阶玩法 ### 参数详解 执行`java -jar jb-netfilter.jar`,可以看到`jb-netfilter`支持的参数。 #### `--name`参数 自定义配置、插件、日志目录名,例如使用`--name abc`则`jb-netfilter`会读取`config-abc`作为配置目录,`plugin-abc`作为插件目录,并将日志文件放入`logs-abc`中。 使用自定义目录名的功能可以帮助区分,以免这三个文件夹与其它程序混合;如果你也用`jb-netfilter`来管理其它软件,这个功能可以帮助你拆分不同软件的不同配置与插件。 #### `--attach`与`--attach-selector`参数 附加模式,可以在 Java 程序启动后加载`jb-netfilter`。如果你已经知道 Java 程序进程 ID (即 PID ),可以使用`--attach PID`;如果你不知道,使用`--attach-selector`,`jb-netfilter`会列出所有 Java 进程以供选择。 附加模式可以在你即不知道 Java 程序的`.jar`在哪里,也找不到`.vmoptions`文件以配置`javaagent`的时候帮助加载`jb-netfilter`。 *注意:`--name`参数在这里适用,将告诉`jb-netfilter`进入附加模式时也读取对应目录。* #### `--install`与`--uninstall`参数 进入安装与卸载模式,这并不会安装或卸载 IDE 本身,而是为 IDE 配置或解除配置`jb-netfilter`。 #### 其它注意事项 * `--name`参数为可选参数 * 当你不带参数(以`java -jar xxx`)执行`jb-netfilter`时会输出简版的参数使用方法 * 一旦使用`--name`参数,就必须再指定另外一个参数并且也只能指定一个,否则将会输出警告并退出 * 多个非`--name`参数不能连用,否则只会读取第一个,剩余将被忽略 * 若在安装或附加模式时使用了类似`--name`参数,且不存在`config-xxx`和`plugin-xxx`文件夹,则`jb-netfilter`会询问是要从已有配置复制(重命名`config`为`config-xxx`,`plugin`亦同)还是创建一个新的配置(创建`config-abc`和`plugin-abc`文件夹) ### 插件系统 * **`jb-netfilter`兼容所有为`ja-netfilter`开发的插件** * 对于开发人员: * 像开发`ja-netfilter`插件一样开发适用于`jb-netfilter`的插件 * 查看由`ja-netfilter`提供的 [插件脚手架项目](https://github.com/ja-netfilter/ja-netfilter-sample-plugin) * 如果想要为插件添加自动配置支持,可以看看`jb-netfilter`的内置插件`dns` `power` `url`是如何工作的 (这三个插件有`JB_DEFAULT`支持) * 编译并且发布插件 * 如果此插件适用于 JetBrains IDE,请考虑提交PR,将插件代码添加到`src/main/java/包名/`中并将配置文件示例放置到`.github/config/插件名小写.conf`文件中。感谢! * 对于用户: * `jb-netfilter` 内置了这些插件: * `dns`: 阻止 DNS 解析 * `hideme`: 防止 Java 程序对`jb-netfilter`的探测 * `power`: 修改非对称加密参数或结果 * `url`: 阻止 http 请求 * `myreg`: 自定义 JetBrains IDE 的注册信息 * 为`jb-netfilter`添加其它插件: * 下载插件,后缀名为`.jar` * 放置`.jar`文件到`jb-netfilter.jar`所处目录的`plugins`子目录下,如果没有请自行创建 * 如果需要,在`config`目录下的`插件名小写.conf`文件中撰写插件的配置 #### 禁用插件 * 禁用内置插件: * 找到插件配置文件(`插件名小写.conf`)并打开 * 在`[Disabled]`选项下填写`true` * 例如: ``` [DNS] EQUAL,xxx [Disabled] true ``` * 禁用外置插件: * 找到插件的`.jar`文件,例如`abc.jar` * 在`.jar`后缀前加入`.disabled`后缀,例如`abc.disabled.jar` * 禁用内置插件的方法同样适用于外置插件 ### 调试输出 * `jb-netfilter` 默认**不会**输出调试信息 * 增加环境变量`JANF_DEBUG=1`或参数`-Djanf.debug=1`来开启 ## 特别鸣谢 **感谢 [zhile](https://github.com/pengzhile) 大佬** `jb-netfilter`本体及部分内置插件源于他开发的 [ja-netfilter及附带插件](https://github.com/ja-netfilter) `jb-netfilter`内置`MyReg`插件修改自他开发的`MyMap`插件 `jb-netfilter`内置 VMOptions 配置脚本修改自他的`ja-netfilter-all.zip`内附脚本 `jb-netfilter`对 YouTrack,Hub 和 Upsource 的支持由 [他编写的文章](https://zhile.io/2022/01/13/youtrack-upsource-hub-via-power.html) 提供