上来先说点题外话,很多人最新私信我说我的开源项目IDE Eval Resetter不好用了。我就问他为什么不好用了,不好编译了吗?他说不是,是不能在IDE上重置了。我心说,这是个学习研究项目,重在学习插件写法,不能用也实在属于正常。于是我去测试了一下,得出了个结论:2021.2.2及以下版本很好用;2021.3以下(不含)堪堪能用,需要配合一些手法;2021.3版本开始正式失效,你可以卸载这个插件了!
所以没错,IDE Eval Resetter这个项目我已经弃坑,因为我觉得我插件已经写得很好了(手动狗头,以下很多用词默认手动加了狗头),得玩点其他好玩的东西。
这次要来玩个正经的、通用的、高大上的东西。
0x0. 项目背景
首先还是基于上述内容。
我们日常使用的软件中有很多有意或无意被加入网络访问的代码。有些并非恶意,有些则是。
并非恶意的像一些软件的在线激活验证,如dbeaver、smartgit等。
恶意的像有些软件本身就有盗取用户隐私数据的情况,有些软件则是被一些别有用心的人二次加工放入偷取用户数据的代码。
我们通常会使用防火墙来阻断这些软件的恶意访问。但防火墙也不是万能的,比如:跨平台问题、https下无法精准阻断某个url访问、部分防火墙不能阻断dns访问。
于是就有了我今天开源的这个项目:通用的、针对java程序的、灵活的、精准基于规则的、基于AOP思想的牛逼哄哄防火墙(无数狗头):ja-netfilter!
0x1. 如何安装
1). 下载安装:
直接到项目仓库的Releases页面下载我打包好的文件包。
按照项目README.md所写的方式来配置-javaagent参数。某些软件像dbeaver和smartgit等软件都支持直接编辑配置文件来配置,你可以参考我之前写的agent帮助文件来配置,这里不赘述。
编辑janf_config.txt配置文件,配置希望阻断的规则。具体见下面的配置文件部分。
1). 编译安装:
直接到项目仓库页面下载源文件,编译出目标jar文件即可。
同下载安装部分。
0x2. 如何使用
按照上述安装配置好后直接启动目标程序即可。
你甚至能跟你的tomcat或jetty一起使用,来防止你项目依赖包中的一些恶意请求。
0x3. 如何更新
关注上述的开源项目即可获取最新的代码和编译好的包。
0x4. 配置文件
项目的README.md中讲了很多可以放置配置文件的地方,按照从上到下的优先级来的。找到一个就会读取,不会再往下找。
我建议把janf_config.txt文件跟你ja-netfilter.jar放在同一个目录那种。这样会自动读取,不必再配置janf_config.txt的位置。
至于配置文件的编写,项目帮助文档中已经写出,这里不再重复说明了。只是简单列举几个例子:
DBEaver 阻断激活验证的 janf_config.txt 配置文件
[URL]
PREFIX,https://dbeaver.com/lmp/checkLicense
SmartGit 的 janf_config.txt 配置文件
[URL]
PREFIX,https://store.smartgit.com/check
jb 的 janf_config.txt 配置文件
[DNS]
EQUAL,jetbrains.com
[URL]
PREFIX,https://account.jetbrains.com/lservice/rpc/validateKey.action
0x5. 开源信息
插件是学习研究项目,源代码是开放的。源码仓库地址:ja-netfilter。
这是个通用的软件包,配置文件灵活自由,请不要过度想象。
请不要试图结合IDE Eval Resetter一文中所说热心大佬的key来使用本项目。赶快入正!赶快入正!赶快入正!
如果你有更好的想法,欢迎给我提Pull Request来共同研究完善。
插件源码使用:GPL-3.0开源协议发布。
插件使用PHP编写,毕竟PHP是世界上最好的编程语言!
0x6. 支持的产品
本防火墙基于javaagent,所以目前只有基于java的程序能够使用。更通用的防火墙,等我学习更多知识。
0x7. 插件机制
新版本ja-netfilter已经支持插件机制,各位可以给它开发各种各样有趣的插件了。
插件开发请见这个脚手架项目。
插件丢进ja-netfilter.jar所在的plugins子目录即可加载