爬虫:某音乐JavaScript加密破解

分析查找

  1. js文件查找
  2. 本地替换

    详见 某音乐python批量下载

hook

websocket方式

  1. js页面。首先在需要调用的函数处,找到适当位置可以调用到要hook的函数,插入如下代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    window.ws = new WebSocket('ws://127.0.0.1:10086/ws');
    //连接成功时执行
    ws.onopen = function () {
    console.log('browser started')
    // ws.send(d("hello"))

    };

    // 收到服务端消息时执行
    ws.onmessage = function (evt) {

    //这里调用要执行的js函数,然后将返回结果给服务端
    var retult = d(evt.data)
    console.log("send : "+retult)
    ws.send(d(retult));
    }
  2. 服务端启用python websocket服务器建立链接。即可调用

sekiro rpc方式

sekiro ipc 的使用

扣取js代码并利用python 加载js 本地执行

扣取js代码放到本地执行,利用python execjs库进行加载

1
2
3
4
5
6
7
8
9
10
with open(".js","r") as f:
read = f.read()

#记载js代码
ctx = execjs.compile(read)

param = ''
#执行 encryption 函数
result = ctx.call("encryption", param)
print(result)