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 應該不少。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。