2011年10月24日 星期一

SWF Decompiler vs. SWF Protection

作為Flash 開發者, 大家一定要知道反編譯軟件(Decompiler) 與加密軟件(Encrypt) 的存在. 以下兩個為較多人所認識的軟件:
  • Sothink SWF Decompiler
    它可以輕鬆的將Flash 影片中所有元件都分組顯示, 包括圖片, 向量圖, 變形向量圖, 聲音, 字體, 視訊,文字, 按鈕, 片段動畫, 影格等基本元件, 還可以完整的解析有關動作腳本Action Script 的代碼.

  • Magic HTML SWFProtection
    是一款SWF 文件加密工具,可以阻止市場上大多數已知的SWF 反編譯工具. 保護你的Action Script 腳本語言,阻止SWF 的反編譯.

加密後的Action Script 腳本:
private function _17bddb918917() : void
{
  if (false)
  {
  }
  this._aadd1b171b181b18b9 = ByteArray(new (getDefinitionByName("\n\x0b\t\x18\x17\x18\r\r\x18\x17") as Class)());
  this._aadd1b171b181b18b9.endian = "littleEndian";
  this._aadd1b171b181b18b9.position = 0;
  this._9ba17ab171717 = new Loader();
  this.addChildAt(this._9ba17ab171717, 0);
  this._1ba181791b1bd179d = new LoaderContext();
  this._1ba181791b1bd179d.applicationDomain = new ApplicationDomain();
  this._9ba17ab171717.loadBytes(this._aadd1b171b181b18b9, this._1ba181791b1bd179d);
  ;
  if (false)
  {
  }
  return;
}// end function

加密後的結構:


我們可以使用反編譯軟件來看看別人的作品, 了解個中的技術細節, 但請不要作為己用. 對原創者和自己不會是一件好事.
若明白原創的重要性, 我們更應該懂得保護自己的作品. 雖然沒有一個完美的保護方案, 但我們可以提升門檻, 使有心人卻步.

沒有留言: