某盾BLACKBOX逆向关键点
需要准备的东西:
1、原JS码
2、AST解混淆码
3、token(来源于JSON)
一、原JS码很好获取,每次页面刷新,混淆的代码都会变,这是正常,以下为部分代码
while (Qooo0) {switch (Qooo0) {case 110 + 14 - 55: {function O0o00O(OQooQ) {OQooQ = OQooQ[QQQQoo[227]](/\r\n/g, QQQQoo[1253]);var O0oQQ = QQQQoo[333];for (var Qooo0 = 0; oo0Ooo(Qooo0, OQooQ[QQQQoo[1283]]); Qooo0++) {var QQQoo = OQooQ[QQQQoo[1555]](Qooo0);if (oo0Ooo(QQQoo, 128)) {O0oQQ += window[QQQQoo[1208]][QQQQoo[1500]](QQQoo);} else if (OOo0oQ(QQQoo, 127) && oo0Ooo(QQQoo, 2048)) {O0oQQ += window[QQQQoo[1208]][QQQQoo[1500]](o000O0(o00oOo(QQQoo, 6), 192)),O0oQQ += window[QQQQoo[1208]][QQQQoo[1500]](o000O0(QoO0oO(QQQoo, 63), 128));} else {O0oQQ += window[QQQQoo[1208]][QQQQoo[1500]](o000O0(o00oOo(QQQoo, 12), 224)),O0oQQ += window[QQQQoo[1208]][QQQQoo[1500]](o000O0(QoO0oO(o00oOo(QQQoo, 6), 63), 128)),O0oQQ += window[QQQQoo[1208]][QQQQoo[1500]](o000O0(QoO0oO(QQQoo, 63), 128));}}return O0oQQ;}
二、AST解混淆,从原代码中抠出还原函数
编写AST,生成混淆还原代码
// 3. 定义 AST 转换函数
const decodeOb = {MemberExpression(path) {node = path.node;if (node.type === "MemberExpression" && node.object && node.object.name == 'QQQQoo') {console.log(path.toString())val = QQQQoo[node.property.value]path.replaceWith(types.stringLiteral(val))}}
};
还原后的代码
三 获取token,来源于json请求,每次请求都会变
https://fp.xxxdun.net/web3_8/profile.json?partner=tongdun&app_name=x_tongdun2_web&token_id=tongdun-1714874683694-ef1d0816878f8.............
_1714874684980_2969({"code": "000","result": {"tokenId": "0WPS1714874686ZQ4VisB07","xxid": "5qRJHQOJHPRmAkU8g+jCjtyDZS40YwiptTdsoY1Qsyic0g51ikOVw8ILu1uWcF4sc6FlRyff6WaR8hvd2x2zjQ==","xdid": "l0K6kEi+J5wxRC99GTN0HziEqsuQt8RXrljMAeqn9Eg=","bxid": "T9j2S2ENdX/TT8YOCMG+5qc1WVqrLa9Q6Be9sV+M6rAvMlxNZsixBuXvdFavlP7RdymHuwhRt6Y+XxNWskDHTQ==","c": {"factor": 0,"op": 0,"cm": 0,"vt": 1296000,"pi": 795749755}},"desc": ""
})
数据准备完毕,开始blackbox逆向,一路跟进,抠出代码
window = globalThis;var OQooQ = '0WPS1714874686ZQ4VisB07'var OQQOoQ = []function Oo0o00(OQooQ) {var O0oQQ = 100;while (O0oQQ) {switch (O0oQQ) {case 132 + 11 - 43: {if (QO00o0(OQooQ["length"], 23)) {return OQooQ;}var Qooo0 = "";O0oQQ = 101;break;}case 157 + 12 - 67: {var QQQoo = [];var O0oO0 = 0;O0oQQ = 103;break;}case 179 + 19 - 95: {var QOo0O = 76;while (QOo0O) {switch (QOo0O) {case 124 + 5 - 52: {QQQoo = [oOOQ0[parseInt(o00oO0(window["Math"]["random"](), 62))], oOOQ0[parseInt(o00oO0(window["Math"]["random"](), 62))], oOOQ0[parseInt(o00oO0(window["Math"]["random"](), 62))]];if (OOo0oQ(OQQOoQ["length"], 1000) || OQ0O00(OQQOoQ["indexOf"](Q0Q00o(Q0Q00o(Q0Q00o("", QQQoo[0]), QQQoo[1]), QQQoo[2])), -1)) {O0oO0 = 1000, OQQOoQ["push"](Q0Q00o(Q0Q00o(Q0Q00o("", QQQoo[0]), QQQoo[1]), QQQoo[2])), Qooo0 = Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o("", o00OQ[0]), o00OQ[1]), QQQoo[0]), o00OQ[2]), QQQoo[1]), o00OQ[3]), QQQoo[2]), o00OQ[4]);}QOo0O = 78;break;}case 114 + 9 - 45: {O0oO0++;QOo0O = 76;break;}case 132 + 17 - 73: {QOo0O = oo0Ooo(O0oO0, 1000) ? 77 : 0;break;}}}if (QO00o0(Qooo0["length"], 26)) {Qooo0 = Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o(Q0Q00o("", o00OQ[0]), o00OQ[1]), QQQoo[0]), o00OQ[2]), QQQoo[1]), o00OQ[3]), QQQoo[2]), o00OQ[4]);}return Qooo0;}case 150 + 5 - 54: {var o00OQ = ["ghijklmnopqrstuv"["charAt"]("0123456789abcdef"["indexOf"](OQooQ["substring"](0, 1))), OQooQ["substring"](1, 4), OQooQ["substring"](4, 14), OQooQ["substring"](14, 22), OQooQ["substring"](22, 23)];var oOOQ0 = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];O0oQQ = 102;break;}}}
}let blackbox = Oo0o00(OQooQ)
console.log(blackbox)
输出blackbox:gWPSN1714874686HZQ4VisB047
相关文章:
某盾BLACKBOX逆向关键点
需要准备的东西: 1、原JS码 2、AST解混淆码 3、token(来源于JSON) 一、原JS码很好获取,每次页面刷新,混淆的代码都会变,这是正常,以下为部分代码 while (Qooo0) {switch (Qooo0) {case 110 14 - 55: {function O0…...
【2024全国青少年信息素养大赛初赛时间以及模拟题】
2024全国青少年信息素养大赛时间已经出来了 目录 全国青少年信息素养大赛智能算法挑战赛初中模拟卷 全国青少年信息素养大赛智能算法挑战赛初中模拟卷 1、比赛时间和考试内容: 算法创意实践挑战赛初中组于5月19日举行,检录时间为10:30-11:00…...
2024年软件测试最全jmeter做接口压力测试_jmeter接口性能测试_jmeter压测接口(3),【大牛疯狂教学
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化! 由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、…...
LLM——用于微调预训练大型语言模型(LLM)的GPU内存优化与微调
前言 GPT-4、Bloom 和 LLaMA 等大型语言模型(LLM)通过扩展至数十亿参数,实现了卓越的性能。然而,这些模型因其庞大的内存需求,在部署进行推理或微调时面临挑战。这里将探讨关于内存的优化技术,旨在估计并优…...
Telnet协议:远程控制的基石
目录 1. 概述 2. 工作机制 3. 网络虚拟终端 4. 选项协商 5. 操作方式 6. 用户接口命令 7. 验证的过程 1. 概述 Telnet(Telecommunication Network)是一种用于在互联网上远程登录到计算机系统的标准协议。它早期被广泛用于远程终端连接࿰…...
网络工程师必备:静态路由实验指南
大家好,这里是G-LAB IT实验室。今天带大家学习一下华为静态路由实验配置 01、实验拓扑 02、实验需求 1.R1环回口11,1,1.1模拟PC1 2.R2建立2个环回口模拟Server server-1: 22,1,1.1 server-2: 44.1.1.1 3.要求使用静态路由实现全网互通 PC1去往server-1从R3走…...
springboot利用切面保存操作日志(支持Spring表达式语言(简称SpEL))
springboot利用切面保存操作日志(支持Spring表达式语言(简称SpEL)) 文章目录 springboot利用切面保存操作日志(支持Spring表达式语言(简称SpEL))前言一、Spring EL是什么?…...
遂宁专业知识付费系统报价,免费网课平台怎么开通?需要哪些条件?
其实,不少的大咖老师都不愿意在大平台上开课,因为学员的留存并不是自己的,所以,很多人也考虑自己开通网课平台,那免费的平台怎么开通?这就是我们今天要跟老师们分享的内容了。 需要哪些条件? 大家如果想要开通免费的…...
【linuxC语言】fcntl和ioctl函数
文章目录 前言一、功能介绍二、具体使用2.1 fcntl函数2.2 ioctl函数三、拓展:填写arg总结前言 在Linux系统编程中,经常会涉及到对文件描述符、套接字以及设备的控制操作。fcntl和ioctl函数就是用来进行这些控制操作的两个重要的系统调用。它们提供了对文件、设备和套接字进行…...
java——继承(一)
一:匿名对象 只能使用一次,每一次使用都会创建一个新的对象,默认值和数组的默认值的规则相同。所以适用于调用一次对象的情况: public class ClassAnonymous {String name;public void show(){System.out.println(name"真厉…...
【Linux】进程间通信方式之管道
🤖个人主页:晚风相伴-CSDN博客 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 🙏如果内容有误的话,还望指出&…...
【Linux】yum与vim
文章目录 软件包管理器:yumLinux安装和卸载软件包Linux中的编辑器:vimvim下的底行模式vim下的正常模式vim下的替换模式vim下的视图模式vim下的多线程 软件包管理器:yum yum其实就是一个软件,也可以叫商店 和你手机上的应用商店或app store一…...
苍穹外卖Day06笔记
疯玩了一个月,效率好低,今天开始捡起来苍穹外卖~ 1. 为什么不需要单独引入HttpClient的dependency? 因为我们在sky-common的pom.xml中已经引入了aliyun-sdk-oss的依赖,而这个依赖低层就引入了httpclinet的依赖,根据依…...
Maximo 使用 REST API 创建 Cron Task
接前面几篇文章,我没有了 automation script 以后,有时候需要让其定期自动执行,这时候就可以通过 Cron Task 来实现了。 通过Maximo REST API 来创建 Cron Task request: POST {{base_url}}/api/os/mxapicrontaskdef?apikey{{…...
【镜像仿真篇】磁盘镜像仿真常见错误
【镜像仿真篇】磁盘镜像仿真常见错误 记系统镜像仿真常见错误集—【蘇小沐】 1、实验环境 2023AFS39.E01(Windows11系统镜像)Arsenal Image Mounter,[v3.10.262]Vmware Workstation 17 Pro,[v17.5.1]Windows 11 专业工作站版…...
代码随想录算法训练营DAY45|C++动态规划Part7|70.爬楼梯(进阶版)、322. 零钱兑换、279.完全平方数
文章目录 70.爬楼梯(进阶版)⭐️322. 零钱兑换思路CPP代码总结 279.完全平方数思路CPP代码 70.爬楼梯(进阶版) 卡码网:57. 爬楼梯 文章讲解:70.爬楼梯(进阶版) 本题就是典型了完全背包排列问题,…...
Linux(openEuler、CentOS8)企业内网DHCP服务器搭建(固定Mac获取指定IP)
----本实验环境为openEuler系统<以server方式安装>(CentOS8基本一致,可参考本文)---- 目录 一、知识点二、实验(一)为服务器配置网卡和IP(二)为服务器安装DHCP服务软件(三&a…...
c#读取hex文件方法,相对来说比较清楚
Hex文件解读_c#读取hex文件-CSDN博客 https://wenku.csdn.net/answer/d67f30cf834c435ca37c3d1ef5e78a62?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171498156816800227423661%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&…...
【ytb数据采集器】按关键词批量爬取视频数据,界面软件更适合文科生!
一、背景介绍 1.1 爬取目标 用Python独立开发的爬虫工具,作用是:通过搜索关键词采集油管的搜索结果,包含14个关键字段:关键词,页码,视频标题,视频id,视频链接,发布时间,视频时长,频道名称,频道id,频道链接,播放数,点赞数,评论数…...
三条命令快速配置Hugging Face
大家好啊,我是董董灿。 本文给出一个配置Hugging Face的方法,让你在国内可快速从Hugging Face上下在模型和各种文件。 1. 什么是 Hugging Face Hugging Face 本身是一家科技公司,专注于自然语言处理(NLP)和机器学习…...
Python网络编程 03 实验:FTP详解
文章目录 一、小实验FTP程序需求二、项目文件架构三、服务端1、conf/settings.py2、conf/accounts.cgf3、conf/STATUS_CODE.py4、启动文件 bin/ftp_server.py5、core/main.py6、core/server.py 四、客户端1、conf/STATUS_CODE.py2、bin/ftp_client.py 五、在终端操作示例 一、小…...
个人银行账户管理程序(2)
在(1)的基础上进行改进 1:增加一个静态成员函数total,记录账户总金额和静态成员函数getTotal 2对不需要改变的对象进行const修饰 3多文件实现 account。h文件 #ifndef _ACCOUNT_ #define _ACCOUNT_ class SavingAccount {pri…...
2024.04.19校招 实习 内推 面经
绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、校招&转正实习 | 美团无人机业务部招聘(内推) 校招&转正实习 | 美团无人机业务部招聘(内推) 2、校招&实习 | 快手 这些岗位…...
Python并发编程 04 进程与线程基础
文章目录 一、操作系统简介二、进程三、线程四、线程的调用1、示例2、join方法3、setDaemon方法4、继承式调用(不推荐)5、其他方法 一、操作系统简介 ①操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用…...
模板引擎Freemarker
什么是模板引擎 根据前边的数据模型分析,课程预览就是把课程的相关信息进行整合,在课程预览界面进行展示,课程预览界面与课程发布的课程详情界面一致。 项目采用模板引擎技术实现课程预览界面。什么是模板引擎? 早期我们采用的…...
刷题训练之模拟
> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握模拟算法。 > 毒鸡汤:学习,学习,再学习 ! 学,然后知不足。 > 专栏选自:刷题训…...
视频监控平台:交通运输标准JTT808设备SDK接入源代码函数分享
目录 一、JT/T 808标准简介 (一)概述 (二)协议特点 1、通信方式 2、鉴权机制 3、消息分类 (三)协议主要内容 1、位置信息 2、报警信息 3、车辆控制 4、数据转发 二、代码和解释 (一…...
【C++】多态 — 多态的细节补充(下篇)
前言: 我们学习了多态的形式和如何使用多态,这一章我们将来讲一讲多态的原理… 目录 动态绑定与静态绑定: 动态绑定与静态绑定: 静态绑定又称为前期绑定(早绑定),在程序编译期间确定了程序的行为,也称为静态多态,比如…...
系统安全与应用【2】
1.开关机安全控制 1.1 GRUB限制 限制更改GRUB引导参数 通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB 菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。 实例&…...
EtherCAT总线速度轴控制功能块(COSESYS ST源代码)
测试环境为汇川PLC,型号 AM402-CPU1608TP、伺服驱动器为禾川X3E,具体通信配置可以参考下面文章链接: 1、使能和点动控制 汇川AM400PLC通过EtherCAT总线控制禾川X3E伺服使能和点动控制-CSDN博客文章浏览阅读31次。进行通信之前需要安装禾川X3E的XML文件,具体方法如下:1、汇…...
网站建设2000字论文/收录优美图片找不到了
开发过程中,中文乱码的问题,一直都是一个老生常谈的问题困扰这开发人员。 1. 通过后台解决 public String youMethodName(HttpServletRequest req,...){String yourParam req.getParameter("paramName");Matcher m Pattern.compile("…...
老榕树建站软件/百度指数搜索榜
以一个马戏团要在某小镇表演而作的市场活动为例: 如果你在街上作一个牌子,写上“xxx马戏团将于x月x日在本镇上演大戏”,这就是在做“广告”。 如果你在马戏团里找一头大象,把这个牌子放在大象的背上,在大街上来回走动&…...
国外网站空间放置成人内容/软文如何推广
神经网络计算中不同精度的浮点数对计算速度和准确度的影响 神经网络计算是目前人工智能领域中最常见的任务之一,而浮点数是神经网络中最为常用的数据类型。在神经网络中,通常使用float32作为默认的浮点数精度。但是,随着神经网络的规模增加,计算需求也越来越高,使用更低精…...
17网站一起做网店普宁池尾雅晨/微信管理软件
【第1篇】我的兴趣爱好从小到大,我的兴趣爱好有很多,但我是一个三分钟热度、且急性子的人,所以我对事物的的兴趣总是坚持不了多久。看见别人绣的十字绣,我也兴致勃勃地绣了一会儿,又因为枯燥而将那块布弃而不顾&#x…...
禁漫天入口18comic/黑帽seo技术有哪些
2019独角兽企业重金招聘Python工程师标准>>> RecyclerView属于新增控件,为了让RecyclerView在所有Android版本都能使用,所以Android团队将RecyclerView定义在了support库中,因此,想要使用RecyclerView控件,…...
在线购物网站的设计与实现/公司网站seo外包
《Delphi7完美经典》 Delphi 教程 系列书籍 (062) 《Delphi7完美经典》 网友(邦)整理 EMail: shuaihj163.com 下载地址: Part1 Part2 Part3 出版社 : 中国铁道出版社 作者 : 江义华国标编号:ISBN 7-113-…...