ningmou

ningmou

telegram

某墙梯客户端研究

image

结构分析#

一眼 electron
image
所以打开 resources 瞅瞅

image
和经典的结构不太一样,正常来讲源代码应该打包到 app.asar 里面,但是这个不太一样,直接裸露在外面了,正好也省事了。

研究过程#

打开 pacakage.json

image

image
首先来说有个很难崩的一点是,这个项目用到了好几个常见的包管理程序。json 文件里面写的是 npm yarn,文件夹里还有 pnpm,直接单走一个 6。能融合这么多还能正常跑,也是个人才。

下面直接研究主文件就行
也没加密,只是压缩了代码,格式化一下就 ok。
下面来到了作者的精彩操作。

image
依赖里有 ob 混淆,然后没用,不知道引用干啥。
vue 应该是开发依赖吧,这直接全部塞进最后的包里了。
导致最后仅依赖就将近 100M
下面返回主文件。

截屏 2024-04-01 20.48.24_副本

我一眼就看到了这两个字符串,一看就是先获取 oss 之类的地址,再获取面板地址。明晃晃的两个加密字符串,后面还有 base64 的 ==,这不明白着告诉你我是加密信息吗。

console.log(w().replaceAll("}", ""));

直接把相关函数单独拿出来,输出就能看到地址,是 gitee 的。
https://gitee.com/wepc_1_0/appconfig
然后拿到内容,修改一下 x 函数,直接输出就行。

function x() {
            var n = f;
           console.log(n)
}
var data = "gitee拿到的内容";
var n = new Buffer(data, "base64").toString("UTF-8");
m(n);
x();

内容大概是这样的,自己解去吧,太长了就不放出来了。

{
  apiUrl: 'https://.',
  crispId: '',
  siteName: '',
  website: 'https://',
  tgGroup: '',
  invite: '',
  inviteIntroduce: '',
  affText: '邀请链接: ',
  payMethod: '1',
...........

用法#

修改下面这段代码就行了

await c().get("获取地址").then((e => {
                    var n = new Buffer(e.data, "base64").toString("UTF-8");
                    m(n), x()
                }))

然后地址哪里放 base64 加密后的 json 就行,格式就在上面几步获取的 gitee 里,自己解一下换上就行。

其他#

包怎么获取,懂的都懂,gitee 都给你了。
有一说一,这客户端我只看了 win 的,呃,咋说呢,看着代码质量和实现方式,我觉得 bug 应该不少。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。