对Bat文件进行加密

1、通过改变进制的方法
下载一个16进制编辑软件,比如MiniHex。
将要加密的bat文件开头加入两个空行,并拖入到MiniHex软件中:
在这里插入图片描述
修改前两个字节的数据,修改为FF FE(或者修改为FE FF也可以)如图:
在这里插入图片描述
保存一下,Ctrol+s,此时就可以了。
会在bat文件所在目录生成.bak文件,这就是源文件(加密前的文件),此时打开原来的文件如下:
在这里插入图片描述

2、通过在bat文件的开头增加标识符。具体加密和解密的代码如下:
将以下代码保存为bat文件,双击运行即可,根据提示,输入所要加密文件的绝对路径回车即可。
加密完成后,会在这个加密bat文件目录生成encrypt.bat文件,这个文件就是加密后的文件。

@echo off 
cls 
color 2a 
:start 
cls 
echo ******************************************************************************* 
echo * * 
echo * BAT 加 密 * 
echo * * 
echo ******************************************************************************* 
echo. 
echo. 
echo. 
echo ★ 可以一次性成功加密任何批处理文件, 更省事. 
echo. 
echo ★ 可以由您输入任意需要加密的批处理, 加密灵活性更大. 
echo. 
echo ★ 能够自动判断错误输入, 更加人性化. 
echo. 
echo 说明: 在下面输入需要加密的批处理文件, 直接输入批处理文件名为加密当前目录下的BAT,也可以带路径指定任意BAT. 当前目录下生成的encrypt.bat文件即为加密的批处理. 
echo. 
echo. 
echo. 
set /p file=请输入需要加密的批处理后按回车键(q=退出): 
if "%file%"=="q" goto quit 
echo %file%|findstr /i "\.bat$">nul && goto go 
echo %file%|findstr /i "\.cmd$">nul && goto go 
cls 
echo ============== 
echo 请正确输入! 
echo ============== 
echo. 
echo. 
echo 按任意键重新输入...... 
pause>nul 
goto start 
:go 
if not exist "%file%" goto newly 
if exist encrypt.bat copy encrypt.bat encryptbak.bat 
echo %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a %%%%a >"%tmp%\encrypt.tmp" 
echo cls>>"%tmp%\encrypt.tmp" 
type "%file%">>"%tmp%\encrypt.tmp" 
setlocal enabledelayedexpansion 
for %%i in ("%tmp%\encrypt.tmp") do ( 
echo %%~zi >nul 2>nul 
set size=%%~zi 
set num=!size:~-1! 
set /a mod=!num!%%2 
if !mod! equ 0 (goto even) else (goto odd) 
) 
:even 
copy "%tmp%\encrypt.tmp" encrypt.bat 
del "%tmp%\encrypt.tmp" 
cls 
echo ========================== 
echo 完成批处理加密^_^! 
echo ========================== 
echo. 
echo. 
echo 按任意键退出...... 
pause>nul 
goto quit 
:odd 
echo. >>"%tmp%\encrypt.tmp" 
copy "%tmp%\encrypt.tmp" encrypt.bat 
del "%tmp%\encrypt.tmp" 
cls 
echo ========================== 
echo 恭喜你, 批处理加密成功^^! 
echo ========================== 
echo. 
echo. 
echo 按任意键退出...... 
pause>nul 
goto quit 
:newly 
cls 
echo ================================ 
echo 找不到批处理文件, 请重新输入! 
echo ================================ 
echo. 
echo. 
echo 按任意键开始...... 
pause>nul 
goto start 
:quit 
exit

将以下代码保存为bat文件,双击运行即可,根据提示,输入所要加密文件的绝对路径回车即可。
解密完成后,会在这个加密bat文件目录生成解密后的文件:

@echo off 
mode con: cols=80 lines=25 
:index 
color 27 
cls 
echo ╭──────────── ──╮ 
echo │ │ 
echo ╭─────────┤ BAT 解 密 工 具 ├─────────╮ 
echo │ │ │ │ 
echo │ ╰────────── ────╯ │ 
echo │ │ 
echo │ │ 
echo │ 本工具用来对混淆文本编码类型的加密批处理进行解密! │ 
echo │ │ 
echo │ 在下面填入需要解密的批处理按回车键即可. │ 
echo │ │ 
echo │ 建议直接把待解密的批处理文件拖曳至本窗口释放. │ 
echo │ │ 
echo │ 解密成功后会在本程序目录下生成"new_待解密文件名.文件后缀名" │ 
echo │ 格式的文件. │ 
echo │ │ 
echo │ 注意: 如果本目录下存在"new_待解密文件名.文件后缀名"的文件, │ 
echo │ 将会被替换. │ 
echo │ │ 
echo │ │ 
echo ╰─── ─────────────────────────────╯ 
echo. 
set route=%cd% 
set ravel= 
set /p ravel= 请输入要解密的批处理: 
set "ravel=%ravel:"=%" 
if /i "%ravel:~-4%"==".bat" if exist "%ravel%" goto go 
if /i "%ravel:~-4%"==".cmd" if exist "%ravel%" goto go 
cls 
echo ╭──────────╮ 
echo ╭─────────┤ 文 件 错 误 ├────────╮ 
echo │ ╰──────────╯ │ 
echo │ │ 
echo │ 指定文件不存在或文件不是批处理类型! │ 
echo │ │ 
echo │ 按任意键重新输入... │ 
echo │ │ 
echo ╰───────────────── ───────────╯ 
echo. 
echo. 
echo 按任意键重新输入... 
pause >nul 
goto index 

:go 
for /f "tokens=*" %%c in ("%ravel%") do ( 
cd /d "%%~dpc" 
if exist "%route%\new_%%~nxc" attrib -s -h -r -a "%route%\new_%%~nxc" 
echo author:[email protected]>"%route%\new_%%~nxc" 
for /f "tokens=*" %%i in (%%~nxc) do ( 
echo %%i>>"%route%\new_%%~nxc" 
) 
) 
cls 
echo ╭──────────╮ 
echo ╭─────────┤ 解 密 成 功 ├────────╮ 
echo │ ╰──────────╯ │ 
echo │ │ 
echo │ 恭喜, 批处理解密成功! │ 
echo │ │ 
echo ╰──────────────────── ────────╯ 
echo. 
echo. 
echo 按任意键退出... 
pause >nul 
exit

猜你喜欢

转载自blog.csdn.net/huxiutao/article/details/89144937