跳至内容

破解vscode intelephense插件

Karson Zhong · Posted on 2023-08-13 · 566 Views

呜呜呜

在vscode用php搞事
最好用的辅助插件之一就是intelephense

但有些好用的功能要付费
好贵,呜呜呜

如果是20RMB我就买了,但20刀实属是
有钱一定买,呜呜呜

现在还是先用学习版吧

破解intelephense

本文仅用作学习用途
这是好插件,一般功能也够用
如果需要使用插件的高级功能,请支持正版

绕过激活

入口

intelephense在github是有个不开源的仓库的
然后通过一波搜索,在extension.ts找到可疑点:

    return new Promise((resolve, reject) => {
        let responseBody: string = '';

        let req = https.request(options, res => {

            res.on('data', chunk => {
                responseBody += chunk.toString(); // <--修改返回
            });

            res.on('end', () => {
                if (res.statusCode === 200) { // <--修改状态
                    let filepath = path.join(context.globalStoragePath, 'intelephense_licence_key_' + licenceKey);
                    fs.writeFile(filepath, responseBody).then(resolve, reject);
                } else {
                    reject(new Error('Failed to activate key'));
                }
            });

            res.on('error', reject); // <-- 去除错误处理
        });

        req.write(postData);
        req.on('error', reject);
        req.end();
    });

这显然是发送激活请求的代码,如果通过请求,它就会往文件里写证书
我们需要它无路如何都通过验证,写入文件,而且不报错误

extension文件

打开vscode:

  • 如果是本地环境,ctrl+shift+p打开命令面板,输入Open Extensions Folder打开插件文件夹
  • 如果你使用的是vscode remote,你需要手动打开服务器中的~/.vscode-server/extensions文件夹
    • 建议将文件夹加到workspace操作

找到intelephense的文件夹:bmewburn.vscode-intelephense-client-...,搜索时注意版本号

找到并打开里面的/lib/extension.js文件
你会得到uglify过后的插件文件

修改extension.js

先备份extension.js
上网随便找个prettifier,把它复制扔进里面,整好看点

然后在文件里搜索Failed to activate key,定位到修改代码,把它修改成这样:

return new Promise(((o, a) => {
    let c = "",
        u = s.request(i, (n => {
            n.on("data", (e => {
                c = '{"success":{"code":200,"message":"Thank you"}}';
            })), n.on("end", (() => {
                // if (200 === n.statusCode) {
                    let n = r.join(e.globalStoragePath, "intelephense_licence_key_" + t);
                    h.writeFile(n, c).then(o, a)
                // } else a(new Error("Failed to activate key"))
            }))/* , n.on("error", a) */
        }));
    u.write(n), u.on("error", a), u.end()
}

跟上面说的一样,主要是修改了返回值c,和注释掉几行。

修改后,替换掉原来的文件,保存
至此绕过了激活

你可以选择再次uglify

绕过检测

但还没绕过证书检测

打开node_modules\intelephense\lib\intelephense.js

搜索:

  • isActive(){
  • isRevoked(){
  • isExpired(){

把函数体修改成:

  • isActive(){return true;}
  • isRevoked(){return false;}
  • isExpired(){return false;}

保存退出
完事,重启vscode

激活

ctrl+shift+p打开命令面板
输入任意15字的内容:EducationalCode
激活完毕

如果激活失败,请检测网络问题,因为还是需要发送一个网络请求的

抄袭资料

有钱一定买正版,呜呜呜

程序员,热衷于游戏开发和软件制作。但也是一个杂食动物,喜欢探索各种赛博相关的奇技淫巧。

0 0 投票数
文章评分
订阅评论
提醒
guest

2 评论
最旧
最新 最多投票
内联反馈
查看所有评论
Qing
Qing
8 月 前

2024-08-09 可用, 感谢!

Ye1
Ye1
6 月 前

我咋成功不了

Nova - rebirth of a wonderful theme.

Theme Nova by KarsonJo

  • Serif
  • Sans Serif
切换主题 | SCHEME TOOL
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
2
0
希望看到您的想法,请您发表评论x
2
0
希望看到您的想法,请您发表评论x