[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 如何给批处理加密?

最近看论坛见到有人说批处理加密都可以被破解不知道是否是这样,是否有相对强壮的加密软件呢?

最近公司项目需要,做了一个专门用途的批处理,需要安装在服务器上,为了防止他人盗用,需要限制其他机器拷贝使用。目前我们的考虑是希望和cpu或主板绑定,我记得cpu好像有唯一的身份序列。验证后方可通行。不知道是否可以做到,如果困难,是否有其他好方法呢?

希望给为能予以指教,谢谢。

刚刚和一位高手交流了一下,觉得还是比较困难。
我想是否可以和系统的序列号绑定呢?比如如果相同则通过,不同就屏蔽掉无法使用。不知是否可以实现呢?

TOP

楼主提到的实际上两个问题
一是程序的运行限制
二是程序的自身加密
第一个问题方案有很多
包括你所说的CPU序列号绑定都不是太难的问题
第二个问题目前没有绝对稳妥的方案

只能给三个提示

把批处理做的不像批处理
这样有心人就不会想到破解批处理的办法去破解它


在此基础上选用相对稳妥的方案就可以了
比如一些流行的批处理编译器


做项目
尤其是赚钱的项目
不要使用批处理
批处理没有版权保护可言
天的白色影子

TOP

注意,以下方法不适合分发运行这个批处理:
1,在批处理最后加上del %0,批处理命名例如:实验.bat
2,使用winrar压缩这个批处理为rar,并设置密码为123456789,名称例如:实验.rar
3,需要的时候,使用以下示例命令运行该rar:
  1. cmd /k ""D:\Program Files\xerox\WinRAR\rar" x -o+ -hp123456789 "d:\实验.rar" "c:\"&"c:\实验.bat""
复制代码

[ 本帖最后由 hanyeguxing 于 2010-4-19 17:54 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

BAT不适合,换成其他高级语言把。

TOP

用批处理来做这个?
winrar,也是可以被解密的吧...
不过相对批处理来说,加密强度高不少了

关键用途的程序,还是用高级语言来写吧..

TOP

原帖由 hanyeguxing 于 2010-4-19 17:46 发表
注意,以下方法不适合分发运行这个批处理:
1,在批处理最后加上del %0,批处理命名例如:实验.bat
2,使用winrar压缩这个批处理为rar,并设置密码为123456789,名称例如:实验.rar
3,需要的时候,使用以下示例命 ...


这样做的话,调用参数还是得暴露出来..
随便做个程序,伪装成winrar,就知道密码了..


或者直接循环查找目录下的文件那个bat,找到就用notepad打开..
或者用超级巡警之类的,监控文件运行,运行前被杀软拦截,趁此机会找到文件copy

再次,修改bat的运行参数,释放出来bat无法运行,也就没办法删除自身了

[ 本帖最后由 caruko 于 2010-4-19 18:06 编辑 ]

TOP

1,目前对winrar的加密只能用暴破,所以破解难度只和密码的复杂、长度有关
2,这个方法只针对别人获取.rar文件后的问题
3,如果别人可以看到cmd /k ""D:\Program Files\xerox\WinRAR\rar" x -o+ -hp123456789 "d:\实验.rar" "c:\"&"c:\实验.bat"",那么什么都不用想,-hp跟的就是明码密码。所以前面特别说明了:方法不适合分发运行这个批处理。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 8楼 的帖子

如果要使用RAR加密
倒是有一个折中的方案

事先获取到用户的运行环境信息
根据这些信息运算得到一个密码
在开发环境下使用密码加密项目脚本
并生成一个自动解压运行的脚本
这个脚本可以根据用户环境复原那么密码

因为项目的前提是基于
用户端环境信息是唯一的
所以即使破解者获得了项目的加密版本以及自动解压脚本
仍然无法获得到基于环境信息的密码
所以无法解压运行该项目

所以这个方案最终实现的是
授权用户能合法运行项目
同时也可以修改这个项目
非授权用户将无法运行这个项目
同时也无法修改这个项目

[ 本帖最后由 qzwqzw 于 2010-4-19 19:32 编辑 ]
天的白色影子

TOP

感谢楼上各位的回复,小弟不胜感激。
此项目源于机缘巧合,我们的设备提供给上海某保障部门,因需求特殊要更新设备固件才能解决,国外工程师发了一个批处理升级程序专门针对这个特殊应用。我们在此技术上进行了从新规划。我知道vb,vc都可以实现我现在的功能,怎奈当年学的都还给老师了,批处理是我唯一敢说懂点的语言。因此才拿下这个难题来解决。

目前我们的要求就是安装在指定服务器上,并且保证只能这台电脑可以让网管使用。但是因为环境因素,有可能我们的行业竞争伙伴可以接触并拷贝该程序。因此才有了这个主题的想法。

没想到大家这么热闹,一下子高手全来了,我觉得幸福的活着说的方法对我们目前的情况相对比较合适,不知道是否可能有一些例子呢?比如关于对cpu的绑定。这个我觉得是最狠的。呵呵,服务器cpu换一次可不是那么方便的。

期盼高手能围绕此问题继续讨论。感谢!

TOP

回复 10楼 的帖子

WinRAR不是免费软件,通常服务器上不会安装的。

TOP

回复 11楼 的帖子

开始没注意,的确是这样的。。。。。

TOP

任何项目
最难的在于方案设计
具体实现反而是简单的

9楼的方案
最致命的地方就是不能有“内贼”
因为项目解压脚本不可能完全加密
所以密码算法实际上是半公开的
那么密码来源就成了唯一的保密点
如果授权用户将关键环境信息告知非授权用户
那么加密便如纸壳

因此本方案其实与根据用户名算注册码的方式类似
前提是破解者不可能获取到授权用户的环境信息
至于实现的细节我这里不多做说明
仅就楼主关心的CPU序列号提供一个线索
wmic cpu get ProcessorID
for /f in %%f ('wmic cpu get ProcessorID') do set PID=%%f
当然,通常服务器都是多核多CPU
至于取一个或多个ID的策略可以自定设定

[ 本帖最后由 qzwqzw 于 2010-4-19 22:09 编辑 ]
天的白色影子

TOP

服务器的话,一般是NTFS分区吧,不知道楼主的具体环境是否适合使用EFS加密呢?

TOP

回14楼,是ntfs分区,其实efs也是个非常好的方法,但是有一点,这种加密需要经过网络管理员允许,你知道有些单位……嘿……不好说,如果他说不行我们一点办法没有。

回活着的幸福:
太感谢了,真是和您交流一会都比我看一个星期书强。我看了一下命令的参数,一下子豁然开朗。可恨我目前没有什么算法能开发出您说的那种注册码。但是仅凭这一点我就已经搞定这个难题了。呵呵,真的非常感谢。太合适了。


感谢楼上的各位。批处理之家论坛的氛围才是真正的好论坛啊。

TOP

返回列表