前言
Pycharm好像是3.X版本上的登录验证,IEDA应该是2.3,登录验证已经无法使用插件来绕过,这里记录一下新的方法。
此方法来源依旧是eval-reset插件的作者,使用到的开源项目地址或网站:
- https://github.com/ja-netfilter/ja-netfilter[ja-netfilter/ja-netfilter: A javaagent framework (github.com)](https://github.com/ja-netfilter/ja-netfilter)
- zfkun/ja-netfilter-mymap-plugin: A plugin for the ja-netfilter, it can replace strings dynamically. (github.com)
- https://jetbra.in/: 临时许可证
顺便整了个一键脚本,只适用于windows,注意解压到非中文目录中
下载-》https://wwc.lanzouo.com/iF2K4y5qb0b
运行里面的run.exe即可
最后的效果:

绕过登录验证
新版本配置文件位置已改变
首先下载上面ja-netfilter,放置到一个非中文路径的文件夹下,假设你已经登录(若偏不使用账号登录,可以使用上面的临时许可证),在窗口上方帮助->编辑自定义VM选项 中引入ja-netfilter
# eval
-javaagent:D:/ja-netfilter/ja-netfilter.jar
然后在jar文件的同级目录内新建一个janf_config.txt:
新版本(2.0.1)配置文件位置已经改变,变成了:

一个插件对应一个conf文件,所以下面的DNS和URL都要放进对应的文件里面
[DNS]
EQUAL,jetbrains.com
[URL]
PREFIX,https://account.jetbrains.com/lservice/rpc/validateKey.action
至此,重启并点击注册页面的开始试用即为成功,实际上不点也行,许可证显示过了日期也是可以使用的
py脚本
这里顺便贴一下脚本代码,注意!直接拿出来运行时不行的,需要下载上面的zip包
import os
print("本脚本会自动注册IntelliJIdea, PyCharm, CLion系列软件\n请存放于非中文路径中\n !!!!!!!只适用于登录验证版本!!!!!!!!\n")
os.system('pause')
get_user = "echo %username%"
user_name = os.popen(get_user).read().strip()
print(user_name)
jb_path = f"C:/Users/{user_name}/AppData/Roaming/JetBrains"
# jb_path = f"./test"
software_list = [('IntelliJIdea', 'idea64.exe.vmoptions'),
('PyCharm', 'pycharm64.exe.vmoptions'),
('CLion', 'clion64.exe.vmoptions')]
vm_file_path_list = []
pwd = os.getcwd().replace('\\', '/')
ja_path = f"{pwd}/ja-netfilter.jar"
add_str = f"-javaagent:{ja_path}"
for dir_ in os.listdir(jb_path):
for i in software_list:
if dir_.startswith(i[0]):
vm_file = jb_path + "/" + dir_ + f"/{i[1]}"
if os.path.exists(vm_file):
with open(vm_file, "r+") as f:
agaent_exists = False
text = f.read().splitlines(keepends=True)
for line in text:
if line.strip().startswith("-javaagent"):
agaent_exists = True
print(f"{dir_}的-javaagent已设置,将跳过,自行检查")
break
if not agaent_exists:
# text.append(f"\n# eval \n-javaagent:{ja_path}")
f.writelines([f"\n# eval \n-javaagent:{ja_path}"])
print(f"{dir_}注册成功")
else:
with open(vm_file, "w") as f:
f.write(f"\n# eval \n-javaagent:{ja_path}")
print(f"{dir_}注册成功")
print("\n")
print("请自行在软件内点击 开始试用 进行激活")
print("\n")
os.system('pause')
更新
- 12/26:打包的时候加上了
-w,整得报错了 - 12/30:版本更新
