利用certutil.exe實(shí)現(xiàn)在批處理(bat)中嵌入可執(zhí)行文件或者各種媒體、圖片之類二進(jìn)制文件的簡單方法!
實(shí)際上利用certutil.exe 把二進(jìn)制文件(包括各種文件,exe可執(zhí)行程序,圖片,聲音,mp3) 經(jīng)過base64編碼為文本,可以實(shí)現(xiàn)把這些文件嵌入到批處理代碼中。
###有什么用?:
舉個例子,批處理經(jīng)常需要依賴其它命令行工具實(shí)現(xiàn)自動化腳本,如果把這些工具轉(zhuǎn)成文本嵌入到代碼中,貼到網(wǎng)上就可以直接把可用的代碼發(fā)出去了。不需要上傳附件。
###缺點(diǎn):
base64編碼后的文本比原文件長1/3,加上如果依賴的文件體積大,轉(zhuǎn)換出來的文本內(nèi)容會非常長。這個缺點(diǎn)影響了這個玩法的實(shí)用性。
xp 中沒有certutil 這個工具,影響了適用范圍。
如果依賴多個文件,需要用winrar 打包成exe 自解壓文件,然后再編碼。
certutil 是一個證書工具,功能挺豐富的,參數(shù)非常多,我這里只截取和base64編碼相關(guān)的幫助信息:
```C:/Users/Administrator>certutil.exe /?動詞: -dump -- 轉(zhuǎn)儲配置信息或文件 -asn -- 分析 ASN.1 文件 -decodehex -- 解碼十六進(jìn)制編碼的文件 -decode -- 解碼 Base64 編碼的文件 -encode -- 將文件編碼為 Base64。。。
##用法如下:
###第一步,先cmd中執(zhí)行命令編碼文件,我用一個小mp3文件示范:
```
E:/Game/New Heroes3/Mp3>certutil -encode hello.mp3 hi.bat
```
###第二步,命令行執(zhí)行完后,得到一個hi.bat,用記事本能看到一大串,base64的字母。
不要修改文件其中的內(nèi)容,只在文件頭部寫入你自己的批處理代碼,用certutil -decode把文本還原為文件,
如果你把以下代碼存為xx.bat 并運(yùn)行,應(yīng)該可以聽到這個MP3文件的聲音。
@echo offcertutil -decode "%~f0" hello.mp3start hello.mp3exit /b 1-----BEGIN CERTIFICATE-----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-----END CERTIFICATE-----
2016年8月31日 22:52:03 codegay
windows 2012 Server x64 測試可行。xp上不帶certutil,聽說2000以上的系統(tǒng)才帶有這個命令工具。使用其它系統(tǒng)的同學(xué),如果可以請測試反饋一下是否可行。
擴(kuò)展閱讀
《certutil - decode/encode BASE64/HEX strings.Print symbols by HEX code. 》
用 certutil 實(shí)現(xiàn) Hex2Bin 和 Base64 加解密 http://www.companysz.com/article/93966.htm
新聞熱點(diǎn)
疑難解答