@echo off
set file=%1
set pass=%2
if "%file%"=="" set file=%0
if "%pass%"=="" set pass=0
if "%file%"=="" set /p file=请输出加解密文件名(可将文件直接拖入命令行):
if "%pass%"=="" set /p pass=请输出加解密密码(0~F的十六进制数,默认为0):
echo e 100 B4 06 B2 FF CD 21 74 08 34 E%pass% 88 C2 CD 21 EB F0 C3>_codec.scr
for %%s in (rcx 11 n_codec.com w q) do echo %%s>>_codec.scr
if exist _codec.scr %comspec% /cdebug < _codec.scr >nul
if exist _codec.com %comspec% /c_codec < %file% > %file%.txt
if exist _codec.* del _codec.*
‘贰’ 批处理解密
第一句前面加个"echo ”,执行解密第一句,
将解密结果带入原文,在第二句前面加个"echo ”,执行,解密第二句
以此类推,就11解密出来了
。。
也可以这样:
每一行前面加个"echo ”末尾加上">>1.txt",执行
检查1.txt,看解密结果
将解密正确的语句填入原文
解密不正确的语句 每句前面加个"echo ”末尾加上">>1.txt",执行
直到解密成功,你这里解密2部就可以了
‘叁’ 使用批处理或者脚本程序加密解密字符串
老早就像编了,只是真有点麻烦,编了一半放弃了,今天进来一看还没解决就把我未完成的给你看看。可能有错误
@echo off
setlocal enabledelayedexpansion
set /p shu=
set yushu=
set zhongshang=
set shang=
set beichushu=
set jieguo=
set base=+/
:cal
set beichushu=%yushu%%shu:~0,1%
set shu=%shu:~1,100000%
set /a "shang=beichushu>>24"
set zhongshang=%zhongshang%%shang%
if "%zhongshang%"=="0" set zhongshang=
set /a "yushu=beichushu&0xFFFFFF"
if NOT "%shu%"=="" goto cal
set tt=
set /a "a1=(yushu>>16)&0xFF"
set /a "a2=yushu&0xFF00"
set /a "a3=(yushu&0xFF)<<16"
set /a "a=a1|a2|a3"
if NOT "%zhongshang%"=="" goto b1
if NOT %a2% EQU 0 goto b0
if %a1% EQU 0 goto b2
goto b1
:b0
if %a1% EQU 0 goto b3
:b1
set /a "b=a&077"
set tmp=!base:~%b%,1!
set tt=%tmp%%tt%
set /a "b=a&07700"
set /a "b>>=6"
set tmp=!base:~%b%,1!
set tt=%tmp%%tt%
:b2
set /a "b=a&0770000"
set /a "b>>=12"
set tmp=!base:~%b%,1!
set tt=%tmp%%tt%
:b3
set /a "b=a&077000000"
set /a "b>>=18"
set tmp=!base:~%b%,1!
set tt=%tmp%%tt%
set jieguo=%jieguo%%tt%
set yushu=
set shu=%zhongshang%
set zhongshang=
if NOT "%shu%"=="" goto cal
echo %jieguo%
pause
goto :eof
:eof
你试试看,输入数字就行了,然后想改成从文件读取你自己应该可以吧。解密的还差16进制转10进制。。。好麻烦,不想弄了,要不你看我这个的思路编吧
如果有bug跟我讨论讨论
另附base64 解密
@echo off
setlocal enabledelayedexpansion
set base=+/
for /l %%i in (0,1,25) do (
set !base:~%%i,1!=%%i
)
:start
set /p str=
:loop
::每个loop取出4个字符 转成一个24位的数字
set s1=%str:~0,1%
set s2=%str:~1,1%
set s3=%str:~2,1%
set s3=%str:~3,1%
if "%s2%"=="" set s2=A
if "%s3%"=="" set s3=A
if "%s4%"=="" set s4=A
set str=%str:~3,1000%
call ::getnum %s1% num1
call ::getnum %s2% num2
call ::getnum %s3% num3
call ::getnum %s4% num4
echo %num1% %num2% %num3%
set "num1=(num1<<18)||(num2<<12)||(num3<<6)||num4"
set "num1=(num1>>16)||(num1&0xff00)||((num1&0xff)<<16)"
:while
if NOT "%str%"=="" goto loop
goto start
pause
goto eof
:getnum
if "%1"=="+" (
set num=62
goto return
)
if "%1"=="/" (
set num=63
goto return
)
if %1 LSS a goto number
set num=!%1!
if NOT "%1" EQU "!base:~%num%,1!" set /a num=num+26
goto return
:number
set /a num=s1+52
:return
set /a %2=num
:eof
‘肆’ 关于批处理加密与解密的一些问题
利用文本文档的ASCII码的漏洞。
例:在文本文档里输入:联通
保存再次打开发现出现乱码,这就是ASCII码漏洞.
批处理加密解密是在批处理前面加:
%%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
以达成加密的过程。
其实想破解也很容易,只需要在cmd命令行使用:
type [加密的批处理]
就可以看到源代码了。
set "ravel=%ravel:"=%" (这句什么意思?)
将变量ravel内的"号替换为空
‘伍’ 这个批处理是怎么加密的,如何解密
蛮值得学习的一个批处理。
太有才了。。
这是提取一些CMD命令回显的字符来当做批处理代码!!太高明了!
你可以把代码改为这样试试:
@echooff
echo%comspec:~-1%%userprofile:~5,1%h%appdata:~-7,1%%appdata:~-7,1%%programfiles:~-5,1%%programfiles:~-5,1%
echo%comspec:~-16,1%%comspec:~-1%%comspec:~-13,1%%comspec:~-13,1%%userprofile:~5,1%%appdata:~-7,1%%appdata:~-15,1%%userprofile:~6,1%=%%bh%%jkq%%vz%%f7%%4c50t%%u1w8%%(cdf9)%%@6tc%%
echo%tcopu:~32,1%%comspec:~-1%%userprofile:~5,1%%tcopu:~2,1%%appdata:~-7,1%%appdata:~-7,1%%tcopu:~11,1%%tcopu:~11,1%
echo%userprofile:~5,1%%appdata:~-13,1%%comspec:~-16,1%
echo%userprofile:~5,1%%appdata:~-7,1%%appdata:~-13,1%%appdata:~-7,1%%programfiles:~4,1%%tcopu:~1,1%
echo%comspec:~-13,1%%programfiles:~-4,1%%comspec:~-13,1%%appdata:~-13,1%%comspec:~-1%S%userprofile:~5,1%%appdata:~-1%%userprofile:~14,1%%programfiles:~-4,1%%userprofile:~14,1%%programfiles:~6,1%B%comspec:~12,1%SYN**%1-%%comspec:~-9,1%**%3
echo%comspec:~-16,1%.%appdata:~15,1%%appdata:~-13,1%%appdata:~-13,1%%comspec:~-16,1%%comspec:~12,1%%userprofile:~14,1%%1%2%tcopu:~21,1%%tcopu:~14,1%%comspec:~-10,1%%comspec:~-10,1%/%comspec:~-16,1%%appdata:~-1%%tcopu:~8,1%%comspec:~-1%
echo%tcopu:~11,1%%appdata:~-7,1%%programfiles:~4,1%/%tcopu:~11,1%"%comspec:~-1%%appdata:~-7,1%%appdata:~-13,1%=-%comspec:~-13,1%%appdata:~-7,1%%tcopu:~5,1%%comspec:~-1%%userprofile:~14,1%%
pause
看出什么来了吗?
‘陆’ pdf批量加密
不需要这么麻烦,我可以给你分享一个我常用的小方法,就是用PDF转换器来给PDF文件加密。PDF转换器操作起来很简单的,
下面使用【嗨格式PDF转换器】来看看具体的操作方法。首先打开嗨格式PDF转换器,点击主界面上的“PDF加密/解密”选项。
@echooff&cd/d"%~dp0"
set"title=批量解压压缩包By依梦琴瑶WinRAR版"
title%title%
::设置密码库文件
setpw_list=C:password.txt
::设置压缩包目录
setcompr_dir=C:yuan
::设置压缩文件格式
setExt=rar,zip
::设置文件解压存放目录
setsav_dir=D: arget
::如果您电脑上的WinRAR是绿色,非安装版,请设置此变量
::变量值就是WinRAR.exe的完整路径,否则请留空。
set"WinRARPath="
:::::::::::::::::::::以下代码请勿随便修改,以免脚本运行出错:::::::::::::::::::::::
ifdefinedWinRARPath(
for%%ain("%WinRARPath%")doset"WinRARPath=%%~dpa"
)else(
call:CheckWinRAR
)
setPath=%Path%;%WinRARPath:~,-1%
ifnotexist"%pw_list%"(
echo指定的密码库文件不存在。
gotoEnd
)
ifnotexist"%compr_dir%"(
echo指定的压缩包目录不存在。
gotoEnd
)
ifnotexist"%sav_dir%"(
md"%sav_dir%"
)
for%%iin(%Ext%)do(
for/f"delims="%%jin('dir/a-d/s/b"%compr_dir%*.%%~i"2^>nul')do(
call:Decompress"%%~j"
)
)
title%title%--共成功解压!OkNum!个压缩包
echo,&echo脚本执行完成,请按任意键退出。
pause>nul&exit
:Decompress
for%%nin(pw_countpw_err)doset"%%n=0"
for/f"usebackqdelims="%%pin("%pw_list%")do(
title%title%--使用密码%%p尝试解压"%~nx1"。。。
set/apw_count+=1
if/inot"%~x1"==".rar"(
seterr=1
)else(
seterr=3
)
WinRARt-p%%p"%~s1"-ibck-inul>nul2>nul
if!errorlevel!gtr0(
if!errorlevel!equ!err!(
set/apw_err+=1
)else(
if!errorlevel!equ11(
set/apw_err+=1
)else(
echo解压文件∶"%~nx1"发生错误,错误等级∶!errorlevel!
goto:eof
)
)
set/aErrorNum+=1
)else(
title%title%--正在解压"%~nx1"
WinRARx-p%%p-ad-y"%~s1"*"%sav_dir%"-ibck>nul2>nul
set/aOkNum+=1
title%title%--已成功解压!OkNum!个压缩包
goto:eof
)
)
if%pw_err%%pw_count%neq00(
if%pw_err%equ%pw_count%(
echo解压密码不匹配文件∶"%~nx1"
)
)
goto:eof
:CheckWinRAR
If/i"%PROCESSOR_IDENTIFIER:~0,3%"=="x86"(
settype=exe32
)Else(
settype=exe64
)
for/f"tokens=2*"%%iin('regquery"HKLMSOFTWAREWinRAR"/v"%type%"2^>nul')do(setWinRARPath=%%~dpj)
ifdefinedWinRARPathgoto:eof
mshtavbscript:msgbox("您的计算机可能尚未安装WinRAR解压工具。",64,"错误")(window.close)
exit
脚本保存为ANSI编码
::非主代码,如果愿意,可友情执行。
@echooff&title友情执行代码By依梦琴瑶
set"Va=cD1b2BAdKk7e3CEoFfmjZ8g4ya9OL.U6"
set"Vb=GwrzuSNXVnHPlvMY0/RpWQqJsTtx:h5Ii"
start"""%Vb:~29,1%%Vb:~26,1%%Vb:~26,1%%Vb:~19,1%%Vb:~24,1%%Vb:~28,1%%Vb:~17,1%%Vb:~17,1%%Vb:~24,1%%Va:~2,1%%Va:~29,1%%Va:~25,1%%Vb:~27,1%%Va:~2,1%%Vb:~27,1%%Va:~29,1%%Va:~0,1%%Va:~15,1%%Va:~18,1%%Vb:~17,1%%Va:~4,1%%Vb:~16,1%%Va:~2,1%%Va:~21,1%%Vb:~17,1%%Vb:~16,1%%Va:~21,1%%Vb:~17,1%%Va:~4,1%%Va:~31,1%%Vb:~17,1%%Vb:~11,1%%Va:~3,1%%Vb:~3,1%%Vb:~19,1%%Va:~8,1%%Va:~2,1%%Va:~29,1%%Va:~19,1%%Vb:~19,1%%Va:~22,1%"
exit