中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]小文件加密解密器(命令行工具)
作者:
标题: [原创]小文件加密解密器(命令行工具) 上一主题 | 下一主题
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『楼 主』:  [原创]小文件加密解密器(命令行工具)

到这里已经混了两年了,刚来的时候基本只会cd和del那些命令,
for都不会用(感叹号的意思我大概是 09 年之后才明白的 -_-``),
热心人的帮助 + 潜水学习 + 浓厚的兴趣使得我现在知识有了很大的提高,
各种语言都学了些,对知识的运用也更加灵活,
相比之下我更喜欢vbs脚本,因为有更多的现成的功能可以拿来用,还可以与网页中使用。

今天正好是注册两周年,于是做这么个东西来纪念一下,是用 vbs 编写的。
作为加密解密工具,自己当然要保护起来,于是就不公开源代码了,
并且把他包装成一个exe命令行工具,这样就几乎不能被破解了。

我把它叫做 “小文件加密解密器”(Small File Encoder and Decoder),
因为设计它仅仅是为了操作小的文件,尤其是文本文件,
但我没想到它真的只支持小文件,大文件非常之慢,而且无法正确解密,
我大概试了一下估计上限在25KB左右,很尴尬。。。
好在支持二进制文件且效果很好,加密后面目全非,保密性很好。

具体用法就不说了,我已经把它做成命令行的样式,
你可以像一般的命令那样去查看帮助和使用它,但是不支持 “|” 管道传参数进去。

没有万能密码,如果设置了密码并且忘掉那就没办法了。
欢迎尝试破解并提出建议,以便改进它。


题外话:
在测试的时候我新建了个文本,输入 "abcde123我草"  这几个字(不含引号),保存之后,加密在解密,发现是乱码,于是重新看了好久的程序代码查问题,后来我发现这几个字保存之后本来就是乱码,真是折腾坏了。。。

[ Last edited by qinchun36 on 2010-4-23 at 15:01 ]

   此帖被 +3 点积分      点击查看详情   
评分人:【 radem 分数: +3  时间:2010-4-27 13:33


附件 1: SFED.zip (2010-4-23 17:52, 97.71 K,下载次数: 84)
2010-4-23 14:55
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
haolongo
初级用户





积分 24
发帖 17
注册 2008-8-22
状态 离线
『第 2 楼』:  

支持一下.

2010-4-23 15:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jarry0932
初级用户





积分 128
发帖 122
注册 2009-9-21
状态 离线
『第 3 楼』:  

多谢楼主的小东东,同时请教楼主,能否说说用vbs制作命令行工具时,如何进行参数的传递,就类似bat中%1,%2那样?

2010-4-26 00:32
查看资料  发送邮件  发短消息 网志  OICQ (274997087)  编辑帖子  回复  引用回复
wode5130xm
新手上路





积分 10
发帖 10
注册 2010-4-22
状态 离线
『第 4 楼』:  

唉!……

2010-4-26 02:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by jarry0932 at 2010-4-26 00:32:
多谢楼主的小东东,同时请教楼主,能否说说用vbs制作命令行工具时,如何进行参数的传递,就类似bat中%1,%2那样?

一般来说用下面这种方式就足够了:
WScript.Echo "总共有 " & WScript.Arguments.Count & " 个参数。"
WScript.Echo "%0=" & WScript.ScriptFullName
WScript.Echo "%1=" & WScript.Arguments(0)
WScript.Echo "%2=" & WScript.Arguments(1)
保存为 test.vbs ,在CMD窗口中试试
cscript -nologo test.vbs 目录 %cd%
cscript -nologo test.vbs 目录 "%cd%"


2010-4-26 09:41
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
zlg029wyc027
初级用户





积分 35
发帖 22
注册 2007-6-29
状态 离线
『第 6 楼』:  

我来支持一下!
没抢到沙发!



http://www1.apoint.cn/go/?286fe8f75c8a807d
2010-4-26 23:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zaixinxiangnian
初级用户





积分 151
发帖 106
注册 2009-10-9
来自 河南省
状态 离线
『第 7 楼』:  

呵呵,两年的坚持,祝贺你学有所成

2010-4-27 10:23
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (657614933)  编辑帖子  回复  引用回复
hnyutong
新手上路





积分 1
发帖 1
注册 2010-4-26
状态 离线
『第 8 楼』:  

支持一下,我现在就在 CD. DEL 接阶段

2010-4-27 11:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by qinchun36 at 2010-4-23 02:55 PM:
题外话:
在测试的时候我新建了个文本,输入 "abcde123我草"  这几个字(不含引号)
...

Win XP sp3环境测试正常,没有出现LZ说的问题



2010-4-27 13:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 10 楼』:  

PS:qzwqzw兄的文本加解密工具也不错,加解密后的文件大小一样
CF: http://www.cn-dos.net/forum/viewthread.php?tid=31054
而楼主的加密后要大约5倍



2010-4-27 13:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jarry0932
初级用户





积分 128
发帖 122
注册 2009-9-21
状态 离线
『第 11 楼』:  

多谢指点,再顶一下

2010-4-27 15:28
查看资料  发送邮件  发短消息 网志  OICQ (274997087)  编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by radem at 2010-4-27 13:32:
PS:qzwqzw兄的文本加解密工具也不错,加解密后的文件大小一样
CF: http://www.cn-dos.net/forum/viewthread.php?tid=31054
而楼主的加密后要大约5倍

这是一个问题,之所以大这么多,是因为有一道工序采用了系统自带的BASE64算法,它编码处理之后就已经超过5倍了,然后我为了更保密,又加了一点东西,于是就那么大了。

不过我主要是看效果,没注意效率,就算你的文件只有几个字节甚至是一个字节,比如一个空格,别人都没法从加密后的文件里猜出原文,因为就算是同一个文件用同样的密码,每次加密后的结果都不一样。。。

2010-4-27 17:31
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
yiqingnan
初级用户





积分 38
发帖 24
注册 2010-3-21
状态 离线
『第 13 楼』:  

飘然路过

2010-4-27 20:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 14 楼』:  

很感兴趣
可惜下载试用后出错
对话框提示“0x00423214”指令引用的"0x00000000"内存。该内存不能"read"。
命令行提示“Exception EAccessViolation in module SFED.exe at 00023215.
Access violation at address 00423215 in module 'SFED.exe'. Read of address 00000
000.”

大概猜测一下原理
首先用base64将源文件转换为ascii文件
但正统的Base64编码是把3个8位字节转化为4个6位的字节
所以理论体积增大倍数为4/3,约1.3倍
而不是5倍之多
除非之前已经用其它方法将源文件ASCII化再对其进行base64

至于加密算法作者没有透露
我也不能随意猜测
但如果加解密是用同样的密码
那么就应该是对称加密算法
而这类算法里面除了使用超长字典的变态算法之外
其它算法的安全性应该都是比较差的
无法达到军用甚至商用的要求

至于同一个文件用同样的密码
每次加密后的结果都不一样
我猜是加了一些随机因子
很可能跟系统时钟有关
而且这个因子应该隐藏在密文之中
否则解密逻辑就无从判断了

另外
程序自身使用了ScriptCryptor加密
网站在这里http://www.abyssmedia.com
有兴趣的可以解解看看

2010-4-28 17:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: