中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 05:59
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » (原创)批处理加密+解密(感谢namejm和bjsh版主!)
可打印版本  2,242 / 22
第1楼 bat-zw 发表于 2008-03-29 18:12
金牌会员 发帖 1,276 积分 3,105
(原创)批处理加密+解密(感谢namejm和bjsh版主!)
  经本处理后处理后的批处理要经过加密和解密两个过程才能运行,同时经过加解密过程后使每行后增加了18位空字符,现已解决。
  相信经过本批处理加密的文件很难被破解,可以便于大家将不经常使用的批处理都转换成文本文件收藏起来,要用的时候再解密出来就可以了,这也是本人花这么大心思的初衷。
为了便于分类保管,特别加入人工选择输出文件名功能。
友情提示:请大家小心使用变量延迟,在本P中就遇到了处理特殊字符"!"的问题,真的不瞒大家,我为这个是费尽了心力(出现的问题本人在9楼做了详细说明)。
  感谢namejm的共享资料解决了关键问题,脱去因解决特殊字符"!"替换时生成的前后双引号(本人在16楼贴出了其原文,大家可以去学习学习以少走弯路),本批处理已修改如下:


[ Last edited by zw19750516 on 2008-3-31 at 01:14 PM ]
第2楼 luckboy45 发表于 2008-03-29 19:19
中级用户 发帖 212 积分 487
呵呵,想法不错,支持楼主,顺便学习下!~
第3楼 beeny 发表于 2008-03-29 20:45
初级用户 发帖 49 积分 136
呵呵不错!就是好像不能再执行吧!
第4楼 bat-zw 发表于 2008-03-29 20:50
金牌会员 发帖 1,276 积分 3,105
我测试了可以的:
但对于"!"有点感冒!!!
第5楼 ZJHJ 发表于 2008-03-30 00:24
高级用户 发帖 374 积分 609
我测试了
这种替换后不能运行了,也不支持中文.必须解密后才能运行的
第6楼 HAT 发表于 2008-03-30 01:45
版主 发帖 5,017 积分 9,023
继续加油
第7楼 plp626 发表于 2008-03-30 01:55
银牌会员 发帖 1,020 积分 2,278
有个问题:
for 可以精简重复的任务,但就是不能精简多次set赋值这样的操作,
就像:
set str=!str:a=犇!
set str=!str:b=猋!
set str=!str:c=骉!
set str=!str:d=蟲!
set str=!str:e=麤!
set str=!str:f=毳!
set str=!str:g=淼!
set str=!str:h=掱!
set str=!str:i=焱!
set str=!str:j=垚!
set str=!str:k=煊!
set str=!str:l=烜!
set str=!str:m=煐!
set str=!str:n=焓!
set str=!str:o=烓!
set str=!str:p=焺!
set str=!str:q=瓛!
set str=!str:r=炜!
set str=!str:s=翙!
set str=!str:t=燚!
set str=!str:u=焜!
set str=!str:v=琰!
set str=!str:w=燊!
set str=!str:x=眚!
set str=!str:y=奡!
set str=!str:z=慤!

这样的代码,总是不能精简,这和指针有关吗?
第8楼 bat-zw 发表于 2008-03-30 11:44
金牌会员 发帖 1,276 积分 3,105
友情提示:
  批处理加密后是不能运行的,想恢复只要把原来加密时生成的chang.txt放进去解密还原成back.bat就可以运行了。同时,不好意思,发贴时没有写好说明,在这里补上了。
第9楼 bat-zw 发表于 2008-03-30 12:05
金牌会员 发帖 1,276 积分 3,105
关于处理特殊字符"和! !的疑惑:
  本加解密工具现在有个最大的问题没有得到解决,如果被处理的批处理中含有"! !"的话,所有的"! !"将不被处理。
  我做了大量的处理和测试,只要加入set str="!str:^!=^!!"(也试着加入call,set str=!str:^!=^!!不起作用)进for循环中进可以解决"! !"不被处理的问题。rem实际上只要加入双引号就可以了,根本不要对!进行替换处理,以前我是没搞清楚,导致写入无效命令。
  但随之出现的新的问题更叫人头痛,大家注意到在for循环中加入str="!str:^!=^!!"实际同时给每个%str%前后都加上了字符",原本简单的以为把echo !str:~,-18! >>%c%.bat修改下就可以解决了。但当我修改成echo !str:~2,--20! >>%c%.bat
后却发现解密出来的文件各行中有的""被处理掉了,有的前面的"还在,肯定会导致 不能运行,这就表明在每行前后增加的"字符导致增加的字符数并不一样
  真的是叫人头痛啊,同样是前后增加的字符"但为什么会出现各行前后增加的字符数不一样的情况啊,望高人指点啊。
  对了,问题比较复杂,不知道我说清楚了没有,版主可不要扣我分啊。
===============================================
本问题已在16楼得到解决,在此再次感谢namejm和bjsh版主。

[ Last edited by zw19750516 on 2008-3-31 at 01:16 PM ]
第10楼 bat-zw 发表于 2008-03-30 13:28
金牌会员 发帖 1,276 积分 3,105
为了解决问题得到提高:
为了解决问题得到提高,自己顶一下了。
第11楼 terse 发表于 2008-03-30 13:38
银牌会员 发帖 946 积分 2,404
你所加密后文件并不能运行
搜索一下s11ss的发贴 应该有收获的
用变量替换就可以
第12楼 bat-zw 发表于 2008-03-30 15:30
金牌会员 发帖 1,276 积分 3,105
再顶:
问题没解决啊,高手们给点建议啊,急啊!!!!!!!!!!!!!!!!!
第13楼 zh159 发表于 2008-03-30 16:13
金牌会员 发帖 1,467 积分 3,687
含有特殊字符的处理建议还是使用VBS的好
第14楼 knoppix7 发表于 2008-03-30 21:09
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
.这样的解/加密太容易露馅了.论坛上还有其他的方法。自己看看把.
第15楼 bat-zw 发表于 2008-03-30 22:58
金牌会员 发帖 1,276 积分 3,105
继续顶:
  怎么没人来帮我解决我在9楼提出的问题啊,我都搜遍了论坛了,还是不知所以然!急啊!
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023