天天看點

對Bat檔案進行加密

1、通過改變進制的方法

下載下傳一個16進制編輯軟體,比如MiniHex。

将要加密的bat檔案開頭加入兩個空行,并拖入到MiniHex軟體中:

對Bat檔案進行加密

修改前兩個位元組的資料,修改為FF FE(或者修改為FE FF也可以)如圖:

對Bat檔案進行加密

儲存一下,Ctrol+s,此時就可以了。

會在bat檔案所在目錄生成.bak檔案,這就是源檔案(加密前的檔案),此時打開原來的檔案如下:

對Bat檔案進行加密

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=請輸入需要加密的批處理後按Enter鍵(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 │ 在下面填入需要解密的批處理按Enter鍵即可. │ 
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