黑客之批处理编写

news2024/11/15 15:37:24

文章目录

  • 一、批处理作用
  • 二、如何创建批处理
  • 三、批处理语法


一、批处理作用

自上而下成批的处理每一条命令,直到执行最后一条。这里的命令指的是DOS命令,在之前的【黑客常用DOS命令】博客中,我介绍了大量的常用DOS命令。不过我们之前输入命令,只能一次输入一条命令,执行一条。今天要介绍的批处理威力就非常大,一次成批处理多条命令。

批处理文件,我们也通常称为脚本,也可以理解为程序。但是和程序又不一样,程序里面执行的是代码,而批处理里面执行的是命令。另外程序中的代码如果出了bug,一般就会终止执行。但是批处理不会,即使其中某一行命令或者几行命令有错误,它也只会在屏幕上报个错,继续往下执行,直到执行完所有的命令才结束

后面给大家介绍到Linux的时候,也会介绍到脚本。只不过在Windows系统中叫批处理文件,而在Linux中叫shell脚本。为什么叫shell脚本呢?因为我们在Windows系统中cmd打开的窗口叫DOS窗口,输入的命令叫DOS命令。在Linux中打开的窗口叫shell界面,输入的命令叫shell命令。

注意:这里给大家提个醒,在之前博客中有介绍一个命令叫 assoc,这是修改文件关联性的,这个不要轻易使用在批处理中。

举个例子,如果我们在批处理文件中写入多条修改文件关联性的命令,把常见的扩展名都改了,结果执行完批处理之后,系统中的文件是都失效了,运行不了。但是会发现,再执行批处理,也执行不了了。当你双击执行批处理那一瞬间,其实批处理替你打开一个cmd窗口,在里面执行每一条命令,执行完之后再偷偷关掉。而那个DOS窗口是一个程序,名字是cmd.exe,但是你把所有的扩展名都改了,包括exe后缀名,这样DOS窗口也打不开了,这就导致你想再改回来文件关联性都改不了。电脑相当于彻底完了,除非重装系统,所以不要在批处理中轻易使用 assoc 命令。

二、如何创建批处理

批处理也是一种文件,既然是文件就必须有扩展名,它的扩展名是 .bat

创建方法:新建一个记事本文件,然后将扩展名改为 .bat

三、批处理语法

语法介绍我就直接结合实战来讲,实战的话用的是 Windows server 2003 的虚拟机,这里建议大家:如果是初学批处理脚本,最好使用虚拟机,一旦玩坏了还原快照就行,真机成本太大。

打开虚拟机之后,新建一个文本文档,把后缀名改为 .bat,批处理名字随便起,如下图

在这里插入图片描述

注意:批处理文件图标在不同系统中是不一样的,比如 Win10 里面看到的和这个不一样

编辑的话,右键点击文件,在弹出下拉列表中选择【编辑

在这里插入图片描述

接下来开始写,初学者记得一行写一条命令就行,用之前博主介绍的一些常用命令我们先试试。如下命令是在屏幕上输出两行等于号,一行文字,写好之后保存一下。echo 命令的意思就是在屏幕上输出内容,下面演示的常用DOS命令就不再逐一解释,不懂的可以看博主之前的博客【黑客常用DOS命令】

echo =============================

然后关掉编辑界面,双击运行这个批处理文件,什么都看不到,其实是运行了,只是一闪而过。这是因为批处理程序运行时,打开DOS窗口,从上往下依次执行命令,运行完所有命令会自己关掉DOS窗口。执行过程速度很快,所以我们看不到效果,那怎么办呢?接下来用到批处理的第一个语法了。

pause  暂停执行(不管下面有没有命令,批处理执行到这里先暂停)

把这个命令写入刚才的批处理文件中并保存

在这里插入图片描述

再双击运行文件,如下图:

在这里插入图片描述

可以看到执行完之后页面暂停了,如果要解除暂停,按下键盘任意键。只是看着这个画面,是不是感觉很别扭?

在这里插入图片描述

别扭在我们其实只想看到批处理中输出的三行文字,并不想看到这么多其他东西,专业术语就是批处理的执行过程我们不想看到,只想看到结果。也就是隐藏掉执行过程,用到批处理的语法

@echo off  关闭回显(也就是屏蔽执行过程,不作显示。所以我们写任何批处理,记得第一行就要写上这句话,这样整个批处理文件的所有命令执行过程都不会显示出来,只显示结果)

把这个命令写入到文件中并保存

在这里插入图片描述

双击运行批处理文件,如下图

在这里插入图片描述

这下效果好看多了,只是这个字体和背景颜色不是很好看,不符合黑客的风格,用到之前介绍的DOS命令来修改一下字体颜色和背景,继续编辑文件并保存

在这里插入图片描述

一般我们把修改颜色的命令放在批处理第二行,第一行一定是关闭回显的命令,双击运行批处理,如下图

在这里插入图片描述

可以看到效果炫酷多了,黑客标配颜色,细细再看界面。发现还是有点low,窗口上面显示 “C:\WINDOWS\system32\cmd.exe”,很明显是程序路径。那这里能不能改成其他名字呢?当然可以,继续使用批处理命令

title 程序窗口名称  该命令是给这个批处理运行之后的窗口起个名字,名称会显示在运行之后的窗口左上方

进入批处理文件,编辑窗口名称并保存。名称这行命令不一定放在颜色命令下面,位置可以随意,但是必须放在回显命令下面

在这里插入图片描述

双击运行批处理文件,如下图可以看到窗口名字已经改了

在这里插入图片描述

接下来做一个简单的电脑垃圾清理小程序,先看看全部命令

在这里插入图片描述

从上往下看,批处理中用到了 “echo.” 这个命令含义如下

echo.  表示空一行(在批处理中如果想要两行内容之间显示时候空一行,则使用 echo.,而不是直接空着这行不写,如果空着不写,批处理只会认为这里没有命令可执行,继续往下走。如果要空多行,则每行都写 echo.)

批处理文件中 “cd C:\Users。。。” 是跳转到该目录,这个目录存放有电脑上的无用缓存文件,需要说明的是这个目录,每个人电脑上位置可能是不一样的,如果要找到这个目录,可以同时按下 win + R 键,在弹出的运行框中输入命令 %temp%,然后回车就可以看到这些缓存垃圾文件所在目录,复制之后替换掉我这里的目录。

紧接着下面这行 “rd . /s/q >nul 2>nul” 命令中,rd . /s/q 这是前面博客中讲过的,专门清空指定目录下所有文件及文件夹>nul 2>nul 的意思是前面这个清空命令执行后,如果正常执行完毕,在屏幕不输出任何内容,如果执行过程当中出现报错等其他弹窗提示,也不在屏幕上输出任何内容。

命令 >xxx 2>xxx  该语法含义是前面的命令如果正确执行完毕,则输出第一个 > 后面的内容;如果命令执行错误,则输出第二个 2> 后面的内容

该批处理文件运行后效果图如下,等运行完可以回到缓存文件所在目录下就可以发现,垃圾已经清理了(注意:里面有个别文件是需要管理员权限才能删的,若想在真实电脑中使用该批处理,最好右键点击,然后选择以管理员身份运行

在这里插入图片描述

继续再写个整蛊的批处理文件,作用是瞬间让对方硬盘爆满。还是用到之前介绍过的命令,文件名字起的吸引人一点 银行卡密码.bat。全部内容如下:

在这里插入图片描述

命令中下面的几行都是用来创建一个个指定内存大小的空文件,后面的内存数字单位是字节,折算下来是4G。这个批处理就是创建7个内存大小都为4G的空文件,目录是在D盘。路径、文件大小、个数自己也可以更改,运行完之后打开D盘看看

在这里插入图片描述

这些文件名字和后缀名都可以自己任意创建,更厉害点就是再把这些文件隐藏掉,这样对方只能看到电脑爆满,但是看不到是哪个文件,对于小白来说就只能格式化磁盘了。注意这些批处理命令不要用来恶意攻击他人电脑,自己可以在虚拟机里面操作。如果要瞬间清空这些大文件,可以配合上面的电脑垃圾清理批处理来使用,将其略作修改即可。

上面的批处理更多都是使用之前博客中介绍的DOS命令,接下来继续讲解批处理语法

:  冒号表示划分命令区间,相当于把多行命令划为一个整体的命令块,每个命令块都相当于一个单独的功能

比如下图所示,里面的1,2,3表示命令块的名字,这个名字自己随便取。批处理执行的时候是不会执行这些命令的名字的,只是会识别到,比如遇到 :2,批处理就知道遇见名字为 2 这个命令块了。

在这里插入图片描述

有的小伙伴可能会纳闷:分成区块作用是啥呢?其实很简单,本来批处理执行是从上往下的,但是分成区块的话就可以搭配下面介绍的 goto 命令来跳转执行,而不是非要从上往下执行。比如看下面的批处理

在这里插入图片描述

文件中第一行是表明下面的代码都是一个区块,区块名叫 d;第二行命令的意思是打开控制台,start 后面跟上文件路径就是打开某文件,跟上网址就是打开某网页,什么都没有就是打开黑色控制台;第三行命令的意思是跳转到区块d;执行完又跳回开始执行,永不停歇。这下大家应该明白了,这个文件的作用就是一直不停的打开控制台,直至电脑死机。我们双击运行看看效果

在这里插入图片描述

已经打开了400多个窗口,如果对一些电脑配置低的,一会就会死机,只能按住开机按钮长按关机,再重启,因为鼠标键盘都没用了。所以不建议在真机上运行,在虚拟机上运行,玩坏了直接还原快照,又恢复如初。刚才这个还不是最狠的,我们继续在这个基础上改进,让它每次一开机就执行。

鼠标点击左下角【开始】,点击【所有程序】,点击【启动】,就可以看到启动菜单,所有电脑系统里面包括win7、win10都有这个启动菜单

在这里插入图片描述

鼠标右键点击【启动】,在弹出的列表中点击【打开】,可以看到启动菜单的路径

在这里插入图片描述

路径如下图

在这里插入图片描述

把这个路径复制下来,回到批处理文件中,运用之前介绍的文件复制命令,将我们这个批处理文件复制到启动菜单路径下

在这里插入图片描述

路径加上双引号,是因为路径中有空格,避免报错。这样运行就把疯狂弹窗的批处理文件复制到了启动菜单里面,而且继续疯狂弹出窗口,我们不得已就要关机重启,但是重启之后又继续弹出。

只是这里有个问题:这个路径适用于所有用户电脑吗?不可能,因为很多用户名是不一样的,而且不一定是用管理员打开的电脑,再则Windows系统版本也有多种。那我们就需要继续改进这个文件,使之可以通用所有Windows电脑用户。

其实如果看过博主之前文章的应该就知道,这个路径前面的一部分就是用户的家目录所在位置,也就是说我们可以把这个家目录换成一个代表用户家目录的变量名,如下命令所示

在这里插入图片描述

里面的 userprofile 代表当前用户的家目录路径,这个变量不是博主定义的哦,是微软的系统一开机就已经定义好了。因为这个是变量名,所以用两个 % 括起来。这样任何 Windows 2003 或者 Windows XP 电脑用户拿到这个文件只要运行,都会产生效果,而且威力巨大。

注意:如果是Windows7或者Windows10系统的电脑,启动菜单路径是 "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

这两个批处理语法也再给大家总结下来

userprofile  这个变量名在微软系统中代表用户的家目录

%变量名%  如果要引用设置好的变量的话,变量名必须用两个 % 包裹起来

注意:再次提醒,博客中教的所有批处理及黑客命令,不要用来恶意损害他人电脑系统,也不要盲目在真机里面使用,以免损坏自己电脑,可以在虚拟机使用。学习的初衷是为了防御未知的黑客攻击,所以以后大家拿到陌生的文件都不要轻易运行,可以先编辑打开里面的内容看看。

再来继续新建批处理文件,名字随便取,这里叫 game.bat。这个批处理实现的功能是可以让用户定时开关机,全部命令如下

在这里插入图片描述
先给大家说一下里面涉及的新的批处理语法

set 变量名=变量值  设置变量,如果要引用该变量的话用两个 % 包裹

set /p 变量名=提示性话语  还是设置变量的意思,只是这个变量值不是固定死的,而是需要接收用户从外界的输入,把用户的输入数据作为变量的值

if 条件满足 goto 某命令块  条件判断的意思,if 一般搭配 goto 使用,意为如果条件满足就跳转到指定的命令块

然后来讲一下该批处理的逻辑:命令从上往下执行,先在屏幕上输出菜单界面给用户看,每个数字代表一个功能,然后会提示用户输入自己的选择,根据用户输入的命令做条件判断,如果是哪个数字,则跳转到对应的命令块执行对应命令,执行完之后再跳转到起始菜单窗口,用户继续可以做选择使用,如果用户输入的不是这三个数字中的一个,则屏幕会提示只能输入其中三个数字,继而又跳转到菜单窗口,用户如果输入数字3,则彻底退出程序。

我们来看看运行之后效果图:

在这里插入图片描述

普通用户看到上述界面,看着都是一些常规的操作电脑的指令,但是有可能每个菜单指令后面都是一个恶意脚本。比如我们把上述批处理作略微修改,将命令块2里面的取消定时的命令换成一段命令,如果用户输入了数字2并回车,则执行这段命令,但并不是取消定时,而是在开始的启动菜单里面生成一个批处理,该批处理的功能就是上面所讲的疯狂弹窗,这样一旦用户下次开机就开不了了。修改后批处理命令如下

在这里插入图片描述

命令中所用的 echo>> 都是之前博客中介绍过的DOS命令,意思就是将一句话输出到指定的文件,如果没有则创建该文件,如果有该文件,则内容输入方式是追加输入,也就是往下一行输入。我们执行该批处理,然后输入数字2回车看看

在这里插入图片描述

再点击左下角【开始】,点击【所有程序】,点击【启动】,就可以看到启动菜单里面多个 game.bat 批处理文件。如果用户一旦下次开机,就无法开机。

在这里插入图片描述

至此,我们知道了两种把批处理放入启动菜单的方法:1.复制批处理到启动菜单目录下;2.将内容直接写入到启动菜单目录下的批处理文件;

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

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

相关文章

Lesson3-5:OpenCV图像处理---模版匹配和霍夫变换

学习目标 掌握模板匹配的原理,能完成模板匹配的应用理解霍夫线变换的原理,了解霍夫圆检测知道使用OpenCV如何进行线和圆的检测 1 模板匹配 1.1 原理 所谓的模板匹配,就是在给定的图片中查找和模板最相似的区域,该算法的输入包括…

C++之map,set,multimap,multiset的使用

map,set,multimap,multiset的使用 关联式容器键值对树形结构的关联式容器setset介绍set的使用set定义方式set各种操作函数 multiset mapmap的介绍map的使用insert函数find函数erase函数[ ]运算符重载map的迭代器遍历 multimap 关联式容器 在…

ARM编程模型-状态模式

ARM的两种工作状态 大部分的ARM处理器都实现了两种指令集,32位ARM指令集和16位Thumb指令集,看生成的机器码是32位的还是16位的 ARM v6引入了新的指令集Thumb-2,能够提供32位和16位的混合指令,在增强了灵活性的同时保持了代码的高密度。 ARM的…

Linux基础学习2

Linux基础学习2 popen函数 popen函数 https://blog.csdn.net/yzy1103203312/article/details/78483566 https://blog.csdn.net/xy1413_/article/details/127135608 典型用法: FILE * fp popen("ifconfig eth0", "r"); if (!fp) { fprintf…

再谈IOS开发环境配置(2023-09-01 新)

关于IOS的开发,需要配置证书、密钥、管理标识符、功能配置等等,很是繁杂,以前也配置过,这次因为重新购买了新的M1笔记本,准备重新配置下,顺便记录,以便查询。 如果要开发IOS,首先需要…

2023高教社杯数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…

JVM学习(一)--程序计数器

作用:记住下一个jvm指令的执行地址 每一行java源代码,会被编译为多行jvm指令,上文所说的执行地址就是这里的0,3,4等 ,由于执行访问特别频繁,程序计数器的底层是有寄存器来实现的 特点: 线程私有&#xff…

爬虫进阶-反爬破解5(selenium的优势和点击操作+chrome的远程调试能力+通过Chrome隔离实现一台电脑登陆多个账号)

目录 一、selenium的优势和点击操作 二、chrome的远程调试能力 三、通过Chrome隔离实现一台电脑登陆多个账号 一、selenium的优势和点击操作 1.环境搭建 工具:Chrome浏览器chromedriverselenium win用户:chromedriver.exe放在python.exe旁边 MacO…

这段代码这么写有什么问题

这段代码这么写有什么问题? List<String> baseRelList1 new ArrayList<>();epmPersonList.forEach(Obj ->{interviewBacklogMessageList.forEach(t ->{if (!Obj.equals(t.getPsnNum())){baseRelList1.add(Obj);}});});这段代码存在一个问题&#xff0c;即…

transformer源码

1.传统RNN网络 每一层都需要上一层执行完才能执行 1.1 自注意力 在一句话中找到it_指代的是什么&#xff0c;它的上下文语境是什么&#xff1f; self-attetion计算 1.2 multi-header机制 1.3 堆叠多层self-attention&#xff0c;相当于再一次卷积 1.4 位置信息编码 1.5 残…

unity 场景烘焙问题之模型UV有重叠

问题现象&#xff1a;模型烘焙出来后&#xff0c;呈现黑色或布满脏斑&#xff0c;有可能是没有展UV&#xff0c;也有可能是UV重叠了 并且也会出现警告提示&#xff0c;如下图&#xff1a; 如果我们勾选了如下图,还在提示我们勾选&#xff0c;那可能就是 UV重叠了 解决方案 UV…

C++:输出系统时间(及报错处理)

#include <iostream> #include <ctime>using namespace std;int main() {// 基于当前系统的当前日期/时间time_t now time(0);cout << "1970 到目前经过秒数:" << now << endl;tm* ltm localtime(&now);// 输出 tm 结构的各个组…

【微服务】一张图搞懂微服务架构设计

一张图搞懂微服务架构设计 1.前言2.流量入口 Nginx3.网关4.业务组件5.服务注册中心6.缓存和分布式锁7.数据持久层8.结构型数据存储9.消息中间件10.日志收集11.任务调度中心12.分布式对象存储 1.前言 当前&#xff0c;微服务架构在很多公司都已经落地实施了&#xff0c;下面用一…

气象科普丨气象站的分类与应用

气象站是一种用于收集、分析和处理气象数据的设备。根据不同的应用场景和监测需求&#xff0c;气象站可以分为以下几类&#xff1a; 一、农业气象站 农业气象站是专门为农业生产服务的气象站&#xff0c;主要监测土壤温度、土壤湿度等参数&#xff0c;为农业生产提供科学依据…

高效率、高质量的DMG映像制作:DMG Canvas for mac,助你轻松实现

如果你是一位开发者或企业用户&#xff0c;你一定知道DMG磁盘映像文件在分发应用程序或文件时的重要性。DMG磁盘映像文件可以让用户轻松地创建磁盘映像&#xff0c;并将其挂载到Mac电脑上&#xff0c;从而方便地安装或使用应用程序或文件。 然而&#xff0c;传统的DMG磁盘映像…

数学之美 — 1

为什么你会想和他人共享那些美丽的事物呢&#xff1f;因为这会让他&#xff08;她&#xff09;感到愉悦&#xff0c;也能让你在分享的过程中重新欣赏一次事物的美。 ——David Blackwell 1、感官之美&#xff0c;对于那些有规律的事物&#xff0c;你可以利用自己的视觉、触觉、…

CodeBlocks20.03配置wxWidgets

背景 - 现在是2023年 1. 很多年前&#xff0c;下载使用CodeBlocks就发现里面有自带的wxWidgets Project的项目&#xff0c;然而一路Next下去出来的程序根本就不能运行&#xff0c;心有不甘&#xff1b; 2. 前几年&#xff0c;用python做小工具的时候&#xff0c;界面用的wxPy…

AutoSAR CP 飞阅TIME

目录 什么是autosar autosar 做了什么 Foundation、CP、AP CLASSIC PLATFORM &#xff08;CP&#xff09; ADAPTIVE PLATFORM 基于autosar 开发 SWC Port Runnables RTE BSW MCAL CDD I/O Hardware Abstraction Communication Hardware Abstraction Memory Har…

Navicat介绍及下载安装教程

Navicat是一个广泛使用的数据库管理工具&#xff0c;可用于管理多种数据库系统&#xff0c;如MySQL、MariaDB、Oracle等。它提供了丰富的功能&#xff0c;使得管理数据库变得更加容易和高效。安装Navicat十分简单&#xff0c;只需下载安装包并按照向导进行操作即可。在安装完成…

SQL 语句学习总结:

1. 四范式&&范式好处&#xff1a; 数据库范式是数据表设计的规范&#xff0c;在范式规范下&#xff0c;数据库里每个表存储的重复数据降到最少&#xff08;这有助于数据的一致性维护&#xff09;&#xff0c;同时在数据库范式下&#xff0c;表和表之间不再有很强的数据…