声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!q 2766958292
前言
别人给了我一份美团1.2前3个版本代码说不能跑了,让我搞一下,学习了一下他给我的代码,真的学习了了很多。这次在node补环境。
1.逆向前言
别人借我微信号强开发现和开发工具区别不太大,就是逆向过程有点紧张毕竟不是我的wx幸好用了半天搞出来。wx质量高也是一方面。还得多养微信小号才是王道。
2.补环境
先把架子弄起来。
const jsdom = require('jsdom');
const crypto = require('crypto');
const {JSDOM} = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`, {
url: ''
});
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']
window = dom.window;
document = window.document; //document对象:代表给定浏览器窗口中的HTML文档,
navigator = window.navigator; // 关于运行当前脚本的应用程序的相关信息
location = window.location; //对象包含当前页面的URL信息
history = window.history; // 历史会话
screen = window.screen; // 浏览器屏幕
setInterval = function () {
}
setTimeout = function () {
}
wx缓存的数据也保存一下
// 获取所有存储的key
const keys = wx.getStorageInfoSync().keys;
// 创建一个对象来存储所有key-value对
const allData = {};
// 遍历key,并获取对应的value
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
const value = wx.getStorageSync(key);
allData[key] = value;
}
// 打印所有数据
console.log(allData);
// 如果需要在页面上展示,可以遍历allData对象,将数据绑定到页面上
搞完这几部基本可以拿到结果了。
3.结果
4.总结
1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。
2.出门多个朋友看来这句话是真的挺重要的,1.2这份代码也算我白嫖在原来大佬基础上改版的,改动点也不算很多。