JS逆向 - 盼之(ssxmod_itna、ssxmod_itna2)纯算 + 补环境
文章目录
- 概要
- 整体架构流程
- 技术名词解释
- 技术细节
- 小结
概要
提示:仅供学习,不得用做商业交易,如有侵权请及时联系
逆向:JS逆向 - 盼之(ssxmod_itna、ssxmod_itna2)纯算 + 补环境
URL:aHR0cHM6Ly93d3cucHpkcy5jb20vZ29vZHNMaXN0LzgvNg==
整体架构流程
提示:过debugger ---- 魔改浏览器
- 现在请求必需得带上这俩个cookie中的的一个,才能通过
- 以前是headers里面的PZTimestamp、Random、Sign,载荷里面的decode__1174,现在得再加ssxmod_itna、ssxmod_itna2的cookie值,不然就返回HTML需要验证滑块
魔改浏览器网上自己找下,或者私我!!!
技术名词解释
提示:纯算-----分析加密位置
1、 直接HOOK—》 cookie
(function () {'use strict';var cookieTemp = '';Object.defineProperty(document, 'cookie', {set: function (val) {debugger;console.log('Hook捕获到cookie设置->', val);cookieTemp = val;return val;},get: function () {return cookieTemp;},});
})();
2、往回跟栈,找到加密位置:
3、发现是俩个自执行生成的,剩下的就是自己扣纯算了!!!
技术细节
提示:补环境
1、直接将jquery.min.js文件不进行格式化全扣
2、挂代理
function setProxyArr(proxyObjArr) {for (let i = 0; i < proxyObjArr.length; i++) {const handler = `{get: function(target, property, receiver) {console.log("方法:", "get ", "对象:", "${proxyObjArr[i]}", " 属性:", property, " 属性类型:", typeof property, ", 属性值:", target[property], ", 属性值类型:", typeof target[property]);return target[property];},set: function(target, property, value, receiver) {console.log("方法:", "set ", "对象:", "${proxyObjArr[i]}", " 属性:", property, " 属性类型:", typeof property, ", 属性值:", value, ", 属性值类型:", typeof target[property]);return Reflect.set(...arguments);}}`;eval(`try {${proxyObjArr[i]};${proxyObjArr[i]} = new Proxy(${proxyObjArr[i]}, ${handler});} catch (e) {${proxyObjArr[i]} = {};${proxyObjArr[i]} = new Proxy(${proxyObjArr[i]}, ${handler});}`);}
}
3、检测点,会用到ali231的一些环境检测点,比如:window.hasOwnProperty、Object.hasOwnProperty、toString、dom创建标签:script、canvas、cc等
4、py调用结果:
-
不带cookies
-
带上cookies
小结
提示:学习交流主页,星球持续更新中:(+星球主页+v)