ningmou

ningmou

telegram

潮汐win端分析

前言#

有傳言說 v2board 的作者被帶走了,客戶端打包面板已經無法使用。所以我們來分析一下客戶端,看看能不能有所收獲。

結構#

image
可以看到客戶端是用 electron 編寫的,所以我們可以解包 \resources 文件夾中的 app.asar 來查看源代碼。
image

處理#

為了方便分析,我們將 app.asar 解包並將解包後的內容放到同名文件夾中。
主進程 main.js 並沒有進行混淆等處理,可以直接看到邏輯。通過分析可以看到,作者關閉了沙盒等安全措施,比較莽。
可以看到主頁面是./dist/index.html
image
上方圖片是修改後的代碼圖片。
為了方便調試,首先去除 devtools 限制,並開啟應用上方菜單欄。
image
頁面中的 umi.js 經過加密,並且具有反開發者工具等功能,看加密風格像是jsjiami.com的加密工具加密的,開頭有個大數組的這種加密方式。
image
經過處理就可以去除部分反調試措施。但是為了分析,還是要對 js 進行解密。
由於本人水平有限,解密的並不完全,就不放解密之後的代碼了

分析#

image
客戶端首先會請求接口獲取 v2b 面板地址,返回內容為 json。
image
並將面板地址存入 global 中
image

然後再請求 v2b 面板獲取網站名稱等信息
image
登錄成功後就可以使用了
image

破解?#

破解的核心在於解密 umi.js 文件,經過本人嘗試解密耗時很長,不亞於重新寫一個一樣的。
經過對本人解密的 js 分析,有多種反盜版措施,並且會將盜版的信息上報。但是上報的地址目前不能正常訪問會返回 500。反盜版措施經過研究都可以繞過,但是為了支持正版就不放出來了。
但是呢,由於作者不知所踪,可以不管反盜版措施,直接開幹。

思路#

這裡提供一種簡單的思路,這種思路會觸發反盜版措施,用戶使用時具體表現為突然關閉應用,但是觸發機率不大。so...

具體原理為攔截 fetch 請求,並對請求進行修改。這裡在 Index.html 中加入 fake.js。以下為內容。
image

const originFetch = fetch;
Object.defineProperty(window, "fetch", {
  configurable: true,
  enumerable: true,
  get() {
    return (url,options) => {
		//攔截獲取面板地址的api並替換為自己的地址
		if(!url.includes("api/v1")){
			url = "http://自己的地址/config.json"
		}
		//阻止反盜版上報
		if(url.includes("fake")){
			alert(url);
			while(1){}
		}
      return originFetch(url,options)
	}
  }
});
//改登錄頁面的標題和應用運行時的名稱
window.addEventListener('DOMContentLoaded',()=>{
	document.querySelector("title").innerText="久世凝眸"
})

然後重新打包成 asar 放到指定位置就可以用了。
圖標等也可以通過工具進行修改,這裡就不演示了。

其他#

css 還是可以改一改的,比如換個顏色啥的。下圖為改成 lightpink 顏色的示例。
image

交流群#

https://t.me/TalkToJshi

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