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

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