
關于批處理加密的新方法最后由 HOPE 于 -8-9 10:16大家好,由于我是新人,發帖有些拘束,請諒解。今天,我發現了批處理加密的一種新方法。[Tips:這種命令只有x64平臺的一些操作系統可以使用,不過加密后的批處理x86平臺也可以使用,測試環境:Windows 7 x64 ; Windows 10 x64;Windows XP Sp3 x86]在了解這種加密方法之前,首先需要了解什么是Certutil,[傳送門:用 certutil 實現 Hex2Bin 和 ba
se64 加解密 - BAT教程&資料 - 批處理之家 批處理_BAT腳本_PowerShell_VBS_CMD_DOS_Perl_Python - Powered by Discuz! (bathome.net)]Certutil實質上是用來管理證書的,但由于可以將文本加/解密成ba
se64/十六進制機器碼,所以有些“歪門邪道”的用法。說了這么久,下面開始介紹這種加密的方法:首先,我們準備一個 .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 退出
nclick="copycode($('code0'));">復制代碼
然后,Win+r,打開命令提示符,進入到批處理的目錄下,鍵入如下命令:
- Certutil -encodehex -f Hello,World.bat Hello,World.bat
nclick="copycode($('code1'));">復制代碼
效果如下:
- G:BatHome>Certutil -encodehex -f Hello,World.bat Hello,World.bat
- 輸入長度 = 792
- 輸出長度 = 3692
- CertUtil: -encodehex 命令成功完成。
nclick="copycode($('code2'));">復制代碼
這個時候,我們的批處理已經解析成了十六進制機器碼,前兩行如下:
- 000052 65 6d 20 b5 da d2 bbcc f5 c7 a7 cd f2 b2 bb Rem ............
- 0010d2 aa ca c7 d3 d0 ca b5bc ca d2 e2 d2 e5 b5 c4 ................
nclick="copycode($('code3'));">復制代碼
然后,我們將前兩個字節改為 ff fe (千萬不要改成 fe ff 否則用type 就可以解析一切) ,也就是:
- 0000ff fe 6d 20 b5 da d2 bbcc f5 c7 a7 cd f2 b2 bb Rem ............
- 0010d2 aa ca c7 d3 d0 ca b5bc ca d2 e2 d2 e5 b5 c4 ................
nclick="copycode($('code4'));">復制代碼
接著,我們再還原批處理,鍵入以下命令:
- Certutil -decodehex -f Hello,World.bat Hello,World.bat
nclick="copycode($('code5'));">復制代碼
效果如下:
- G:BatHome>Certutil -decodehex -f Hello,World.bat Hello,World.bat
- 輸入長度 = 3692
- 輸出長度 = 792
- CertUtil: -decodehex 命令成功完成。
nclick="copycode($('code6'));">復制代碼
接著我們看加密過的 Hello,World.bat (亂碼太長了,這里只取兩行):
- �믒Ꟈ뮲쟊탓뗊쪼쒵눬좻얻듺삦믭쯡믰ꎵඡ䀊捥潨漠晦敒�햱�퓏檔灣㤠㘳㸠渠汵敒ﯕ퓑쏖즳탖쓎겣䉇흋럖뇻신෫攊摮潬慣൬刊
nclick="copycode($('code7'));">復制代碼
怎樣,批處理加密成功!我們可以嘗試運行批處理代碼,看看批處理有沒有損壞:
- Hello,World!
- 請按回車鍵退出...
nclick="copycode($('code8'));">復制代碼
沒有任何損壞!但有沒有解密的方法呢?有!用 MsWord 365 打開bat 文件,編碼選Windows默認,即可解讀。劃重點:1.加密的原理,前兩個字節儲存著文件的編碼信息,改變前兩個字節即可改變文件的編碼。2.加密的優劣:優:這種方法相較于將一大堆%%a加入文件的方法相比,用type指令無法解析,劣:辦公常備軟件MsWord即可解析。3.請不要用這種加密方法做不法行當。By HOPE謝謝。