中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创][讨论]非编译型批处理加密方案与代码
« [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... [25] »
作者:
标题: [原创][讨论]非编译型批处理加密方案与代码 上一主题 | 下一主题
biobio
初级用户





积分 162
发帖 44
注册 2006-3-24
状态 离线
『楼 主』:  [原创][讨论]非编译型批处理加密方案与代码

.bat文件虽然好用,但安全性太脆弱

随便什么人都可以打开查看,甚至修改其中内容

有没有什么办法不把.bat转换成.exe或.com之类,仍是.bat文件

但别人无法查看并修改其中内容???


有没有什么自我加密之类的呢?

高手给个解决的思路吧


───────────────── 版主提示 ─────────────────
目前讨论的方案如下:
1、在批处理代码插入Unicode特征串的方案(7楼,yuanyong630)
  相关讨论见于24、25、45、48等楼

  代码实现(27楼,pengfei)的下载链接如下:
  点击下载:BAT加密工具.rar

  对记事本等使用IsTextUnicode函数识别编码类型的程序有效
  对type/edit/EditPlus/UltraEdit等不使用IsTextUnicode函数的程序无效

2、给批处理代码头部增加Unicode字节序标记(BOM)的方案(40楼,zxcv)
  相关讨论见于41、43、69等楼

  代码实现(71楼,zxcv)的下载链接如下:
       EncryBat.rar (zxcv)

  对记事本、Word、UltraEdit、type等支持Unicode编码的程序有效
  对edit/WinRAR内部查看器等不支持Unicode编码的程序无效

3、将批处理代码的回车换行符置换为回车符的方案(17楼,electronixtar)
  相关讨论见于26楼

  对edit等分别识别回车换行符的编辑器有效

4、对批处理代码进行字典式转换的方案(11楼,3742668)
  相关讨论及代码实现见于11、15楼

  代码明文运行时动态生成,故此方案与编辑器无关;

积分奖励:
  yuanyong630\3742668\pengfei\zxcv各奖励8点积分
  electronixtar奖励4点积分
───────────────── 版主提示 ─────────────────


[ Last edited by willsort on 2006-8-6 at 04:02 ]

   此帖被 +5 点积分    点击查看详情   
评分人:【 jonsonqf 分数: +2  时间:2008-4-29 17:25
评分人:【 Wingl83 分数: +2  时间:2008-12-23 14:06
评分人:【 niels 分数: +1  时间:2009-5-16 08:29


2006-7-10 10:52
查看资料  发送邮件  发短消息 网志   编辑帖子
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 2 楼』:  

我早就知道这个帖子会火的,所以占了个沙发,哈哈

[ Last edited by electronixtar on 2007-5-8 at 08:36 PM ]




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-7-10 11:27
查看资料  发送邮件  发短消息 网志   编辑帖子
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 3 楼』:  

QuickBFC.EXE

搜索一下   这个程序等于是把bat文件嵌入进去了  所以只要环境对就能正确执行

2006-7-10 17:34
查看资料  发短消息 网志   编辑帖子
zhaxi
初级用户





积分 112
发帖 40
注册 2006-6-23
状态 离线
『第 4 楼』:  

这个QuickBFC.EXE只能打包1个bat为exe,没什么用。

有没有把一组bat文件打包为exe的。因为经常会有很多bat组成一个程序啊。

2006-7-10 19:19
查看资料  发送邮件  发短消息 网志   编辑帖子
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 5 楼』:  

那你去找个有用的吧  干脆你给大伙写个不正好嘛
说这等屁话

2006-7-10 19:22
查看资料  发短消息 网志   编辑帖子
asbai
高级用户




积分 653
发帖 252
注册 2006-4-16
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by kcdsw at 2006-7-10 19:22:
那你去找个有用的吧  干脆你给大伙写个不正好嘛
说这等屁话

hoho,不至于吧?火气咋这么大?

   此帖被 +2 点积分    点击查看详情   
评分人:【 jckjuc 分数: +1  时间:2007-3-26 15:54
评分人:【 分数: +1  时间:2009-8-24 05:47


2006-7-11 21:04
查看资料  发送邮件  发短消息 网志   编辑帖子
yuanyong630
初级用户





积分 49
发帖 13
注册 2006-7-13
状态 离线
『第 7 楼』:  BAT文件加密法 (比Bat2Com那个软件好使<因为那个软件不支

BAT文件加密法 (比Bat2Com那个软件好使<因为那个软件不支持中文>)

方法是:

打开“记事本”将文件开头写入以下的语句

for /l %%a in (1,1,10) do ren *.jpg %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a %%a

   此帖被 +23 点积分        点击查看详情   
评分人:【 Eblis 分数: +2  时间:2007-3-2 12:30
评分人:【 zhoushijay 分数: +8  时间:2007-5-10 17:28
评分人:【 AlexZhang 分数: +2  时间:2007-7-28 18:39
评分人:【 txratu 分数: +2  时间:2008-3-19 17:29
评分人:【 qinchun36 分数: +1  时间:2008-10-31 00:30


2006-7-13 11:28
查看资料  发送邮件  发短消息 网志   编辑帖子
flying008
中级用户





积分 245
发帖 103
注册 2006-6-30
状态 离线
『第 8 楼』:  

有效……支持……感谢 ……! 绝对的智慧和技术的结晶!
那请问楼上的,怎么重新显示内容呢?有盾必有矛吧?

2006-7-13 11:44
查看资料  发短消息 网志   编辑帖子
wang6610
银牌会员




积分 1246
发帖 488
注册 2003-11-11
状态 离线
『第 9 楼』:  

7 楼测试过了能行。

2006-7-13 12:47
查看资料  发送邮件  发短消息 网志   编辑帖子
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 10 楼』:  

大家火气都别太大了,4楼zhaxi,用多个批处理能够完成的任务也可以写成一个批处理的,只不过代码量的问题不一样罢了..........

2006-7-13 12:57
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 11 楼』:  



  Quote:
『第 8 楼』:  

有效……支持……感谢 ……! 绝对的智慧和技术的结晶!
那请问楼上的,怎么重新显示内容呢?有盾必有矛吧?
『第 9 楼』:  

7 楼测试过了能行。

我太菜了,居然看不出7楼的代码怎么能够实现加密代码的作用。
难道8,9楼的朋友把7楼的代码粘贴到自己的脚本开头保存后再打开就看不到自己的代码了?感觉有点耸人听闻。。
既然大家对加密都这么感兴趣,俺也来搅和一把:


关于BAT的加密,很早以前也曾憧憬过,不过由于BAT的局限性,如果纯粹地用BAT来加密BAT,可能就算加了密别人还是能很简单就查看到源码。不过如果你想对付的只是并不高明的新手的话,可能下面的方法会有所帮助:
    在我们的系统中,默认是有不少环境变量的,例如在我的XP SP2中,运行SET命令可以得到如下的变量列表:

  Quote:
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\**\Application Data
CLIENTNAME=Console
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=GOOGLE
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\**
LOGONSERVER=\\GOOGLE
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;"C:\Program Files\S
ymantec\Norton Ghost 2003\"
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0209
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\**\LOCALS~1\Temp
TMP=C:\DOCUME~1\**\LOCALS~1\Temp
USERDOMAIN=GOOGLE
USERNAME=**
USERPROFILE=C:\Documents and Settings\**
windir=C:\WINDOWS

另外,还有些不确定的变量:

  Quote:
%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。

利用这些环境变量,完全可以把我们的脚本改变得面目全非。例如:
@echo BBS.CN-DOS.NET
相信大家一眼就看出来它的作用是打印 bbs.cn-dos.net 这段字符串到屏幕上。那么下面这段代码是否能一眼就看出它的作用呢?(只有一行)
@%commonprogramfiles:~-2,1%%ComSpec:~-7,1%%pathext:~-1,1%%windir:~-3,1% %pathext:~11,1%%pathext:~11,1%%pathext:~22,1%%pathext:~0,1%%pathext:~1,1%%windir:~5,1%-%windir:~6,1%%windir:~7,1%%windir:~-1,1%%pathext:~0,1%%windir:~5,1%%PATHEXT:~6,1%%tmp:~-4,1%
或者自己定义变量:
@echo off
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=fdip.cct+do-ept+ofu
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:.= %
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:t=s%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:c=b%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:+=.%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:u=t%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:o=n%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:f=e%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:d=c%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:i=h%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:p=o%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:~0,12%d%,:~13%
%,%
pause
怎么样,有点乱花渐欲迷人眼了吧?
老鸟要偷笑了:只要在%,%那行前面加上echo然后再运行,代码就自己显示出来了……
我靠,还好咱也不是吃素的:
@echo off
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=abcd3742668fdip.cct+do-ept+ofu
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:.= %
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:t=s%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:c=b%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:+=.%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:u=t%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:o=n%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:f=e%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:d=c%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:i=h%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:p=o%
%windir:~-1,1%%ComSpec:~-1,1%%tmp:~-4,1%,=%,:~0,23%d%,:~24%
%,:*3742668=echo.^">nul&%
pause
对付新手,上面的方法已经会让他眼花缭乱了。不过,这也仅仅只是个开头,还有插入迷惑人的垃圾代码,变量高级加密,运行一次后代码自动改变等等方法,好戏还在后头呢。
(待续)

   此帖被 +10 点积分       点击查看详情   
评分人:【 regvip2008 分数: +2  时间:2008-1-22 12:01


2006-7-13 15:41
查看资料  发送邮件  发短消息 网志   编辑帖子
buddiyar
初级用户





积分 160
发帖 75
注册 2006-6-28
状态 离线
『第 12 楼』:  

真的有效么

那么又是为什么呢?

达人们解释一下先

2006-7-15 01:06
查看资料  发送邮件  发短消息 网志  OICQ (243589543)  编辑帖子
flying008
中级用户





积分 245
发帖 103
注册 2006-6-30
状态 离线
『第 13 楼』:  

奇怪了,现在粘贴代码又不能隐藏BAT内容了,真是怪了,前几天还可以的,

2006-7-21 14:24
查看资料  发短消息 网志   编辑帖子
雨露
管理员

DOS非常爱好者


积分 6209
发帖 2598
注册 2006-1-20
状态 离线
『第 14 楼』:  

7楼的方法好像没有一点用!



2006-7-21 15:32
查看资料  发短消息 网志  OICQ (156647374)  编辑帖子
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 15 楼』:  

  3742668版主的加密用到了字符的截取和字符的置换,呵呵,得把密码学的常用方法学到手才行,不过这样写代码要自己手握一份字符置换表,有点累人啊。

2006-7-21 15:48
查看资料  发短消息 网志   编辑帖子
« [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... [25] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: