本帖最后由 HOPE2021 于 2021-8-9 10:16 编辑
大家好,由于我是新人,发帖有些拘束,请谅解。
今天,我发现了批处理加密的一种新方法。[Tips:这种命令只有x64平台的一些操作系统可以使用,不过加密后的批处理x86平台也可以使用,测试环境:Windows 7 x64 ; Windows 10 x64;Windows XP Sp3 x86]
在了解这种加密方法之前,首先需要了解什么是Certutil,[传送门:用 certutil 实现 Hex2Bin 和 Base64 加解密 - BAT教程&资料 - 批处理之家 批处理_BAT脚本_PowerShell_VBS_CMD_DOS_Perl_Python - Powered by Discuz! (bathome.net)]
Certutil实质上是用来管理证书的,但由于可以将文本加/解密成Base64/十六进制机器码,所以有些“歪门邪道”的用法。
说了这么久,下面开始介绍这种加密的方法:
首先,我们准备一个 .bat 或 .cmd 文件,这里我采用Hello,World.bat做讲解,源码如下:- Rem 第一条千万不要是有实际意义的语句,不然批处理会损坏!
- @echo off
- Rem 关闭回显
- chcp 936 > nul
- Rem 调整语言设置成中文简体,GBK字符编码
- endlocal
- Rem 关闭当前变量延迟的改动
- setlocal disabledelayedexpansion
- Rem 禁用变量延迟
- Mode Con:Cols=80 Lines=25
- Rem 调用 Mode.com 调整控制台窗体大小至长80个半角符号,宽25个全角符号
- color 0f
- Rem 调用 Color.exe 调整控制台窗体颜色,让背景色为黑色,前景色为白色
- cls
- Rem 清屏
- title Hello,World!
- Rem 将控制台窗体的标题改为" Hello,World! "
- echo.&echo.&echo. Hello,World!
- Rem 输出两个空行,以及" Hello,World! "
- echo.&echo. 请按回车键退出...
- Rem 输出一个空行,以及"请按回车键退出..."
- pause > nul
- Rem 按任意键(中文输入法下某些键需要再按一次回车,此处为了让不懂批处理的用户能够每次操作成功,所以帮助信息是"请按回车键退出...")
- exit
- Rem 退出
复制代码 然后,Win+r,打开命令提示符,进入到批处理的目录下,键入如下命令:- Certutil -encodehex -f Hello,World.bat Hello,World.bat
复制代码 效果如下:- G:\BatHome>Certutil -encodehex -f Hello,World.bat Hello,World.bat
- 输入长度 = 792
- 输出长度 = 3692
- CertUtil: -encodehex 命令成功完成。
复制代码 这个时候,我们的批处理已经解析成了十六进制机器码,前两行如下:- 0000 52 65 6d 20 b5 da d2 bb cc f5 c7 a7 cd f2 b2 bb Rem ............
- 0010 d2 aa ca c7 d3 d0 ca b5 bc ca d2 e2 d2 e5 b5 c4 ................
复制代码 然后,我们将前两个字节改为 ff fe (千万不要改成 fe ff 否则用type 就可以解析一切) ,也就是:- 0000 ff fe 6d 20 b5 da d2 bb cc f5 c7 a7 cd f2 b2 bb Rem ............
- 0010 d2 aa ca c7 d3 d0 ca b5 bc ca d2 e2 d2 e5 b5 c4 ................
复制代码 接着,我们再还原批处理,键入以下命令:- Certutil -decodehex -f Hello,World.bat Hello,World.bat
复制代码 效果如下:- G:\BatHome>Certutil -decodehex -f Hello,World.bat Hello,World.bat
- 输入长度 = 3692
- 输出长度 = 792
- CertUtil: -decodehex 命令成功完成。
复制代码 接着我们看加密过的 Hello,World.bat (乱码太长了,这里只取两行):- �믒Ꟈ뮲쟊탓뗊쪼쒵눬좻얻듺삦믭쯡믰ꎵඡ䀊捥潨漠晦敒�햱�퓏档灣㤠㘳㸠渠汵敒ﯕ퓑쏖즳탖쓎겣䉇흋럖뇻신෫攊摮潬慣൬刊
复制代码 怎样,批处理加密成功!我们可以尝试运行批处理代码,看看批处理有没有损坏:复制代码 没有任何损坏!
但有没有解密的方法呢?有!
用 MsWord 365 打开bat 文件,编码选Windows默认,即可解读。
划重点:
1. 加密的原理,前两个字节储存着文件的编码信息,改变前两个字节即可改变文件的编码。
2. 加密的优劣:
优:
这种方法相较于将一大堆%%a加入文件的方法相比,用type指令无法解析,
劣:办公常备软件MsWord即可解析。
3. 请不要用这种加密方法做不法行当。
By HOPE2021
谢谢。 |