一、源码分析
1.获取源码
首先通过浏览器F12的预览可以看到格式化之后的源码。格式化之后的源码看起来就比较清晰。
2.源码分析
大致浏览分析一下JS的代码会发现,在第一行定义了一个数组变量。后面的参数值都是通过数据变量来定义获取。然后变量是通过十六机制来定义的。看到这些字符别怕,等会教一招简单的万能破解方式。
相信大家心理都已经有破解思路了,只要两个步骤即可得到源码。
第一步:把数组解析成可读字符串
第二步:将代码中的数组变量替换成字符串。
二、破解流程
1.如何把十六进制字符转换成可读字符串?
这里教大家一招万能破解方式,,,都做好了,,好好学习.不用搞什么ast语法树,说实话,我是搞后端的,不懂ast语法树。
坐好了!!!
打开浏览器,按F12打开开发者控制台,然后把第一行代码复制到控制台中执行即可。见证奇迹!!!
2.替换数组变量位固定字符串
替换就很简单了,如果懂其他语言,可以写一个map关系,进行变量替换文本即可得到最终的可读源码文件。这里就不演示了。
三、逆向成功源文件
apicall: function(t, a) { var e; e = window['XDomainRequest'] ? new XDomainRequest : window['XMLHttpRequest'] ? new XMLHttpRequest : new ActiveXObject('Microsoft.XMLHTTP'), e['open']('POST', t, a); var n = bmak['encode'](bmak['api_public_key'] + ':'); bmak['auth'] = ',"auth" : "' + n + '"', e['setRequestHeader'] && (e['setRequestHeader']('Content-type', 'application/json'), e['setRequestHeader']('Authorization', 'Basic ' + n), bmak['auth'] = ''); var o = '{"session_id" : "' + bmak['session_id'] + '","sensor_data" : "' + bmak['sensor_data'] + '"' + bmak['auth'] + '}'; e['send'](o) }, apicall_bm: function(t, a, e) { var n; void 0 !== window['XMLHttpRequest'] ? n = new XMLHttpRequest : void 0 !== window['XDomainRequest'] ? (n = new XDomainRequest, n['onload'] = function() { this['readyState'] = 4, this['onreadystatechange']instanceof Function && this['onreadystatechange']() } ) : n = new ActiveXObject('Microsoft.XMLHTTP'), n['open']('POST', t, a), void 0 !== n['withCredentials'] && (n['withCredentials'] = !0); var o = '{"sensor_data":"' + bmak['sensor_data'] + '"}'; n['onreadystatechange'] = function() { n['readyState'] > 3 && e && e(n) } , n['send'](o), bmak['dcs'] = 0 },
其中一个代码块。
结束语
如何需要源码文件的可以加我VX:zjdanli
另:akamai2.0 akamai1.75已经成功破解,接口文档如下:
akamai - Confluencehttps://sb-ai.atlassian.net/wiki/spaces/A/overview