Batch file 将批处理脚本转换为base64/不可读格式

Batch file 将批处理脚本转换为base64/不可读格式,batch-file,base64,Batch File,Base64,几年前,我看到一些批处理脚本一看就不包含任何相关内容,但内容很多。内容是base64编码的,当您运行脚本时,它们只是运行在那里编码的命令 差不多 SET mypath=%~dp0 回显“%mypath%” 将看起来与 一些基本解码函数( U0VUIG15CGF0AD0LFMRWMA0KIGVJAG8GIIVTEXTBHDGGL ) 我真的不记得那些文件是怎么回事,我在互联网上也找不到任何相关的东西,除了这篇文章: 但这只是引用到PowerShell脚本,我需要它用于.bat脚本 有人给我一个提示

几年前,我看到一些批处理脚本一看就不包含任何相关内容,但内容很多。内容是base64编码的,当您运行脚本时,它们只是运行在那里编码的命令

差不多

SET mypath=%~dp0
回显“%mypath%”

将看起来与

一些基本解码函数(
U0VUIG15CGF0AD0LFMRWMA0KIGVJAG8GIIVTEXTBHDGGL
)

我真的不记得那些文件是怎么回事,我在互联网上也找不到任何相关的东西,除了这篇文章: 但这只是引用到PowerShell脚本,我需要它用于.bat脚本


有人给我一个提示吗?

这是一个示例批处理文件,用于使用Certutil实用程序对Base 64中的文件进行编码


如何使用它? 只需将此代码保存在记事本、记事本++或任何文本编辑器中,即为: Certutil\u B64\u Encoding\u Files.bat并将任何文件拖放到其上进行编码

@echo关闭
Hackoo 2017使用CERTUTIL实用程序对文件进行标题编码
颜色0A和模式83,3
如果“%~1”==”(
颜色0C和模式80,3
回音(
echo您必须在要编码的批处理脚本上拖放一个文件!
超时/T 5/nobreak>nul和exit/b
)
@对于/f%%i in(“certutil.exe”)如果不存在,请执行“%%~$path:i”(
未找到echo CertUtil.exe。
暂停
退出/b
)
设置“TempFile=%Temp%\Temp\u b64
设置“OutputFile=%~nx1\u编码%%x0”
如果存在“%OutputFile%”删除“%OutputFile%”nul 2>&1
回音(
echo请稍候…正在对“%~nx1”进行编码。。。
certutil.exe-f-编码“%~1”“%TempFile%”nul 2>&1
(
回声@回声关闭
echo CERTUTIL-f-解码“%%~f0”“%%Temp%%\%%~nx1”^>nul 2^>^&1
回显开始“%~n1”“%%Temp%%\%~nx1”
回波出口
)>>%OutputFile%
复制“%OutputFile%”/b+“%TempFile%”/b>num2>&1
如果存在“%TempFile%”删除“%TempFile%”nul 2>&1
超时/T 2/NoBreak>nul和exit

编码的HTA示例:CommandLine.HTA_Encoded.bat 这是我的HTA文件编码输出的结果,名为 因此,您应该将此代码复制并粘贴为CommandLine.hta_encoded.bat,然后双击执行。您将得到如下结果:


编码的VBS示例:DJBuzzRadio.VBS_Encoded.bat
MACRO-b64解码.bat

@echo off
SETLOCAL DISABLEDELAYEDEXPANSION

::DEFINITIONS
( set LF=^
%= EMPTY =%
)

set ^"NL=^^^%LF%%LF%^%LF%%LF%^^"

set $MACRO.ForEntireLine=^^^^^^^"eol^^^^=^^^^^^^%LF%%LF%^%LF%%LF%^^^%LF%%LF%^%LF%%LF%^^^^ delims^^^^=^^^^^^^"

::MACRO
ENDLOCAL &^
set $MACRO.b64exec=FOR %%? in (args main) do if "%%?" == "main" (%NL%
FOR %%a in (!args!) do (%NL%
    ^>encoded.txt echo %%a%NL%
    ^>nul certutil -decodehex encoded.txt decoded.txt 1%NL%
    FOR /F %$MACRO.ForEntireLine% %%x in (decoded.txt) do %%x%NL%
    del /F /Q encoded.txt decoded.txt%NL%
)%NL%
) ELSE SETLOCAL ENABLEDELAYEDEXPANSION ^& set args=
要在批处理文件中调用宏,请执行以下操作:

call MACRO-b64decode.bat
%$MACRO.b64exec% ZWNobyBoZWxsbywgd29ybGReIQ==
这将输出:

hello, world!

注意:
DELAYEDEXPANSION
已启用

由dbenham在dostips上编写。谢谢Hackoo。我确认这是一个完美的答案,它工作起来很有魅力。
hello, world!