MgicBlock的MacCms10 player.js解密及分析
本来是要发GH的,但考虑到一些问题,所以决定还是在这里发了大家可以帮忙发到Github上(记得带上本帖子链接)
还有本文附件中evel解密工具理论可解所有js evel壳
# MagicBlock/MacCms10 去广告教程
## 问题背景
解密 MacCms10 的 `player.js` 后,发现了一段判断逻辑:
```js
if(!/(Win|Mac)/i.test(navigator.platform)){
var a=document.createElement('script');
a.type='text/javascript';
a.async=true;
a.charset='utf-8';
a.src='//union.maccms.la/html/top10.js'+'?r='+this.GetDate('yyyyMMdd');
var b=document.getElementsByTagName('script');
b.parentNode.insertBefore(a,b)
}
```
该脚本**仅在非 Windows/Mac 系统**(如 Linux、Android、iOS)上加载,从而避免开发者在桌面端测试时发现。
获取到的 `top10.js` 内容如下:
```js
if (MacPlayer.Status) {} else {$("#install").attr('src', '//union.maccms.la/html/' + MacPlayer.PlayFrom + '.html')}
```
**这就是你网站弹广告的根本原因。**
---
## 解决方案
### 1. 替换 player.js
用本仓库中的 `player.js` 覆盖 `/static/js/player.js`
### 2. 替换 playerconfig.js 并补充资源文件(以防万一)
原始 `playerconfig.js` 存在~~极其简单的~~编码混淆,解密后的配置如下:
```js
var MacPlayerConfig = {};
//参数开始
MacPlayerConfig = {
"width": "100%",
"height": "100%",
"widthmob": "100%",
"heightmob": "100%",
"widthpop": "0",
"heightpop": "600",
"second": "5",
"prestrain": "//union.maccms.la/html/prestrain.html",
"buffer": "//union.maccms.la/html/loading.html",
"parse": "",
"autofull": "0",
"showtop": "1",
"showlist": "1",
"flag": "0",
"colors": "000000,F6F6F6,F6F6F6,333333,666666,FFFFF,FF0000,2c2c2c,ffffff,a3a3a3,2c2c2c,adadad,adadad,48486c,fcfcfc"
};
//参数结束
//缓存开始
MacPlayerConfig.player_list = {
"dplayer": {
"show": "DPlayer-H5播放器",
"des": "dplayer.js.org",
"ps": "0",
"parse": ""
},
"videojs": {
"show": "videojs-H5播放器",
"des": "videojs.com",
"ps": "0",
"parse": ""
},
"iva": {
"show": "iva-H5播放器",
"des": "videojj.com",
"ps": "0",
"parse": ""
},
"iframe": {
"show": "iframe外链数据",
"des": "iframe外链数据",
"ps": "0",
"parse": ""
},
"link": {
"show": "外链数据",
"des": "外部网站播放链接",
"ps": "0",
"parse": ""
},
"swf": {
"show": "Flash文件",
"des": "swf",
"ps": "0",
"parse": ""
},
"flv": {
"show": "Flv文件",
"des": "flv",
"ps": "0",
"parse": ""
}
};
MacPlayerConfig.downer_list = {
"http": {
"show": "http下载",
"des": "des提示信息",
"ps": "0",
"parse": ""
},
"xunlei": {
"show": "xunlei下载",
"des": "des提示信息",
"ps": "0",
"parse": ""
}
};
MacPlayerConfig.server_list = {
"server1": {
"show": "测试服务器1",
"des": "des提示信息1"
}
};
//缓存结束
```
**操作步骤:**
- ~~将本仓库中的 `prestrain.html` 和 `loading.html` 放入 `/static` 目录~~苹果cms内置有加载页
- 用本仓库中的 `playerconfig.js` 替换原文件
完成以上替换后,广告即可清除。
附件好像没上传上,补上
页:
[1]