您现在的位置是: 网站首页> 学习笔记> JS逆向 JS逆向

“在线之家”电影网真实视频地址JS解密分析

2021-03-09 [JS逆向] 4708人已围观

打开调试工具,遇到debugger的地方都用Never pause here过掉, 这个麻烦的是不好下断点,每次加载的js都不一样,目前是通过前面不变的js一步一步跳进去的;

这个文件里有一个url赋值的地方,在这里断点跟进去;

一步一步跳到"https://dd.punakong.com:8172/ParsePlayer/Player/Js?time=xxx&key=xxx"这个文件开始的地方

搜一下new,一般创建播放器会new一个对象出来,找到两地方看起来像创建播放器,都上断点调试

可以看到url即为真实的视频地址

回溯找到初始化方法,通过初始化方法传入的参数名搜索到参数生成的地方,剩下的就是扣代码还原

扣代码的时候有个坑,就是混淆数组解密的方法扣出来调用时会卡死,由于调用混淆数组解密方法的地方不多, 我就直接调试查值替换了,没有用数组解密方法,另外htoStr解密方法中的while循环中,switch case中 全是console.log什么的,所以就直接把这段代码删了

function htoStr(_0x20f96b) {
    var _0x33fab9 = {
        'NeiPI': function _0xe0a51b(_0x58b746, _0x3c8ea7) {
            return _0x58b746 < _0x3c8ea7;
        },
        'GfpyZ': function _0x2fe410(_0x26160f, _0x322381) {
            return _0x26160f + _0x322381;
        },
        'tElzA': function _0x1a5e43(_0x2f04f0, _0x5463b3) {
            return _0x2f04f0 === _0x5463b3;
        },
        'rVbmt': 'AkG',
        'yflvX': function _0x34d58c(_0x4ee7b7, _0x33535c) {
            return _0x4ee7b7 + _0x33535c;
        }
    };
    var _0x21268c = '';
    for (var _0x562b46 = 0x0; _0x33fab9['NeiPI'](_0x562b46, _0x20f96b['length']); _0x562b46 = _0x33fab9['GfpyZ'](_0x562b46, 0x2)) {

        var _0x301a69 = _0x33fab9['yflvX'](_0x20f96b[_0x562b46], _0x20f96b[_0x562b46 + 0x1]);
        _0x301a69 = parseInt(_0x301a69, 0x10);
        _0x21268c += String['fromCharCode'](_0x301a69);

    }
    return _0x21268c;
}

function strRevers(_0x3bb97e) {
    return _0x3bb97e['split']('')['reverse']();
}
function decodeStr(_0x1a637d) {
    var _0x4044ce = {
        'cBSPf': function _0x5a09f4(_0x29962e, _0x4dbeca) {
            return _0x29962e / _0x4dbeca;
        },
        'irOtI': function _0x277612(_0x3e5ef5, _0x2417db) {
            return _0x3e5ef5 - _0x2417db;
        },
        'pHrlW': function _0x3f38ef(_0x1927b0, _0x4c4b33) {
            return _0x1927b0 + _0x4c4b33;
        }
    };
    var _0x142a4b = _0x4044ce['cBSPf'](_0x4044ce['irOtI'](_0x1a637d['length'], 0x6), 0x2),
    _0x2b3935 = _0x1a637d['substring'](0x0, _0x142a4b),
    _0x115055 = _0x1a637d['substring'](_0x4044ce['pHrlW'](_0x142a4b, 0x6));
    return _0x2b3935 + _0x115055;
}
function jie(_0x48c444) {
    _0x48c444 = strRevers(_0x48c444);
    _0x48c444 = htoStr(_0x48c444);
    return this['decodeStr'](_0x48c444);
}

直接调jie方法即可,参数为图2中的url的值。

文章评论

暂无评论

添加评论





本栏推荐

站点信息

  • 建站时间:2021-01-01
  • 网站程序:Django 3.1.2
  • 文章统计:53篇
  • 文章评论:31条
  • 统计数据