![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 12:54 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]文本加解密程序(bat+debug) |
| 可打印版本 17,534 / 23 |
| 第1楼 qzwqzw | 发表于 2007-05-30 15:42 |
| 银牌会员 发帖 636 积分 2,343 | |
|
[原创]文本加解密程序(bat+debug) 昨晚有人发了个VB的文本加密程序
使用了逐字节加1的恺撒密码 很快我们的版主老兄就出了VBS版 想起这种简单的文本处理还是汇编更轻巧些 只是昨天又热又困编代码还是算了 今天一场中雨凉快了许多 虽然紧张忙碌 但还是抽空写了一下 省得过了明天天一热又忘在脑后 ------------------------------------------------------- 起初打算完全实现+1/-1的密码 后来考虑到为我等懒人谋福 觉得还是异或更简单实用些 +1实在太好猜了,我当初就破过某个bat2exe程序+1后的加密代码 异或算法相对比较难猜一些 而且加密/解密可以重用一个模块 本来想支持多位密码的 这样才具有实用性 可惜无论+1或者+X还是异或X都可能会得到FF 而FF无法输出到标准输出的 为了代码简单起见 还是使用了与 E0~EF 异或的方案 这样只有10~1F 的字节才可能得到FF 而这区都是控制字符 文本文件中绝难用到 ------------------------------------------------------ 时间原因 没有特殊情况 不准备更新它了 有兴趣的可以自己研究研究 [ Last edited by qzwqzw on 2007-6-5 at 12:09 PM ] |
|
| 第2楼 starrysky | 发表于 2007-05-30 16:12 |
| 新手上路 发帖 5 积分 10 | |
|
这种程序有用吗
|
|
| 第3楼 namejm | 发表于 2007-05-30 16:20 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
初步测试了一下,发现如下两个问题:
当路径含有空格的时候不会有结果,问题出在 if exist _codec.com %comspec% /c_codec < %file% > %file%.txt 这一句,相关的 %file% 语句应该用引号括起来才对; 另外,最开始的两对 if 语句逻辑上存在问题:当 file 或 pass 没有被定义的时候,强行给它们赋予了默认值,导致后两个 set /p 语句根本没机会执行。 |
|
| 第4楼 qzwqzw | 发表于 2007-05-30 18:31 |
| 银牌会员 发帖 636 积分 2,343 | |
|
嗨,说好不更新的
可惜问题真是太多了 只好又出新版本 免得误人子弟 另外修改增加了一些细节 比如操作文件的默认值 再比如操作提示和代码注释 |
|
| 第5楼 namejm | 发表于 2007-05-30 21:34 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
呵呵,看来 qzwqzw 兄想偷懒,不打算再更新了?那我就再来挑点骨头:
1、dir 加上了 /s 参数,势必要在所有子目录中查找,若在当前目录及某几个子目录中存在指定的同名文件,那么,指定文件的操作将变得难以控制,建议查找文件的时候,不搜索子目录; 2、对文件路径加引号的操作不彻底,仍有漏网之鱼,比如 set file=%~dp0\*.txt,如果该路径中存在 & 的话,还是会出错呢。 |
|
| 第6楼 qzwqzw | 发表于 2007-05-30 22:42 |
| 银牌会员 发帖 636 积分 2,343 | |
|
/s这个参数起初是不加的
后来发现直接拖动测试文件到程序时 当前目录竟然是%userprofile% 然后再用~ff就会出现问题 所以才加上/s以得到全路径 现在看来加上很有问题 set file=的问题 倒是你考虑得细致 不过这样的问题太多了 我已经对它感到厌烦了 |
|
| 第7楼 qzwqzw | 发表于 2007-05-30 23:56 |
| 银牌会员 发帖 636 积分 2,343 | |
|
看在加分人的份上还是忍着吧
/s去掉了,改为先获取数据文件目录再拼凑路径的办法 set file已经尽可能的改了 谁有闲可以测试一下 拖放数据文件到程序 拖放数据文件到命令行窗口 输入文件路径到命令行窗口 文件路径含空格 文件路径含转义字符 文件路径无效 |
|
| 第8楼 namejm | 发表于 2007-05-31 00:13 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
哈哈,还真被我试出毛病来了,不过还是老问题:没有对所有的路径用引号括起来——虽然老兄对这个问题有点厌烦了,但是我还得提提^_^
问题在这一句:set file=%1。当我在CMD窗口中以形如 "*test.cmd" "te st.txt" 的格式处理 te st.txt 这个文件的时候……嘿嘿,不说你也明白了。建议改成 set “file=%~1”。 其他的暂时还没来得及测试。 |
|
| 第9楼 qzwqzw | 发表于 2007-05-31 00:45 |
| 银牌会员 发帖 636 积分 2,343 | |
|
这个问题已经改了
顺便改了程序LOGO的出现条件 再就是提示语的简单修饰 ------------------------------------------------------------------- 我现在正式将此代码授权给中国DOS联盟 所有联盟的成员都可以对它进行复制、修改和再发布 也可以将它全部或部分代码当作自己代码或者项目的一部分 凡是使用此代码的项目、代码均不能违反代码自由开放的原则 也不能用于任何商业和盈利用途 简而言之,就是以精简的的GPL协议发布 也就是说,再有问题都需要你们自己来改了 绝对的懒人协议 |
|
| 第10楼 whswbiori | 发表于 2007-08-01 04:46 |
| 新手上路 发帖 5 积分 10 | |
|
谢谢你们的分享和测试 我是一个新人 觉得这样的气氛很好
|
|
| 第11楼 b102588 | 发表于 2007-08-01 12:21 |
| 初级用户 发帖 34 积分 83 | |
|
恩 我也决的这里不错
|
|
| 第12楼 ZJHJ | 发表于 2007-08-03 07:36 |
| 高级用户 发帖 374 积分 609 | |
|
初试了一下,效果不错,还可以多次重复加密.但对文本程序(bat com)不可用.
|
|
| 第13楼 vkill | 发表于 2007-08-05 16:31 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
看不懂debug,ai
|
|
| 第14楼 knoppix7 | 发表于 2007-08-06 10:00 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
以前写过用%XXXX:~X,X%的方式加密的东西。。。
不过。。。。加密后要比原文件大5~10倍。。。 |
|
| 第15楼 xun0813 | 发表于 2007-08-19 09:41 |
| 初级用户 发帖 8 积分 20 | |
|
几乎都看不懂诶,谁能说说原理么~
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |