某音ab,a_bogus加密解析,多的不说,少的不唠,直接上代码

问题原因:
这个东西卡了好久,也参考了很多文章

问题解决:

dy_douyin.js 这个是 源码js
dy_env.js 补环境的js
douyin.py 启动的文件
dy_ceshi.js 测试 js

** -----------------------------------------------------------------------------------------
补环境的 dy_env.js

window = global
delete global;
delete Buffer;
window.XMLHttpRequest = function () {
    return 'XMLHttpRequest() { [native code] }'
}
//上代理
function get_enviroment(proxy_array) {
    for (var i = 0; i < proxy_array.length; i++) {
        handler = '{\n' +
            '    get: function(target, property, receiver) {\n' +
            '        console.log("方法:", "get  ", "对象:", ' +
            '"' + proxy_array[i] + '" ,' +
            '"  属性:", property, ' +
            '"  属性类型:", ' + 'typeof property, ' +
            // '"  属性值:", ' + 'target[property], ' +
            '"  属性值类型:", typeof target[property]);\n' +
            '        return target[property];\n' +
            '    },\n' +
            '    set: function(target, property, value, receiver) {\n' +
            '        console.log("方法:", "set  ", "对象:", ' +
            '"' + proxy_array[i] + '" ,' +
            '"  属性:", property, ' +
            '"  属性类型:", ' + 'typeof property, ' +
            // '"  属性值:", ' + 'target[property], ' +
            '"  属性值类型:", typeof target[property]);\n' +
            '        return Reflect.set(...arguments);\n' +
            '    }\n' +
            '}'
        eval('try{\n' + proxy_array[i] + ';\n'
            + proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}catch (e) {\n' + proxy_array[i] + '={};\n'
            + proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}')
    }
}

proxy_array = ['window', 'document','location',' navigator', 'history','screen', 'aaa', 'target']

navigator = {}
navigator.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
document = {}
document.createElement = function (name) {
    if (name == 'span') {
        return [{}]
    }
}
window.requestAnimationFrame = function () {
    return 'requestAnimationFrame() { [native code] }'
}
get_enviroment(proxy_array);


dy_ceshi.js


require('./dy_env')
require('./dy_douyin')

console.log(window._uu)


function get_a_bogus(p) {
    arguments = [
        0,
        1,
        8,
        p,
        "",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
    ]
    var r = window._uu._v;
    return (0, window._uu._u)(r[0], arguments, r[1], r[2], this)
}
//
// //测试
// p = "device_platform=webapp&aid=6383&channel=channel_pc_web&sec_user_id=MS4wLjABAAAAiXeL8UUfi0KfVrjbpc2LJKSGiPXEBomMz5i_DCbDsSYXhCJ6PZm9c7DUE1KCQ2cy&req_from=channel_pc_web&cursor=0&count=6&update_version_code=170400&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1920&screen_height=1080&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=126.0.0.0&browser_online=true&engine_name=Blink&engine_version=126.0.0.0&os_name=Windows&os_version=10&cpu_core_num=16&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=50&webid=7348375623537411636&msToken=ObBn4WzvIEsFDSPcVzMI6ES47BjSfoHLSZkFNb_Sl1Lu5ORzpNXBsijxkg94GIU5FOvcR62mwYfOL6BttOxaKDEfHBvuS06SmC5SmV88IflBhxxSkLIiE2A0EjIA&msToken=ObBn4WzvIEsFDSPcVzMI6ES47BjSfoHLSZkFNb_Sl1Lu5ORzpNXBsijxkg94GIU5FOvcR62mwYfOL6BttOxaKDEfHBvuS06SmC5SmV88IflBhxxSkLIiE2A0EjIA"
//
// console.log(get_a_bogus(p))


里面的 这段

function get_a_bogus(p) {
    arguments = [
        0,
        1,
        14,
        p,
        "",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
    ]
    var r = window._uu._v;
    return (0, window._uu._u)(r[0], arguments, r[1], r[2], this)
}

window._uu这个东西是需要在源码里面去 添加一个东西 window._uu= u 。
源码是什么、?
在这里插入图片描述
就这个js 就是源码, 不明白的 网上很多文章,自己去看下。 这里需要定位到 59 !=
在这里插入图片描述
到这个位置,添加上 window._uu= u (随你写什么, 反正 window.xxx = u)

调用的文件 douyin.py

# -*- coding: utf-8 -*-
# author: da_pangzi
# datetime: 2024/8/14 10:48 
# ide: PyCharm
import pprint

import requests
import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')  #这三行代码需要放在导入execjs之前

import execjs
import urllib.parse
cookies = ''  # 自己的 加上去
headers = {
    "accept": "application/json, text/plain, */*",
    "accept-language": "zh-CN,zh;q=0.9",
    "cache-control": "no-cache",
    "pragma": "no-cache",
    "priority": "u=1, i",
    "referer": "https://www.douyin.com/user/MS4wLjABAAAADw1dDJd4zddv0m8KWQB7ztFV0Nt8QzIK7dpFvbsrXss",
    "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"Windows\"",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-origin",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
}
# url = "https://www.douyin.com/aweme/v1/web/hot/search/list/"
# params = {
#     "device_platform": "webapp",
#     "aid": "6383",
#     "channel": "channel_pc_web",
#     "sec_user_id": "MS4wLjABAAAAiXeL8UUfi0KfVrjbpc2LJKSGiPXEBomMz5i_DCbDsSYXhCJ6PZm9c7DUE1KCQ2cy",
#     "req_from": "channel_pc_web",
#     "cursor": "0",
#     "count": "6",
#     "update_version_code": "170400",
#     "pc_client_type": "1",
#     "version_code": "170400",
#     "version_name": "17.4.0",
#     "cookie_enabled": "true",
#     "screen_width": "1920",
#     "screen_height": "1080",
#     "browser_language": "zh-CN",
#     "browser_platform": "Win32",
#     "browser_name": "Chrome",
#     "browser_version": "126.0.0.0",
#     "browser_online": "true",
#     "engine_name": "Blink",
#     "engine_version": "126.0.0.0",
#     "os_name": "Windows",
#     "os_version": "10",
#     "cpu_core_num": "16",
#     "device_memory": "8",
#     "platform": "PC",
#     "downlink": "10",
#     "effective_type": "4g",
#     "round_trip_time": "50",
#     "webid": "7348375623537411636",
#     "msToken": "ObBn4WzvIEsFDSPcVzMI6ES47BjSfoHLSZkFNb_Sl1Lu5ORzpNXBsijxkg94GIU5FOvcR62mwYfOL6BttOxaKDEfHBvuS06SmC5SmV88IflBhxxSkLIiE2A0EjIA\""
# }

url = "https://www.douyin.com/aweme/v1/web/comment/list/"
params = {
    "device_platform": "webapp",
    "aid": "6383",
    "channel": "channel_pc_web",
    "aweme_id": "7312767033630870799",
    "cursor": "0",
    "count": "20",
    "item_type": "0",
    "insert_ids": "",
    "whale_cut_token": "",
    "cut_version": "1",
    "rcFT": "",
    "update_version_code": "170400",
    "pc_client_type": "1",
    "version_code": "170400",
    "version_name": "17.4.0",
    "cookie_enabled": "true",
    "screen_width": "1920",
    "screen_height": "1080",
    "browser_language": "zh-CN",
    "browser_platform": "Win32",
    "browser_name": "Chrome",
    "browser_version": "126.0.0.0",
    "browser_online": "true",
    "engine_name": "Blink",
    "engine_version": "126.0.0.0",
    "os_name": "Windows",
    "os_version": "10",
    "cpu_core_num": "16",
    "device_memory": "8",
    "platform": "PC",
    "downlink": "10",
    "effective_type": "4g",
    "round_trip_time": "50",
    "webid": "7348375623537411636",
    "verifyFp": "verify_lymcdi4q_u6iSb0qE_NJtK_4BWo_8eUt_lLRNDEsEIWxQ",
    "fp": "verify_lymcdi4q_u6iSb0qE_NJtK_4BWo_8eUt_lLRNDEsEIWxQ",
    "msToken": "s6SsTqZoOYrZ-uwenz7c_WIBs11-0cu-3g8gEfkTUZNW1o--RQt8FRxi5RghxMhJlEgdNTx436I0foyGN6DcxY3Us8_x0dP-JXHf4RdudTLpnvn2FuAMSmDNj5Fk",
}

params_str = urllib.parse.urlencode(params)
# 使用 utf-8 编码打开文件
with open('dy_ceshi.js', 'r', encoding='utf-8') as file:
    js_code = file.read()
a_bogus = execjs.compile(js_code).call('get_a_bogus', params_str)
params['a_bogus'] = a_bogus
response = requests.get(url, params=params, headers=headers, cookies=cookies)
print(response.text)
print(response.status_code)


# print(response.json())

没有结果的时候,带上cookies ,没有带 没有返回,带了以后正常返回。

代码可以直接用,唯一的就是源码要自己全部扒下来了以后,在里面添加一个 window.xxx = u .

卡了这么久,一直被补环境卡着了,找到了这个 补出来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值