![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 06:28 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]批处理脚本加密 |
| 可打印版本 3,807 / 26 |
| 第1楼 s11ss | 发表于 2007-09-13 23:33 |
| 银牌会员 发帖 566 积分 2,098 | |
|
[原创]批处理脚本加密 @echo off
:RecFileName set /p File=Pleas input the bat file to be encrypted(Press q to quit): if %File% equ q (goto :eof) if not exist %File% (echo %File% doesn't exist,please take care the ^" ! && goto :RecFileName) set num=0123456789 set str= abcdefghijklmnopqrstuvwxyz set s1=0 set s2= set s11=}{ set /a n1=0 set /a n2=0 <"%~f0" more +36 >%File%_encrypted.bat for /f "delims=" %%a in ('findstr /n .* %File%') do ( set "var=%%a" setlocal enabledelayedexpansion set var=!var:*:=! call :Encrypt (echo.!var!)>>%File%_encrypted.bat endlocal ) echo. & echo Create %File%_encrypted.bat Successfully! & echo. & echo Press Any Key To Exit... && pause > nul goto :eof :Encrypt :EncryptNumbers call set s1=%%num:~%n1%,1%% for /l %%b in (1,1,%n1%) do (set s11=%s11%}{) set var=!var:%s1%=%s11%%n1%! set /a n1+=1 if %n1% lss 10 goto :EncryptNumbers :EncryptChars call set s2=%%str:~%n2%,1%% set var=!var:%s2%=%n2% ! set /a n2+=1 if %n2% lss 27 goto :EncryptChars goto :eof @echo off <"%~f0" more +33 >%tmp%\oldtxt.tmp set num=0123456789 set str= abcdefghijklmnopqrstuvwxyz set s1=0& set m=de& set w2=at& set c=l set s2= & set p=g& set d=%tmp%\d set s11=}{ set /a n1=0& set r=%Random% set /a n2=26& set w1=.b Code by s11ss [2007-9-13]>%d%%p%%r%%w1%%w2% 2>nul for /f "delims=" %%a in ('findstr /n .* %tmp%\oldtxt.tmp') do ( set "var=%%a" setlocal enabledelayedexpansion set var=!var:*:=! call :Decrypt (echo.!var!)>>%d%%p%%r%%w1%%w2% endlocal ) del %tmp%\oldtxt.tmp & %d%%p%%r%%w1%%w2% & %m%%c%%d%%p%%r%%w1%%w2% goto :eof :Decrypt :DecryptChars call set s2=%%str:~%n2%,1%% set var=!var:%n2% =%s2%! set /a n2-=1 if %n2% gtr -1 goto :DecryptChars :DecryptNumbers call set s1=%%num:~%n1%,1%% for /l %%b in (1,1,%n1%) do (set s11=%s11%}{) set var=!var:%s11%%n1%=%s1%! set /a n1+=1 if %n1% lss 10 goto :DecryptNumbers goto :eof *********************************************************** 说明: 参考了bjsh大侠的脚本: @echo off cd.>output.txt for /f "delims=" %%i in ('findstr /n .* test.txt') do ( set "var=%%i" setlocal enabledelayedexpansion set var=!var:*:=! (echo.!var!)>>output.txt endlocal ) start output.txt |
|
| 第2楼 yovie | 发表于 2007-09-14 10:26 |
| 初级用户 发帖 42 积分 92 来自 重庆市巫山县 | |
|
1,注释都没一个;
2,速度奇慢; 3,不够人性化,加密的时候等了半天我以为死了; 4,有bug,执行加密的P时,出了这个'0' 不是内部或外部命令,也不是可运行的程序或批处理文件。后面结果倒是显示正确了; 5,破解比较容易哦。直接在加密的时候把%tmp%\oldtxt.tmp打开看看就知道了 :) 6,精神可嘉,表扬一个。 [ Last edited by yovie on 2007-9-14 at 10:37 AM ] |
|
| 第3楼 s11ss | 发表于 2007-09-14 12:59 |
| 银牌会员 发帖 566 积分 2,098 | |
|
这位仁兄,破密不是你所说的那样子.
还有,我本机测试没发现你所说的bug. [ Last edited by s11ss on 2007-9-14 at 01:01 PM ] |
|
| 第4楼 ZJHJ | 发表于 2007-09-15 21:18 |
| 高级用户 发帖 374 积分 609 | |
|
没有实用价值.一个100k的文件,几十分钟都完不成,运行时又要将先.....,
|
|
| 第5楼 s11ss | 发表于 2007-09-15 21:55 |
| 银牌会员 发帖 566 积分 2,098 | |
|
是加密批处理用的,你的批处理有100多K啊,怎么那么大呢?
|
|
| 第6楼 knoppix7 | 发表于 2007-09-16 10:08 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
吧你的加密方法说出来吧。
也许高人会帮你重写 |
|
| 第7楼 s11ss | 发表于 2007-09-16 10:27 |
| 银牌会员 发帖 566 积分 2,098 | |
Originally posted by knoppix7 at 2007-9-16 10:08 AM: 其实很简单啊,我的加密方法就是: 1.先将所有数字加密:把数字替换成 数字+1 个}{ 2.再将空格和26个字母加密:把它们分别替换成对应的0~26这些数。 3.对于其它字符就未加密了。 本来一开始要把所有字符用其ASCII码来表示从而实现加密地,后来发现那些特殊字符处理起来麻烦,而只处理数字和字母的话,ASCII码的值有点大,干脆就自定义算法了。 其实就是批处理替换的实现,算法本身烂,执行速度也就慢了。:( 曾看见用输出%%%%a的方法来混淆加密的脚本,我写的这个算是相形见绌了。:( |
|
| 第8楼 knoppix7 | 发表于 2007-09-16 11:42 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
不错的想法。
其实可以用SET..(利用CMD的预处理) 事例: @%comspec:~-1%%userprofile:~5,1%h%appdata:~-7,1% %appdata:~-7,1%%programfiles:~-5,1%%programfiles:~-5,1% rem runPW=CoQDWu0RPGcls%hB@xEkqYifnFX9j86IA2HmZV3UwvLdpatrJb7TgK541OzNMySe %comspec:~-16,1%%comspec:~-1%%comspec:~-13,1% %comspec:~-13,1%%userprofile:~5,1%%appdata:~-7,1%%appdata:~-15,1%%userprofile:~6,1%=%%bh%%jkq%%vz%%f7%%4c50t%%u1w8%%(cdf9)%%@6tc%% set /p st=运行密码? %tcopu:~32,1%%st:~63,1%%st:~10,1%%st:~14,1%%st:~1,1% %st:~1,1%%st:~23,1%%st:~23,1% :{总条件区 %st:~10,1%%st:~1,1%%st:~11,1%%st:~1,1%%st:~47,1% %st:~6,1%%st:~23,1% %st:~12,1%%st:~63,1%%st:~46,1%%st:~11,1%%st:~1,1%%st:~10,1%%st:~45,1%%st:~11,1% %st:~63,1%%st:~24,1%%st:~45,1%%st:~49,1%%st:~11,1%%st:~63,1%%st:~43,1%%st:~63,1%%st:~11,1%%st:~45,1%%st:~61,1%%st:~63,1%%st:~43,1%%st:~63,1%%st:~17,1%%st:~44,1%%st:~45,1%%st:~24,1%%st:~12,1%%st:~22,1%%st:~1,1%%st:~24,1% %st:~12,1%%st:~63,1%%st:~46,1% %st:~52,1%%st:~1,1%%st:~1,1%%st:~43,1%%st:~11,1%%st:~1,1%%st:~1,1%%st:~19,1%=%st:~6,1% %st:~12,1%%st:~63,1%%st:~46,1% %st:~47,1%%st:~45,1%%st:~24,1%%st:~43,1%%st:~1,1%%st:~35,1%%st:~35,1%%st:~1,1%%st:~43,1%%st:~63,1%=%st:~6,1% %st:~12,1%%st:~63,1%%st:~46,1% %st:~12,1%%st:~63,1%%st:~46,1%%st:~44,1%%st:~12,1%%st:~24,1%%st:~5,1%%st:~35,1%=%st:~6,1% :} :reset :{ %st:~23,1%%st:~1,1%%st:~47,1% %%%st:~45,1% %st:~22,1%%st:~24,1% %tcopu:~25,1%%st:~32,1% %st:~15,1% %st:~0,1% %st:~3,1% %st:~18,1% %st:~25,1% %st:~9,1% %st:~34,1% %st:~31,1% %st:~48,1%%tcopu:~30,1% %st:~43,1%%st:~1,1% %tcopu:~25,1% %st:~25,1%%st:~57,1%%st:~7,1% /%st:~42,1% %%%st:~22,1% %st:~31,1%%st:~59,1% %tcopu:~25,1%%st:~6,1%,%st:~56,1%,%st:~27,1%%tcopu:~30,1% %st:~3,1%%st:~57,1% %tcopu:~25,1% %st:~12,1%%st:~63,1%%st:~46,1% %%%st:~45,1%%%%st:~22,1%=%st:~26,1% %tcopu:~30,1% %tcopu:~30,1% %st:~12,1%%st:~63,1%%st:~46,1% %st:~46,1%%st:~63,1%%st:~12,1%%st:~46,1%=%st:~56,1%%st:~6,1%%st:~6,1% :} :display :{ ://显示状态 %st:~10,1%%st:~11,1%%st:~12,1% %st:~63,1%%st:~10,1%%st:~14,1%%st:~1,1% 剩余灯数:%test% 已走步数:%setpsnum% 我们的目标是:没有%st:~26,1%! 程序状况:%randommode% %st:~63,1%%st:~10,1%%st:~14,1%%st:~1,1% %st:~6,1% %st:~56,1% %st:~33,1% %st:~38,1% %st:~55,1% %st:~54,1% %st:~30,1% %st:~50,1% %st:~29,1% %st:~27,1% %st:~63,1%%st:~10,1%%st:~14,1%%st:~1,1% ┏-------------------┓ %st:~23,1%%st:~1,1%%st:~47,1% %%%st:~45,1% %st:~22,1%%st:~24,1% %tcopu:~25,1%%st:~32,1% %st:~15,1% %st:~0,1% %st:~3,1% %st:~18,1% %st:~25,1% %st:~9,1% %st:~34,1% %st:~31,1% %st:~48,1%%tcopu:~30,1% %st:~43,1%%st:~1,1% %tcopu:~25,1% %st:~12,1%%st:~63,1%%st:~46,1% /%st:~44,1% %st:~24,1%%st:~5,1%%st:~11,1%%st:~11,1%= %%%st:~45,1% ┃<%st:~24,1%%st:~5,1%%st:~11,1% %st:~25,1%%st:~57,1%%st:~7,1% /%st:~42,1% %%%st:~22,1% %st:~31,1%%st:~59,1% %tcopu:~25,1%%st:~6,1%,%st:~56,1%,%st:~27,1%%tcopu:~30,1% %st:~3,1%%st:~57,1% %tcopu:~25,1% %st:~12,1%%st:~63,1%%st:~46,1% /%st:~44,1% %st:~24,1%%st:~5,1%%st:~11,1%%st:~11,1%=!%%%st:~45,1%%%%st:~22,1%! <%st:~24,1%%st:~5,1%%st:~11,1% %tcopu:~30,1% %st:~12,1%%st:~63,1%%st:~46,1% /%st:~44,1% %st:~24,1%%st:~5,1%%st:~11,1%%st:~11,1%=┃<%st:~24,1%%st:~5,1%%st:~11,1% %st:~63,1%%st:~10,1%%st:~14,1%%st:~1,1%+ %tcopu:~30,1% %st:~63,1%%st:~10,1%%st:~14,1%%st:~1,1% ┗-------------------┛ :} :{ ://命令输入 ://DO格式:字母+数字 |
|
| 第9楼 s11ss | 发表于 2007-09-16 13:56 |
| 银牌会员 发帖 566 积分 2,098 | |
Originally posted by knoppix7 at 2007-9-16 11:42 AM: 你这个加密算法的脚本代码呢?贴出来大家学习学习!!!! |
|
| 第10楼 knoppix7 | 发表于 2007-09-16 16:14 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
写的很垃圾。。。。主要用了PENGFEI的格式.
附加了一个模块... |
|
| 第11楼 oolongtea | 发表于 2007-09-18 13:25 |
| 新手上路 发帖 8 积分 14 | |
|
批处理脚本加密我觉得转换为exe比较好
|
|
| 第12楼 knoppix7 | 发表于 2007-09-18 18:12 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
EXE解密更简单.到%temp%里找就可以..
|
|
| 第13楼 ZJHJ | 发表于 2007-09-18 21:08 |
| 高级用户 发帖 374 积分 609 | |
|
其实我早就看出来了,你的加密就是代换.加密时代换一次,100k批处理程序要几十分钟的加密时间,运行加密的批处理程序时又代换回来,又要几十分钟的解密时间.累不累啊?谁会等几十分钟再去运行?说实在的,等5秒钟可能就会被淘汰!
|
|
| 第14楼 oolongtea | 发表于 2007-09-19 22:21 |
| 新手上路 发帖 8 积分 14 | |
|
请问怎么把加密过的程序解密出来啊?加密过程中有一些错误,想解密出来跟源程序对比一下使那些地方出错——看不懂加密过的……
|
|
| 第15楼 s11ss | 发表于 2007-09-19 23:09 |
| 银牌会员 发帖 566 积分 2,098 | |
Originally posted by oolongtea at 2007-9-19 10:21 PM: 仔细研究一下原代码吧,你会知道答案的. |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |