中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-22 10:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创][讨论]非编译型批处理加密方案与代码 精华I 查看 110,444 回复 364
61 发表于 2006-07-26 21:04 ·  中国 广东 广州 电信
中级用户
★★
积分 201
发帖 72
注册 2005-11-20 20:57
20年会员
UID 45624
状态 离线
最为关心的是:请问版主及yuanyong630等高手,如果用此工具将较为复杂的批处理加密后会不会出现运行错误等情况呢?
62 发表于 2006-07-26 21:09 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
Originally posted by cain at 2006-7-26 21:04:
最为关心的是:请问版主及yuanyong630等高手,如果用此工具将较为复杂的批处理加密后会不会出现运行错误等情况呢?

应该不会,加密后只是在文件头部生成一段代码,当运行完这段代码后会提示出错

接着会执行下面的命令.而不会中断下面命令的执行.请放心好了.

[ Last edited by pengfei on 2006-10-2 at 09:15 ]
63 发表于 2006-07-27 03:57 ·  中国 广东 中山 广东瑞江科技有限公司BGP数据中心
中级用户
★★
积分 384
发帖 189
注册 2005-10-19 13:12
20年会员
UID 43709
性别 男
状态 离线
这方法在DOS下用type就能看到了,我觉得最好的还要算11楼3742668版主所提出的加密方法比较稳妥.毕竟没有哪位仁兄会在那么一大堆英文里慢慢找你的代码吧???
64 如果用此工具将较为复杂的批处理加密后 不会出现 任何问题 发表于 2006-07-27 06:35 ·  中国 北京 电信
初级用户
积分 49
发帖 13
注册 2006-07-13 11:21
19年会员
UID 58500
状态 离线
如果用此工具将较为复杂的批处理加密后 不会出现 任何问题

感谢“pengfei”

最后我带来了一段代码 大家猜猜密码是多少?(很简单的)

@echo off
set a=1
set d=0
:sub
cls
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
choice /c:1234567890 /n . 请输入DOS进入密码(3-%a%):

if errorlevel 10 goto 10
if errorlevel 9 goto 9
if errorlevel 8 goto 8
if errorlevel 7 goto 7
if errorlevel 6 goto 6
if errorlevel 5 goto 5
if errorlevel 4 goto 4
if errorlevel 3 goto 3
if errorlevel 2 goto 2

if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:10
if %d%==2 set d=3
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:9
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:8
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:7
if %d%==0 set d=1
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:6
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:5
if %d%==1 set d=2
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:4
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:3
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:2
if %a%==3 goto run
if %a%==2 set a=3
if %a%==1 set a=2
goto sub

:run
if %d%==3 goto end
cls
@echo 密码不对,请重新输入!!!
pause >nul
goto sub

:end
65 发表于 2006-07-29 18:33 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Originally posted by zxcv at 2006-7-23 16:10:
更简单的:
新建一个“a.txt”文本打开,复制【ൡ挊獬਍】(不含【】),粘贴到“a.txt”文本中保存时提示“含有Unicode字符....”,选“取消”,编码改为“Unicode”保存

批处理:copy/b a.txt+要加密.bat 加密.bat

Re zxcv『第 14 楼』:

根据你的方案制作了一个自动化较高的密码器脚本,因为它是使用自身作为加密用的密钥,所以本身也是一段密文,因此无法转贴代码,只能上传附件了。

[ Last edited by willsort on 2006-7-29 at 18:35 ]
附件
EncryBat.rar (433 bytes, 下载附件所需积分 100 点, 下载次数: 105)
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
66 发表于 2006-07-29 22:29 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
20年会员
UID 40733
性别 男
状态 离线
Re yuanyong630
兄 34 楼代码我从9输到0便破解了,最坏的情况下从0输到9连续3次便可破解。好像你忘记了在适当的时候清空变量 d 。

虽然我一直没有插言,但这个讨论是很有意思的,我偶尔也尝试加密一下。
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

67 感谢 两位 版主 willsort 和 无奈何 发表于 2006-07-29 23:16 ·  中国 北京 电信
初级用户
积分 49
发帖 13
注册 2006-07-13 11:21
19年会员
UID 58500
状态 离线
我的代码 的确有一些 BUG 感谢大家!使我学到了很多知识!感谢
68 很有趣的东西 大家分享 (其实只是雕虫小技) 发表于 2006-07-29 23:20 ·  中国 北京 电信
初级用户
积分 49
发帖 13
注册 2006-07-13 11:21
19年会员
UID 58500
状态 离线
md .\拨号网络.{992CFFA0-F557-101A-88EC-00DD010CCC48}

md .\打印机.{2227A280-3AEA-1069-A2DE-08002B30309D}

md .\回收站.{645FF040-5081-101B-9F08-00AA002F954E}

md .\计划任务.{D6277990-4C6A-11CF-8D87-00AA0060F5BF}

md .\控制面版.{21EC2020-3AEA-1069-A2DD-08002B30309D}

md<nul>nul .\网络邻居.{208D2C60-3AEA-1069-A2D7-08002B30309D}

md<nul>nul .\我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}

md<nul>nul .\我的文档.{450D8FBA-AD25-11D0-98A8-0800361B1103}

md<nul>nul .\公文包.{85bbd920-42a0-1069-a2e4-08002b30309d}
69 发表于 2006-07-30 02:11 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by willsort at 2006-7-29 18:33:

Re zxcv『第 14 楼』:

根据你的方案制作了一个自动化较高的密码器脚本,因为它是使用自身作为加密用的密钥,所以本身也是一段密文,因此栮..

改一下:if not == if exist %1 copy /b "%~f0"+%1 enc_%1>nul&echo. Enc_%1 is create.&goto :eof

去掉“:EncryBat_Encryption”部分

自己真正使用的只留:
@echo off
if......
if......
:EncryBat_Display
就行了^_^

[ Last edited by zxcv on 2006-7-30 at 02:15 ]
70 发表于 2006-07-31 04:08 ·  中国 河北 石家庄 电信
新手上路
积分 2
发帖 1
注册 2006-07-31 03:02
19年会员
UID 59533
状态 离线
学习了。
71 我也发个批处理加密工具^_^ 发表于 2006-08-02 10:44 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
已修改在 74 楼...

[ Last edited by zxcv on 2006-8-3 at 21:15 ]
72 发表于 2006-08-03 17:26 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线

───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:合并主题 {21804}不转换.bat,怎样防止他人查看修改其内容? -> 1~26楼
   合并主题 {22053}发个批处理加密工具 -> 27~70楼
   合并主题 {22254}我也发个批处理加密工具^_^ -> 71楼
说明:操作主题与本主题存在上下文的直接联系
───────────────── 版务记录 ─────────────────


Re zxcv:

你的修改有小小的问题,在 “if not == if exist %~f1” 一句中使用了增强的命令行参数引用(%~1),则其需要使用引号扩起,防止参数为含有空格文件名时语法错误的发生。如下:

if not "%~n1"=="" if exist "%~f1" ...

如果使用原型的参数引用(%1),则因为系统或者调用者自动为含有空格的参数补加了引号,此时不能再使用引号,否则会因为引号的错误匹配,使参数中的空格暴露出来。例如:

if not ""space file name""=="" if exist ""space file name"" ... (语法错)

如果使用增强的参数引用(%~1),则因为含有空格的参数中的引号会被系统自动脱去,此时必须使用引号,否则会因为没有引号的保护,使参数中的空格暴露出来。

if not == if exist space file name ... (语法错)
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
73 发表于 2006-08-03 18:11 ·  中国 黑龙江 哈尔滨 联通
初级用户
积分 48
发帖 20
注册 2005-08-19 17:57
20年会员
UID 41795
状态 离线
研究中`
74 发表于 2006-08-03 20:24 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
谢谢willsort版主的指正

修改如下:


  1. @echo off
  2. if not "%~n0"=="EncryBat" goto EncryBat_Display
  3. if not "%~n1"=="" if exist "%~f1" copy/b "%~f0"+"%~f1" "%~dp1enc_%~nx1">nul 2>nul&cls&echo.&echo. Enc_%~nx1 is create.&goto :eof

  4. :EncryBat_Help
  5. echo.
  6. echo %~n0 - Cryptographic machine for batch program
  7. echo zxcv@cn-dos, willsort@cn-dos - 2006-8-4 - CMD@WinXP
  8. echo.
  9. echo Useage: %~n0 batch_program_with_extname
  10. echo Reference: http://www.cn-dos.net/forum/viewthread.php?tid=22053
  11. if /i not [%0]== pause
  12. goto :eof

  13. :EncryBat_Display
zxcv发表于: 2006-08-04 11:20


修正含空格文件名不能生成加密文件错误

[ Last edited by zxcv on 2006-8-4 at 11:31 ]
附件
EncryBat.rar (430 bytes, 下载附件所需积分 1 点, 下载次数: 1358)
75 发表于 2006-08-05 08:34 ·  中国 上海 东方有线
中级用户
★★
积分 377
发帖 66
注册 2005-04-04 00:00
21年会员
UID 37817
性别 男
状态 离线
用楼上的 EncryBat,加密后批处理在CMD窗口打开的图形菜单窗口文字出错!
论坛跳转: