开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 231|回复: 3
收起左侧

[完成] 动态js逆向求助

 关闭 [复制链接]
结帖率:88% (15/17)
发表于 2026-1-9 14:18:31 | 显示全部楼层 |阅读模式   江苏省南通市
100精币
bs64网址:aHR0cHM6Ly9mb3JtLmViZGFuLm5ldC9scy9wNTdlOFV3WQ==
每次刷新页面时,会自动生成一个js加密文件,js混淆代码每次也不同,明文里面的参数值有一个是js动态生成的,其他明文是返回来的,但明文的拼接组成每次都不一样,小弟是小白一个,混淆后就更加无从下手了,求大佬帮忙分析分析
1.png 2.png 3.png

最佳答案

查看完整内容

你需要先找到 明文参数中那个动态生成的值”是在哪个函数里生成的 F12搜索固定明文参数,找到serverParams的定义位置后,给这个对象的赋值处打断点, 刷新页面,往上找,就能看到这个动态参数是被哪个函数计算出来的。 因为 JS 代码每次混淆后变量名都变,但逻辑是固定的,所以不用逆向混淆代码,Hook截获参数生成 Object.defineProperty(window, 'serverParams', { set: function(val) { console.log('动态生成的参数:', v ...

签到天数: 3 天

发表于 2026-1-9 14:18:32 | 显示全部楼层   山东省烟台市
你需要先找到 明文参数中那个动态生成的值”是在哪个函数里生成的
F12搜索固定明文参数,找到serverParams的定义位置后,给这个对象的赋值处打断点,
刷新页面,往上找,就能看到这个动态参数是被哪个函数计算出来的。
因为 JS 代码每次混淆后变量名都变,但逻辑是固定的,所以不用逆向混淆代码,Hook截获参数生成
Object.defineProperty(window, 'serverParams', {
  set: function(val) {
    console.log('动态生成的参数:', val);
    this._serverParams = val;
  },
  get: function() {
    return this._serverParams;
  }

});
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 3 天

发表于 2026-1-9 15:37:49 | 显示全部楼层   广东省东莞市
(function(window) {
    // ==== 防调试机制 ====
    const createDebugProtection = (function() {
        let initialized = true;
        return function(callback, context) {
            const protectionFunction = initialized ? function() {
                if (context) {
                    const result = context.apply(callback, arguments);
                    context = null;
                    return result;
                }
            } : function() {};
            initialized = false;
            return protectionFunction;
        };
    }());

    // 防调试检查器
    const debugChecker = createDebugProtection(this, function() {
        const pattern = /(((.+)+)+)+$/;
        return debugChecker.constructor()
            .toString()
            .search(pattern)
            .toString()
            .constructor(debugChecker)
            .search(pattern);
    });

    // 执行防调试检查
    debugChecker();

    // ==== 生成验证签名 ====
    if (window.performance && window.performance.timing) {
        const timing = window.performance.timing;
        
        // 使用页面加载的关键时间戳生成签名
        const timingData =
            timing.navigationStart +
            timing.responseEnd +
            timing.domLoading +
            timing.domInteractive +
            timing.domComplete +
            timing.loadEventEnd +
            (timing.u || '');
        
        // 添加固定后缀并生成MD5签名
        const signatureInput = timingData + '(((.+)+)+)+$';
        
        // 生成MD5签名并存储到performance.timing.u中
        if (typeof md5 === 'function') {
            timing.u = md5(signatureInput);
        } else {
            // 如果md5函数不存在,使用简单的哈希替代
            timing.u = simpleHash(signatureInput);
        }
    }

    // 简单的哈希函数(备用,当md5不存在时使用)
    function simpleHash(str) {
        let hash = 0;
        for (let i = 0; i < str.length; i++) {
            const char = str.charCodeAt(i);
            hash = ((hash << 5) - hash) + char;
            hash = hash & hash;
        }
        return Math.abs(hash).toString(16);
    }
})(window);
回复

使用道具 举报

结帖率:88% (15/17)

签到天数: 3 天

 楼主| 发表于 2026-1-9 19:45:48 | 显示全部楼层   江苏省南通市
qf123 发表于 2026-1-9 14:39
你需要先找到 明文参数中那个动态生成的值”是在哪个函数里生成的
F12搜索固定明文参数,找到serverParams ...

大佬能具体点吗,serverParams的定义位置打上断点往上没找到动态参数的生成位置,hock代码在控制执行也报错,麻烦大佬指点一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表