主题:  关于diropener及其diy(转自MMCHINA)

Call Me Simon

职务:普通成员
等级:2
金币:2.0
发贴:646
#12000/12/12 18:21:56
这是donlee在macromediachina的director 论坛的一个贴子, 很有用, 我也没问donlee 就转过来了, :):) 顺便介绍一下, donlee 是那边的版主。
引用:

许多朋友对diropener感兴趣,下面谈一点自己的看法:
我们在director中今后制作了dir,这是不加保护的源文件,然后通过xtra、aftershock或publish来转换成用director不能打开的dxr或dcr,无论哪种格式,其内部的script均经过编译,至今我尚不知道有什么办法从上述文件中得到script源代码。
实际上director提供了一个savemovie,例如,我们在author状态下通过message输入savemovie "c:\myback.dir"就可以得到当前文件的一个副本。
对于dxr和dcr,我们可以用类似的方法,用miaw作为桥梁来传送savemovie,假设要打开受保护的文件protected.dxr(dcr),我们可以这样做:
on startmovie
miaw=window("D:\protected.dxr")
tell miaw
savemovie "D:\unprotected.dir"
end
forget(miaw)
end
一般情况下就可以得到与diropener等价的结果,如果愿意可以通过fileio等xtra上fileopen等对话框,经过编译也做一个opener。
但这种方法不是万能的,如果我要保护我的movie,在movie中加上
on savemovie
alert("No! No!") --或其它的什么,甚至nothing
end
那么,我自己也无能为力了。
我有点吃惊的是diropener的作者使用了directos,不知道有什么特别之处。我用d8作了一个movie,加上了on savemovie,diropener报告由于版本....,无法...,不知d7的类似movie可否用diropener打开。我在机器时没有d7,麻烦试过的朋友告诉我一声.

编辑历史:[这消息被草原风编辑过(编辑时间2001-11-04 04:45:32)]


wws2000

职务:普通成员
等级:1
金币:1.0
发贴:126
#22000/12/14 8:11:22
这个好的贴子,怎么没有回应,有点枉费了flyingbird版主的一片苦心。
以前我用diropener的确发现有些dcr或dxr文件打不开,反而用savemovie命令倒可以,另外我发现除了让miaw保存自己以外,还可以用以下方法:
go to "xxx.dxr"
savemovie "unprotected.dir"
这种方法成功机会好像不如用miaw保存的方法。

但这几种方法正如donlee所说并不是万能的,有些根本打不开,尤其是macromedia本家的一些作品我不知道他们用什么方法加的密。好像也有一个什么“不能完成请求的命令”的提示来着。

自从flyingbird公布opener以来,我也在琢磨director作品的安全性问题,并发现了一个“让别人不能看您的dxr或dcr文件的方法”,不过还不太成熟,现在已经到上班时间了,等下班后我尽快贴出来。



toto

职务:版主
等级:5
金币:17.0
发贴:2582
#32000/12/21 1:16:18
flyingbird 在DR6和7中同样能实现这个alert功能,真的就没有别的办法看到dxr中的源程序吗?

wws2000你能把你的 go to 无法通过,能不能再写的详细些



wws2000

职务:普通成员
等级:1
金币:1.0
发贴:126
#42000/12/21 8:07:54
上面已经写得很明白了,不管怎么说都是让打算被破解的movie执行一个savemovie的命令,很简单都是两句命令:
方法1:
open window "protected.dxr"
tell window"protected.dxr" to savemovie "unprotected.dxr"
方法2:go to window "protected.dxr"
savemovie "unprotected.dxr"
方法2不如方法成功率高,因为有时go to 执行后不等待,就执行下一条因此有时可能保存成跳转前的movie, 不过倒是可以改造一下即:
if the movie="protected.dxr" then savemovie "unprotected.dxr"


另外,donlee 介绍了让dxr或dcr无法破解的方法下面我介绍一下让它们“连看都无法看”的方法:

1、建一共享cast库,让除播放器movie之外的所有movie与之连接。
2、在该库内建一movie script 演员,其lingo代码如下:


on startmovie
global password
if password<>"wws2000" then quit --wws2000为密码值

end

3、让播放器movie运行一开始先输入密码,搞一个密码登录。

on mouseup me
global password
if member("password").text="wws2000" then
go to "start"
password="wws2000"
else
quit
end if
end


4、打包播放器为exe。


以上方法大伙看看行不行?



荣誉版主

职务:普通成员
等级:1
金币:0.0
发贴:82
#52000/12/21 17:02:41
不行,我还是能知道你的密码



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#62000/12/21 20:50:38
可以读时间再加算法(分以上,秒太快,自己都进不去)



荣誉版主

职务:普通成员
等级:1
金币:0.0
发贴:82
#72000/12/22 13:13:21
dxr,dcr安全漏洞很多。可以轻松的得到全局变量的值以及属性变量的值。



toto

职务:版主
等级:5
金币:17.0
发贴:2582
#82000/12/22 13:34:21
cjx2000能告诉我怎么得到吗?



cooly

职务:普通成员
等级:1
金币:0.0
发贴:11
#92000/12/22 13:36:49
dxr用savemovie转成dir后,好像script都没啦!!!不是吗?我这儿是这样。



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#102000/12/22 23:17:32
这样呀,书上还说D加密%^$^$&%^&%&% 我劈



荣誉版主

职务:普通成员
等级:1
金币:0.0
发贴:82
#112000/12/23 0:12:15
如果把dxr或dcr作为外部文件(注意不要把加密的这两个改名成dir,否则导不进来)导入角色表中,把脚本开关打开,在消息窗中按下跟踪代码按钮。天哪,全局变量、属性变量全都出现。简直就大公开,如果你有密码,嘿嘿,暴露了。就算是投影机(exe)照看不误。全是消息窗的错。不过我在研究对象的方式,如何避免,办法是有,但太麻烦了,谁愿意多化时间,但真是要检测密码方式,还是认真一点,尽量避免吧。