中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]请问下面BAT加密解密的原理
作者:
标题: [已结]请问下面BAT加密解密的原理 上一主题 | 下一主题
wuwuwuming
初级用户





积分 37
发帖 18
注册 2007-4-1
状态 离线
『楼 主』:  [已结]请问下面BAT加密解密的原理

BAT加密和解密器

(转)一位好友发表的BAT加密和解密文章
-----------------------------------------------------------
这是一段bat加密器代码
author:pengfei@[url]www.cn-dos.net[/url]
%%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
cls
@echo off
color 27
:start
cls
echo *******************************************************************************
echo *                                                    *
echo *              BAT    加    密    最    终    版                  *
echo *                                                    *
echo *******************************************************************************
echo.
echo.
echo BAT加密最终版为"BAT加密工具"的更新版本, 较上一版加密工具而言有诸多优势:
echo.
echo ★ 可以一次性成功加密任何批处理文件, 更省事.
echo.
echo ★ 可以由您输入任意需要加密的批处理, 加密灵活性更大.
echo.
echo ★ 能够自动判断错误输入, 更加人性化.
echo.
echo 说明: 在下面输入需要加密的批处理文件, 直接输入批处理文件名为加密当前目录下的BAT,也可以带路径指定任意BAT. 当前目录下生成的encrypt.bat文件即为加密的批处理.
echo.
echo 作者:木林森 QQ:573381312 BYE
echo.
echo.
echo.
set /p file=请输入需要加密的批处理后按回车键(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解密器代码
---------------------------------------------------------------------------------------------
@echo off
mode con: cols=80 lines=25
:index
color 27
cls
echo                  ╭───────────────╮
echo                  │                      │
echo    ╭─────────┤      BAT 解 密 工 具    ├─────────╮
echo    │              │                      │              │
echo    │              ╰───────────────╯              │
echo    │                                                │
echo    │                                                │
echo    │    本工具用来对混淆文本编码类型的加密批处理进行解密!            │
echo    │                                                │
echo    │    在下面填入需要解密的批处理按回车键即可.                  │
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:pengfei@[url]www.cn-dos.net[/url]>"%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
我是菜鸟,看不懂啊,由其是那段长长的%%%%%%代码,让人头晕~~~~
请问上面BAT加密解密的原理,哪位高手能讲一下原理吗??

[ Last edited by HAT on 2008-11-2 at 10:25 ]

2007-4-1 22:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ZJHJ
高级用户





积分 609
发帖 374
注册 2006-8-2
状态 离线
『第 2 楼』:  

其实,加密和解密,都用不作这么复杂.实际上,就是将ANSI编码的文件写入Unicode编码
的文件中.

2007-4-5 12:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zhclvip
初级用户





积分 138
发帖 50
注册 2007-1-23
状态 离线
『第 3 楼』:  骗人的!

我试验过了,只有原批代码前加上一行无聊的%%a……
没有任何其它效果!!!!!!!

2007-4-8 11:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
3391617
初级用户




积分 116
发帖 56
注册 2007-3-7
状态 离线
『第 4 楼』:  

倒          



QQ=3391617
2007-4-9 10:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
123456a
新手上路





积分 2
发帖 1
注册 2007-8-10
状态 离线
『第 5 楼』:  

郁闷了

2007-8-10 10:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mirking
初级用户




积分 54
发帖 24
注册 2007-7-8
状态 离线
『第 6 楼』:  

呵呵,转成EXE加个壳也可以



俺很菜,但俺很好学。
2007-8-12 10:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sdp910
初级用户




积分 89
发帖 40
注册 2007-5-13
状态 离线
『第 7 楼』:  

看不懂啊,请高手来指导指导呵……



Never stop!!!
Love DOS !Love Computer!
2007-8-12 21:37
查看资料  发送邮件  发短消息 网志  OICQ (729600273)  编辑帖子  回复  引用回复
dudubird
新手上路





积分 13
发帖 6
注册 2008-7-21
状态 离线
『第 8 楼』:  

这种加密方法,用winrar就能轻松浏览。

2008-11-2 01:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DosForXp
新手上路





积分 19
发帖 13
注册 2010-2-8
状态 离线
『第 9 楼』:  

加密不要太弱

2010-2-10 12:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wewebb
初级用户





积分 66
发帖 53
注册 2009-10-9
状态 离线
『第 10 楼』:  

这是利用了“记事本”的BUG,所谓的加密也只是对“记事本”而言,用“写字板”打开就一目了然。

2010-2-10 20:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: