当前位置: 首页 > news >正文

js小技巧|如何提取经过Function函数混淆了的代码

关注它,不迷路。       

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

1.需求

星友发过来一个混淆代码,打开一看,长这样:

a409d695ec590f64161e14fdfb540be1.jpeg

再看文件末尾:

76bb669ba749ef42bac5dc5bc0d6564f.jpeg

一堆函数调用。不过不用管,根据Function 函数的特性,我们只需要提取它的实参即可。

2.提取

写个hook Function 函数 的脚本,提取它的实参,保存为文件即可:

const fs = require('fs');(function () {let _myFunction = Function;Function = function () {let src = arguments[arguments.length - 1];fd = fs.openSync("ob_ok.js", "w");fs.writeSync(fd, src);fs.closeSync(fd);}
})();

注意,需要放在混淆代码前面执行。因为混淆代码可能报错,因此放在前面可以防止没有被执行到。

加进去后运行该文件,控制太看到报错了:

8c5c2ce254b73361a825fc1996dd3f90.jpeg

不过不用担心,文件已经被提前保存下来了:

99e2a96a83e2dd02c6da34e4d58d5e42.jpeg

打开后,发现是一段 ob混淆:

97046a9940d6b5af961cf903b00f83e5.jpeg

nice! 完整代码请在星球里下载:

https://t.zsxq.com/14augNYMj

今天的文章就分享到这里,后续分享更多的技巧,敬请期待。

18f08411930117524be1177def3284ef.jpeg

欢迎加入知识星球,学习更多AST和爬虫技巧。

相关文章:

js小技巧|如何提取经过Function函数混淆了的代码

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除! 1.需求 星友发过来一个混淆代码,打开一看,长这…...

【GitLab】流水线入门

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…...

es 中文前缀短语匹配(搜索智能补全)

需求:es进行前缀匹配,用来进行智能补全 过程:es正常的prefix只能进行词语匹配,而中文的分词大部分按字分词,不按语义分词,所以无法搜索出正确的前缀匹配,而能进行短语匹配的match_phrase_prefix…...

机器学习之决策树及随机森林

决策树 概念 决策树(Decision Tree)是一种常见的机器学习算法,用于分类和回归任务。它是一种树状结构,其中每个内部节点表示一个特征或属性,每个分支代表一个决策规则,而每个叶节点表示一个输出标签或值。 构建决策树过程 构建决策树的过程通常涉及以下步骤: 数据准…...

用通俗的方式讲解Transformer:从Word2Vec、Seq2Seq逐步理解到GPT、BERT

直到今天早上,刷到CSDN一篇讲BERT的文章,号称一文读懂,我读下来之后,假定我是初学者,读不懂。 关于BERT的笔记,其实一两年前就想写了,迟迟没动笔的原因是国内外已经有很多不错的资料&#xff0…...

数据结构-01-数组

每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。 1-数组的概念和特性 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来…...

甘草书店记: 2023年10月11日 星期三 晴 「做有光的人,照亮他人,也引人同行」

发了两篇《甘草书店记》,书店计划公之于众,收获了不少人的赞扬和鼓励,来自生活中的友人,来自麦田的客户和朋友,来自图书界的同行前辈,也来自商界的同仁。其中,最特别留言来自甘草书店投资方的张…...

让 OpenAI GPT4 出 10 道题测试其他开源大语言模型

让 OpenAI GPT4 出 10 道题测试其他开源大语言模型 1. 中文题目及答案2. 日文题目及答案3. 英文题目及答案 1. 中文题目及答案 数学题:一个矩形的长是10厘米,宽是5厘米,求它的面积。 答案:面积 长 x 宽 10厘米 x 5厘米 50平方厘…...

动态库与静态库

1. 库 是代码的二进制的封装形式 在其他的源代码或库中,可以直接调用库的,但是又看不到它 没有公开源代码 库的这种实现方法有利于模块化 而且只要接口合理 不影响库的使用的 sum.c sum.h int sum(int a,int b) { return ab; } xxx.c 需要使用…...

pdf文件编辑,[增删改查]

pdf文件是投标文件中必不可少的格式,传统的方式先编辑word格式,最后生成pdf,但是有时候需要直接编辑pdf文件,编辑pdf的工具无疑 “adobe acrobat dc”是最好用的之一了 1.把图片文件添加到pdf指定位置,例如把一张图片添…...

如何与LEONI建立EDI连接?

莱尼LEONI是一家为汽车及其他行业提供能源数据管理产品、解决方案及服务的全球供应商。供应链范围从研发生产标准化电缆、特种电缆和数据电缆到高度复杂的布线系统和相关组件。本文将介绍如何与莱尼LEONI建立EDI连接。 什么是EDI? EDI全称Electronic Data Interch…...

算法中的时间复杂度,空间复杂度

一、前言 算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别 衡量不同算法之间的优劣主要是通过时…...

Python基础:推导式(Comprehensions)详解

1. 推导式概念 Python推导式(comprehensions)是一种简洁而强大的语法,用于从已存在的数据(列表、元组、集合、字典等)中创建新的数据结构。推导式包括: 列表推导式元组推导式字典推导式集合推导式 2. 列表…...

安防监控视频融合平台EasyCVR定制化页面开发

安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索…...

Roll-A-Ball 游戏

Roll-A-Ball 游戏 1)学习资料 b站视频教程:https://www.bilibili.com/video/BV18W411671S/文档: * Roll-A-Ball 教程(一), * Roll-A-Ball 教程(二)线上体验roll-a-ball成品 * http://www-personal.umich.e…...

医疗影像数据集—CT、X光、骨折、阿尔茨海默病MRI、肺部、肿瘤疾病等图像数据集

最近收集了一大波关于CT、X光等医疗方面的数据集包含骨折、阿尔茨海默病MRI、肺部疾病等类型的医疗影像数据,废话不多说,给大家逐一介绍!! 1、彩色预处理阿尔茨海默病MRI(磁共振成像)图像数据集 彩色预处理阿尔茨海默病MRI(磁共…...

Linux僵死进程及文件操作

1.僵死进程(僵尸进程): 1.僵死进程产生的原因或者条件: 什么是僵死进程? 当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程. 简而言之,就是子进程先结束,并且父进程没有获取它的退出码; 那么僵死进程产生的原因或者条件就是:子进…...

用Python写一个浏览器集群框架

更多Python学习内容:ipengtao.com 在分布式爬虫和大规模数据采集的场景中,使用浏览器集群是一种有效的方式,可以提高数据采集的速度和效率。本文将介绍如何用Python编写一个简单但强大的浏览器集群框架,以应对需要使用多个浏览器实…...

【Github】git安装

我们经常需要对github上的项目进行复现或者使用,git指令可以方便我们更好地实现他们。 Part 0. 准备 配置代理IP 面对问题:关于登陆github网站网速慢、下载git项目网速慢。 解决:无论是windows还是linux系统,都可以找到/etc/ho…...

sql语法大全

1,创建数据库 create database 数据库名字; 2,查看所有的数据库名称 show databases; MySQL服务器已有4个数据库,这些数据库都是MySQL安装时自动创建的。 information_schema 和 performance_schema 数据库分别是 MySQL 服务器的数据字典(…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

JavaSec-RCE

简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性&#xff0c…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...