Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/anotherbigidea/flash/Unprotector.java


1   /****************************************************************
2    * Copyright (c) 2001, David N. Main, All rights reserved.
3    * 
4    * Redistribution and use in source and binary forms, with or
5    * without modification, are permitted provided that the 
6    * following conditions are met:
7    *
8    * 1. Redistributions of source code must retain the above 
9    * copyright notice, this list of conditions and the following 
10   * disclaimer. 
11   * 
12   * 2. Redistributions in binary form must reproduce the above 
13   * copyright notice, this list of conditions and the following 
14   * disclaimer in the documentation and/or other materials 
15   * provided with the distribution.
16   * 
17   * 3. The name of the author may not be used to endorse or 
18   * promote products derived from this software without specific 
19   * prior written permission. 
20   * 
21   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY 
22   * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
23   * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
24   * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
25   * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
26   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
27   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
28   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
29   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
30   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
31   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
32   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33   ****************************************************************/
34  package com.anotherbigidea.flash;
35  
36  import java.io.*;
37  import com.anotherbigidea.flash.interfaces.*;
38  import com.anotherbigidea.flash.readers.*;
39  import com.anotherbigidea.flash.writers.*;
40  
41  /**
42   * Utility to unprotect a SWF.
43   * First arg is input filename.
44   * Second arg is output filename.
45   */
46  public class Unprotector implements SWFTags 
47  {
48      protected SWFTags writer;
49      
50      public Unprotector( SWFTags writer )
51      {
52          this.writer = writer;
53      }
54      
55      /**
56       * Interface SWFTags
57       */
58      public void header( int version, long length,
59                          int twipsWidth, int twipsHeight,
60                          int frameRate, int frameCount ) throws IOException
61      {
62          writer.header( version, -1, 
63                         twipsWidth, twipsHeight, 
64                         frameRate, frameCount );
65      }
66      
67      /**
68       * Interface SWFTags
69       */
70      public void tag( int tagType, boolean longTag, byte[] contents ) 
71          throws IOException
72      {
73          if( tagType == SWFConstants.TAG_PROTECT ) return; //skip protect tag
74          
75          writer.tag( tagType, longTag, contents );
76      }
77      
78      public static void main( String[] args ) throws IOException
79      {
80          FileInputStream in = new FileInputStream( args[0] );
81          FileOutputStream out = new FileOutputStream( args[1] );
82          
83          SWFWriter writer = new SWFWriter( out );
84          Unprotector unprotector = new Unprotector( writer );
85          SWFReader reader = new SWFReader( unprotector, in );
86          reader.readFile();
87          
88          in.close();
89          out.flush();
90          out.close();
91      }
92  }