背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读内容

Flash文件的加密技术详细解析

[日期:2008-05-08] 来源:  作者: [字体: ]

  加密方法流传不少,此处只谈我所知的较为实用的方法:

  更改后缀,避开 Flash Saver 等下载工具

  此方法可有效避开 Flash Saver 等下载工具。使提取者不得不从缓存中查找文件,一定程度上增加了提取难度。后缀可改为 gif、jpg、txt 等等。虽然可以更改后缀,然而在插入到网页时,仍然需要以 swf 的形式插入,使用此 swf 来加载改过后缀的影片。

  限制 Flash 在指定域名/网址中播放 (Flash 防盗链)

 

  url = "http://www.zhugao.cn";

  /*
以下判断网址的前 20 个字符(字符数根据你的网址作相应修改),如果与"url"不一致则播放失败。注:swf 可以放在任意目录下,只要网址的前 20 个字符是正确的。
*/

  if(_url.substring(0, 20)<>url){
   gotoAndStop(2);

  /*
这里可以做一些东西,例如:将发布设置中的“本地回放安全性”设为“只访问网络”,然后在这里做无数的弹窗
   onEnterFrame = function(){
   getURL("http://www.aiflash.net", "_blank");
   }
*/

   }else{
    gotoAndPlay(3); //跳到正常播放
  }
 

  为了便于阅读,以下是没有注释的代码:

  url = "http://www.aiflash.net";
  if(_url.substring(0, 20)<>url){
   gotoAndStop(2);
  }else{
   gotoAndPlay(3);
  }
 

  如果要允许多个域名,可以这样写:

url = "http://www.aiflash.net";
url2 = "http://aiflash.net";
if((_url.substring(0, 20)==url) || (_url.substring(0, 16)==url2)){
  gotoAndPlay(3);
}else{
  gotoAndStop(2);
}
 


  注意:用此方法,设计过程中导出时的技巧:
  用IE打开先打开指定目标网址,以避免在导出时频繁弹出窗口,如果无效,请将默认浏览器设置成IE,关闭导出时的player窗口即可继续编辑。有时Flash软件会因此发生错误而被强行结束,导出前请保存文档,切记!

  常用加密工具

  ·SWF Encrypt
  可有效防止目前流行的几乎所有破解工具对其所加密作品的AS查看。2006年10月更新为3.0.12,尽管加密后文件仍然有明显的增大(视原swf的复杂程度,增大幅度有所不同),然而令人振奋的是,已经支持放射状渐变,支持Flash8.0。加密技巧:分解swf逐个加密,以尽量避免加密后单个文件体积庞大的问题。
  ·Flashincrypt
  可轻易防止闪客精灵目前的版本对其所加密作品的AS查看,加密后的文件几乎保持原文件大小。遗憾的是不能防止 Action Script Viewer 5.0 以上的版本。

  适当与javascript结合

  加密JS,从而实现间接加密swf。相关工具及例子:

  ·T4nk JS混淆工具
   用于javascript的混淆加密。
  ·Encrypt HTML
   加密网页脚本,包括 HTML source code, javascript, VBScript, text, links and graphics 等。
  ·从Flash到JavaScript的通讯,从JavaScript到Flash的通讯
  ·控制 Flash Player 的 JavaScript 方法一览表:
  ·播放动画:Play()
   例:(网页中的 Flash id).Play();
  ·停止动画:StopPlay()
  ·动画是否正在播放:IsPlaying()
  ·跳转到某帧:GotoFrame(frame_number)
  ·获取动画总帧数:TotalFrames()
  ·回传当前动画所在帧数:CurrentFrame()
  ·使动画返回第一帧:Rewind()
  ·放大指定区域:SetZoomRect(left,top,right,buttom)
  ·改变动画大小:Zoom(percent)
  ·使动画在 x,y 方向上平移:Pan(x_position,y_position,unit)
  ·返回动画被载入的百分比:PercentLoaded()
  ·加载动画:LoadMovie(level_number,path)
   例:(网页中的 Flash id).LoadMovie(0, "***/***.swf");
  ·movie_clip 跳转到指定帧数:TGotoFrame(movie_clip,frame_number)
   例:(网页中的 Flash id).TGotoFrame("_root.实例名.次实例名",帧数);
  ·movie_clip 跳转到指定标签:TGotoLabel(movie_clip,label_name)
   例:(网页中的 Flash id).TGotoLabel("_root.实例名.次实例名","标签名");
  ·回传 movie_clip 当前帧:TCurrentFrame(movie_clip)
  ·回传 movie_clip 当前标签:TCurrentLabel(movie_clip)
  ·播放 movie_clip:TPlay(movie_clip)
  ·停止 movie_clip 的播放:TStopPlay(movie_clip)
  ·获取变量:GetVariable(variable_name)
  ·变量赋值:SetVariable(variable_name,value)
  ·call 指定帧上的 action:TCallFrame(movie_clip,frame_number)
  ·call 指定标签上的 action:TCallLabel(movie_clip,label)
  ·获取 movie_clip 的指定属性:TGetProperty(movie_clip,property)
  ·设置 movie_clip 的指定属性:TSetProperty(movie_clip,property,number)

  在Word中插入Flash

  测试环境:WindowsXP / Office2003
  可用在独立文件给客户看的时候,尽管可以用前述方法从word中提取swf,然而此方法仍然具有一定防范效果。
  ·新建一Word文档并保存。
  ·在Word中依次单击下拉菜单“视图”→“工具栏”→“控件工具箱”。
  ·在“控件工具箱”中点击“其他控件”,选择列表中的“Shockwave Flash Object”。
  ·右键单击插入进来的Flash播放控件,选择“属性”。
  ·在“属性”窗口的“Movie”栏输入Flash动画的路径及文件名,需要用绝对路径,可采用以下两种:
  file:///C:/test/test.swf
  http://www.aiflash.net/test.swf
  ·将“EmbedMovie”项设置为“True”,使Flash嵌入到Word中。“Height”和“Width”分别为Flash的高和宽。“Scale”默认为ShowAll,为缩放模式,始终显示Flash中的所有内容,如果改为NoScale则始终按1:1比例,不会缩放Flash中的内容。
  ·单击控件工具箱上的“退出设计模式”按钮,在Word中即可播放Flash了。再次按下该按钮则暂停播放,进入设计模式。如当时未显示Flash,请保存退出Word,再打开该Word文档,点击“退出设计模式”按钮即可看到Flash。

  打包成加壳exe
  用Flash的默认程序打包的exe很容易转成swf,SWFKit是一款很不错的加壳打包软件,不易被还原。


 

阅读:
录入:admin

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
内容查询