中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] [3] »
作者:
标题: 也来玩把加密新思路: 上一主题 | 下一主题
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 16 楼』:  

暂时看不懂.

不过我看不懂的东西, 应该都是好东西. 再加上楼主帮助过我, 顶了再说.



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-23 17:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 17 楼』:  

下面这个就是我用这个思路写的批量加密程序加密的一个小批处理,大家试试着破解下看:
@echo off
set /p code=请输入运行密码:
cls&call :zw
%.33%%.31%%.4%%.25%%.10% %.10%%.14%%.14%&%.19%%.31%%.6%%.5%%.10%%.4%%.27%%.5% %.31%%.18%%.27%%.32%%.5%%.31%%.22%%.31%%.5%%.27%%.17%%.31%%.22%%.31%%.15%%.2%%.27%%.18%%.19%%.13%%.10%%.18%
%.19%%.31%%.6% "%.30%%.27%%.28%=%.11% %.29% * %.24%"
for /f "tokens=1-4 delims= " %%a in ("%var%") do call :lp %%a %%b %%c %%d
%.2%%.27%%.1%%.19%%.31%>%.18%%.1%%.5%&%.8%%.10%%.6%%.10% :%.31%%.10%%.14%
:lp
for /l %%i in (1,1,9) do (
    for /l %%j in (1,1,%%i) do (
        set /a a=%%i%1%%j
        %.13%%.14% !%.27%! %.5%%.19%%.19% 10 %.19%%.31%%.6% %.27%= !%.27%!
        set str=!str! %%i%1%%j=!a!
        if %%i equ %%j echo !str!&set "str="
    )
)
if "%1" equ "/" goto :eof
%.19%%.25%%.13%%.14%%.6%
goto lp
pause>nul&goto :eof
:zw
for %%i in (%code%) do (set /a n+=1&call,set .%%n%%=%%i)
破解(不是猜)出来的,没说的我加15分。

[ Last edited by zw19750516 on 2008-6-23 at 05:56 PM ]



批处理之家新域名:www.bathome.net
2008-6-23 17:54
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 18 楼』:  

u p 运 c l t 运 g 运 o + 运 i f x 运 y n s 运  运 d 运 / h 运 a r - v e b @

没有用到的都用“运”字代替了~ 九九法则~^_^

   此帖被 +6 点积分       点击查看详情   
评分人:【 PPdos 分数: +6  时间:2008-6-23 20:52




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-23 20:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
PPdos
高级用户




积分 783
发帖 268
注册 2006-12-26
状态 离线
『第 19 楼』:  

迟到了。。没赶上**!

楼上写出来 我就说下思路好了

因为变量是有序赋值的 所以找到出现的最大位数 即33

也就是密文最少要33位(空格隔开的)

然后再根据批处理习惯特征来判断吧:

比如

  Quote:
>%.18%%.1%%.5%

既然出现了">"符号 很容易让我们尝试 ">nul"

那么 我就可以先假定密文的第 18位为n 密文 第一位为 u 密文第五位 为l

依次类推:

  Quote:
&%.8%%.10%%.6%%.10% :%.31%%.10%%.14%

出现了衔接符号& 和标签 标记冒号":" 我们调用标签除了goto 就是call

goto 的形式 很满足 8 10 6 10 所以我们假定 密文第8位 为"g" 第十位为"o"
第六位为 "t"

如果不是靠猜 那还真难弄出来

[ Last edited by PPdos on 2008-6-23 at 02:24 PM ]



菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
2008-6-23 21:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 20 楼』:  

天哪,看了解释也看不懂啊。哪位好心人能耐心解释下,让我这个老年纪的人也学学吗?

特别是 %.33%%.31%%.4%%.25%%.10% 这种咚咚,看了就犯晕,整个儿就是云里雾里,楞是不懂啥名堂。

我想从简单的学起, 也就是楼主的第一个例子开始。

[ Last edited by quya on 2008-6-23 at 09:32 PM ]



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-23 21:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by quya at 2008-6-23 09:30 PM:
天哪,看了解释也看不懂啊。哪位好心人能耐心解释下,让我这个老年纪的人也学学吗?

特别是 %.33%%.31%%.4%%.25%%.10% 这种咚咚,看了就犯晕,整个儿 ...

@echo off
set /p code=请输入运行密码:
cls&call :zw
%.33%%.31%%.4%%.25%%.10% %.10%%.14%%.14%&%.19%%.31%%.6%%.5%%.10%%.4%%.27%%.5% %.31%%.18%%.27%%.32%%.5%%.31%%.22%%.31%%.5%%.27%%.17%%.31%%.22%%.31%%.15%%.2%%.27%%.18%%.19%%.13%%.10%%.18%
%.19%%.31%%.6% "%.30%%.27%%.28%=%.11% %.29% * %.24%"
for /f "tokens=1-4 delims= " %%a in ("%var%") do call :lp %%a %%b %%c %%d
%.2%%.27%%.1%%.19%%.31%>%.18%%.1%%.5%&%.8%%.10%%.6%%.10% :%.31%%.10%%.14%
:lp
for /l %%i in (1,1,9) do (
    for /l %%j in (1,1,%%i) do (
        set /a a=%%i%1%%j
        %.13%%.14% !%.27%! %.5%%.19%%.19% 10 %.19%%.31%%.6% %.27%= !%.27%!
        set str=!str! %%i%1%%j=!a!
        if %%i equ %%j echo !str!&set "str="
    )
)
if "%1" equ "/" goto :eof
%.19%%.25%%.13%%.14%%.6%
goto lp
pause>nul&goto :eof
:zw
for %%i in (%code%) do (set /a n+=1&call,set .%%n%%=%%i)

红色那句,对输入的code依次进行赋值...
比如code的值是a b c d e f g。。。。。。。。。。10(10在第33位)
当n等于1时 .1的值就是a
当n等于2时 .2的值就是b
当n等于3时 .3的值就是c
.... .....
当n等于33时 .33的值就是10
依次。。。直到全部赋值完毕
然后返回主过程,继续向下执行。。。
%.33% 会扩展为10
比如%.31%的值为h
%.4%的值为z
%.25%的值为l
%.10%的值为w

%.33%%.31%%.4%%.25%%.10%相当于执行10hzlw,这不是命令,所以会出现“不是内部或外部命令”的错误信息。。。
只有在赋值正确之后才会正确执行
正确的赋值应该是:
.33=@
.31=e
.4=c
.25=h
.10=o
所以%.33%%.31%%.4%%.25%%.10% 就是@echo 正确的命令。。。
而赋值是否正确,完全取决于输入密码时的字符顺序~
隐藏符号@只有在33位时才会被正确赋值。。。依此。。。

我讲的太繁琐。。。



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-23 22:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 22 楼』:  

我太笨了,还是不懂。

我只知道 %x%, %y%, %%i, %i, %0 , %1, %2 之类的, 不懂 %.31%,  难道这个 .31和上面我列出的一样意思? 我钻牛角尖了, 因为我从来没看到过变量取.31这样的, 我一直以为那个“.”很高深莫测, 难道我想歪了??

还有 !_5!!_3! 中的“_”也是莫测高深,难道不是? 阿门!

[ Last edited by quya on 2008-6-23 at 10:16 PM ]



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-23 22:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 23 楼』:  



  Quote:
Originally posted by quya at 2008-6-23 10:13 PM:
我太笨了,还是不懂。

我只知道 %x%, %y%, %%i, %i, %0 , %1, %2 之类的, 不懂 %.31%,  难道这个 .31和上面我列出的一样意思? 我钻牛角尖了, 因为我从来没 ...

想复杂了~ 完全可以把.或_去掉~



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-23 22:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 24 楼』:  



  Quote:
Originally posted by pusofalse at 2008-6-23 10:18 PM:


想复杂了~ 完全可以把.或_去掉~

谢谢, 这样我就可以慢慢看了, 我一上来就失去了信心。

不懂再向各位请教, 再次感谢。

另, 我有一点想不通,我的加密没这么复杂, 怎么到现在也没人破我的。



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-23 22:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
PPdos
高级用户




积分 783
发帖 268
注册 2006-12-26
状态 离线
『第 25 楼』:  

老土神仙 这里是给.赋值阿
set .=haha
echo %.%




菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
2008-6-23 22:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 26 楼』:  



  Quote:
Originally posted by quya at 2008-6-23 10:22 PM:


谢谢, 这样我就可以慢慢看了, 我一上来就失去了信心。

不懂再向各位请教, 再次感谢。

另, 我有一点想不通,我的加密没这么复杂, 怎么到现在也没人破我的。

^_^ 我看过你的那篇帖子。。。愣是没找到要解密的东东在哪~



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-23 22:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 27 楼』:  



  Quote:
Originally posted by pusofalse at 2008-6-23 10:43 PM:

^_^ 我看过你的那篇帖子。。。愣是没找到要解密的东东在哪~

在的,要解密的部分我贴出来了, 这儿的楼主也解了1-2步, 但没解到我要求的那一步,绝对不比这儿复杂,但比这儿繁。

原帖在这儿:http://www.cn-dos.net/forum/viewthread.php?tid=41040&fpage=4

[ Last edited by quya on 2008-6-26 at 06:39 PM ]



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-23 22:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 28 楼』:  



  Quote:
Originally posted by pusofalse at 2008-6-23 20:06:
u p 运 c l t 运 g 运 o + 运 i f x 运 y n s 运  运 d 运 / h 运 a r - v e b @

没有用到的都用“运”字代替了~ 九九法则~^_^

我的贴子兄弟基本上都关注过,为防别人猜出来,我还是做了点手脚,如兄弟是解出来的,请贴出这个批处理的原文,也许我还真的是以小人之心度君子之腹了,但兄弟的解是不完全对的,其实这只是给大家看一看我做的这个批量加密程序的效果,如真要求解码,绝对不会是这么简单的事的。



批处理之家新域名:www.bathome.net
2008-6-24 02:12
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 29 楼』:  



  Quote:
Originally posted by PPdos at 2008-6-23 21:22:
迟到了。。没赶上**!

楼上写出来 我就说下思路好了

因为变量是有序赋值的 所以找到出现的最大位数 即33

也就是密文最少要33位(空格隔开的)
...

解的思路正确,也为我下一步加密提了好的意见(我将改得更加面目全非)



批处理之家新域名:www.bathome.net
2008-6-24 02:15
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 30 楼』:  这是源代码


@echo off&setlocal enabledelayedexpansion
set "var=+ - * /"
for /f "tokens=1-4 delims= " %%a in ("%var%") do call :lp %%a %%b %%c %%d
pause>nul&goto :eof
:lp
for /l %%i in (1 1 9) do (
    for /l %%j in (1 1 %%i) do (
        set/a a=%%i%1%%j
        if !a! lss 10 set a= !a!
        set str=!str! %%i%1%%j=!a!
        if %%i equ %%j echo !str!&set "str="
)
)
if "%1" equ "/" goto :eof
shift
goto lp
pause>nul&goto :eof
[ Last edited by pusofalse on 2008-6-24 at 02:47 AM ]

   此帖被 +15 点积分         点击查看详情   
评分人:【 bat-zw 分数: +15  时间:2008-6-24 14:24




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-24 02:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: