/[cvs]/nfo/perl/scripts/fluscate/doc/fluscate.html
ViewVC logotype

Diff of /nfo/perl/scripts/fluscate/doc/fluscate.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by joko, Fri Jul 23 12:13:14 2004 UTC revision 1.5 by joko, Mon Jul 26 16:28:14 2004 UTC
# Line 21  Line 21 
21          <li><a href="#features">Features</a></li>          <li><a href="#features">Features</a></li>
22          <ul>          <ul>
23    
24                  <li><a href="#requests">Requests</a></li>                  <li><a href="#obfuscation">Obfuscation</a></li>
25                  <li><a href="#functions">Functions</a></li>                  <li><a href="#functions">Functions</a></li>
26          </ul>          </ul>
27    
28          <li><a href="#notes">Notes</a></li>          <li><a href="#dependencies">Dependencies</a></li>
         <li><a href="#todo___review">Todo / Review</a></li>  
29          <li><a href="#usage">Usage</a></li>          <li><a href="#usage">Usage</a></li>
30          <ul>          <ul>
31    
32                  <li><a href="#usage__win32__">Usage (win32):</a></li>                  <li><a href="#win32">win32</a></li>
33                  <li><a href="#usage___nix__">Usage (*nix):</a></li>                  <li><a href="#_nix">*nix</a></li>
34            </ul>
35    
36            <li><a href="#development">Development</a></li>
37            <ul>
38    
39                    <li><a href="#todo">Todo</a></li>
40                    <li><a href="#wishlist">Wishlist</a></li>
41                    <li><a href="#notes">Notes</a></li>
42            </ul>
43    
44            <li><a href="#links">Links</a></li>
45            <ul>
46    
47                    <li><a href="#actionscript_decompilers___disassemblers">ActionScript Decompilers / Disassemblers</a></li>
48                    <li><a href="#actionscript_editors___co_">ActionScript Editors &amp; Co.</a></li>
49                    <li><a href="#obfuscators">Obfuscators</a></li>
50                    <li><a href="#misc">Misc</a></li>
51                    <li><a href="#offtopic">Off-Topic</a></li>
52          </ul>          </ul>
53    
54  </ul>  </ul>
55  <!-- INDEX END -->  <!-- INDEX END -->
56    
57  <hr />  <hr />
58  <p>This program is free software; you can redistribute it and/or  <pre>
59  modify it under the terms of the GNU General Public License    This software is Copyright (C) 2004 Andreas Motl
60  as published by the Free Software Foundation; either version 2    Ideas and future AppleScript integration by Holger Marseille.
61  of the License, or (at your option) any later version.</p>    
62  <p>This program is distributed in the hope that it will be useful,    This program is free software; you can redistribute it and/or
63  but WITHOUT ANY WARRANTY; without even the implied warranty of    modify it under the terms of the GNU General Public License
64  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    as published by the Free Software Foundation; either version 2
65  GNU General Public License for more details.</p>    of the License, or (at your option) any later version.
66  <p>You should have received a copy of the GNU General Public License    
67  along with this program; if not, write to the Free Software    This program is distributed in the hope that it will be useful,
68  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.    but WITHOUT ANY WARRANTY; without even the implied warranty of
69  =cut</p>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
70      GNU General Public License for more details.
71      
72      You should have received a copy of the GNU General Public License
73      along with this program; if not, write to the Free Software
74      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.</pre>
75  <p>  <p>
76  <a href="#__index__"><small>back to top</small></a>  <a href="#__index__"><small>back to top</small></a>
77  </p>  </p>
# Line 57  Foundation, Inc., 59 Temple Place - Suit Line 79  Foundation, Inc., 59 Temple Place - Suit
79  <h1><a name="features">Features</a></h1>  <h1><a name="features">Features</a></h1>
80  <p>  <p>
81  </p>  </p>
82  <h2><a name="requests__komplexere_verschlüsselung_als_1__2_____zb_nicht_in_der_numerischen_reihenfolge_sondern_nach_zufallsprinip__21_3_89____random___evtl__constants_nach_abfrage_ersetzen__leider_sehr_aufwendig__bei_vielen_constants___ask___rausgeben_des_arrays_mit_den_neuen_werten_um_evtl_die_obfuscation_rückgängig_zu_machen___undo____push_0_ls__dup_trace_branchiftrue_ls_____after_each_constants_declaration___pollute_">Requests  <h2><a name="obfuscation">Obfuscation</a></h2>
83    - komplexere verschlüsselung als ``-1, -2 ...'' z-b nicht in der numerischen reihenfolge sondern nach  <pre>
84      zufallsprinip (-21,-3,-89)? (-&gt;random)    See ASO Pro: <a href="http://www.genable.com/aso/preview.html">http://www.genable.com/aso/preview.html</a></pre>
   - evtl. constants nach abfrage ersetzen ? leider sehr aufwendig, bei vielen constants (-&gt;ask)  
   - rausgeben des arrays mit den ``neuen'' werten um evtl die obfuscation rückgängig zu machen (-&gt;undo)  
   -  ``    push 0  
          ls:  
          dup  
          trace  
          branchIfTrue ls''  
     ... after each ``constants'' declaration (-&gt;pollute)</a></h2>  
85  <p>  <p>
86  </p>  </p>
87  <h2><a name="functions_fluscate_handles_two_different_styles_of_function_declarations_">Functions  <h2><a name="functions">Functions</a></h2>
88  fluscate handles two different styles of function declarations:</a></h2>  <pre>
89      fluscate handles two different styles of function declarations:</pre>
90  <pre>  <pre>
91    1. &quot;Normal&quot; ones    1. &quot;Normal&quot; ones
92        function mp3Player ('arg1', 'arg2')</pre>        function mp3Player ('arg1', 'arg2')</pre>
# Line 83  fluscate handles two different styles of Line 98  fluscate handles two different styles of
98  <a href="#__index__"><small>back to top</small></a>  <a href="#__index__"><small>back to top</small></a>
99  </p>  </p>
100  <hr />  <hr />
101  <h1><a name="notes__no_function_may_be_called_initialize__rename_it_to__e_g___initialize2__reassembling_will_not_work_otherwise__doesn_t_matter_when_obfuscating_since_function_names_will_be_replaced_of_course___function_names_seem_to_be_work_case_insensitive__shuffle____shuffle___successfully_tested_with_http___download_macromedia_com_pub_flash_showme_win_puzzle_zip__make_sure_1__2__3_______gets_replaced_with__1____2____3________there_are_multiple_caller_lines__callfunction__callmethod__do_we_have_to_take_special_care_to_methods__getmember_and_getvariable_also_do_function_calls___there_are_reserved_function_names_which_must_not_be_replaced_____event_handlers__e_g__onpress_">Notes  <h1><a name="dependencies">Dependencies</a></h1>
102    - no function may be called ``Initialize'', rename it to (e.g.) ``Initialize2'', reassembling will not work otherwise  <pre>
103      &quot;flasm&quot; is required to disassemble swf files, see <a href="http://www.nowrap.de/flasm.html">http://www.nowrap.de/flasm.html</a>
104      ACKs go to Igor Kogan.</pre>
105    <p>
106    <a href="#__index__"><small>back to top</small></a>
107    </p>
108    <hr />
109    <h1><a name="usage">Usage</a></h1>
110    <p>
111    </p>
112    <h2><a name="win32">win32</a></h2>
113    <pre>
114      #&gt; flasm.exe -d puzzle.swf &gt; puzzle.flm
115      #&gt; cat puzzle.flm | perl fluscate.pl &gt; puzzle_fusc.flm
116      #&gt; flasm.exe -a puzzle_fusc.flm</pre>
117    <p>
118    </p>
119    <h2><a name="_nix">*nix</a></h2>
120    <pre>
121      #&gt; ./flasm -d puzzle.swf &gt; puzzle.flm
122      #&gt; cat puzzle.flm | ./fluscate.pl &gt; puzzle_fusc.flm
123      #&gt; ./flasm -a puzzle_fusc.flm</pre>
124    <p>
125    <a href="#__index__"><small>back to top</small></a>
126    </p>
127    <hr />
128    <h1><a name="development">Development</a></h1>
129    <p>
130    </p>
131    <h2><a name="todo">Todo</a></h2>
132    <pre>
133      - provide list of flash event handler names to exclude from symbol replacement</pre>
134    <p>
135    </p>
136    <h2><a name="wishlist">Wishlist</a></h2>
137    <pre>
138      - komplexere verschlüsselung als &quot;-1, -2 ...&quot; z-b nicht in der numerischen reihenfolge sondern nach
139        zufallsprinip (-21,-3,-89)? (-&gt;random)
140      - evtl. constants nach abfrage ersetzen ? leider sehr aufwendig, bei vielen constants (-&gt;ask)
141      - rausgeben des arrays mit den &quot;neuen&quot; werten um evtl die obfuscation rückgängig zu machen (-&gt;undo)
142      -  &quot;    push 0
143             ls:
144             dup
145             trace
146             branchIfTrue ls&quot;
147        ... after each &quot;constants&quot; declaration (-&gt;pollute)
148      - what about other symbols beside &quot;function&quot;s? (e.g. variables) (-&gt;mode)
149      - include list of -&gt;keywords from:
150        <a href="http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/">http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/</a>
151      - replace symbols in multiple files (-&gt;multifile)</pre>
152    <p>
153    </p>
154    <h2><a name="notes">Notes</a></h2>
155    <pre>
156      - no function may be called &quot;Initialize&quot;, rename it to (e.g.) &quot;Initialize2&quot;, reassembling will not work otherwise
157      (doesn't matter when obfuscating since function names will be replaced of course)      (doesn't matter when obfuscating since function names will be replaced of course)
158    - function names seem to be/work case insensitive (shuffle &lt;-&gt; Shuffle)    - function names seem to be/work case insensitive (shuffle &lt;-&gt; Shuffle)
159    - successfully tested with <a href="http://download.macromedia.com/pub/flash/showme/win/puzzle.zip">http://download.macromedia.com/pub/flash/showme/win/puzzle.zip</a>    - successfully tested with <a href="http://download.macromedia.com/pub/flash/showme/win/puzzle.zip">http://download.macromedia.com/pub/flash/showme/win/puzzle.zip</a>
160    - make sure -1, -2, -3, .... gets replaced with '-1', '-2', '-3', ...    - make sure -1, -2, -3, .... gets replaced with '-1', '-2', '-3', ...
161    - there are multiple caller lines: callFunction, callMethod; do we have to take special care to methods?    - there are multiple caller lines: callFunction, callMethod; do we have to take special care to methods?
162    - ``getMember'' and ``getVariable'' also do function calls!    - &quot;getMember&quot; and &quot;getVariable&quot; also do function calls!
163    - there are reserved function names which must not be replaced! (-&gt; event handlers, e.g. ``onPress'')</a></h1>    - there are reserved function names which must not be replaced! (-&gt; event handlers, e.g. &quot;onPress&quot;)</pre>
164  <p>  <p>
165  <a href="#__index__"><small>back to top</small></a>  <a href="#__index__"><small>back to top</small></a>
166  </p>  </p>
167  <hr />  <hr />
168  <h1><a name="todo___review__what_about_other_symbols_beside_functions">Todo / Review  <h1><a name="links">Links</a></h1>
   - what about other symbols beside ``function''s?</a></h1>  
169  <p>  <p>
 <a href="#__index__"><small>back to top</small></a>  
170  </p>  </p>
171  <hr />  <h2><a name="actionscript_decompilers___disassemblers">ActionScript Decompilers / Disassemblers</a></h2>
172  <h1><a name="usage">Usage</a></h1>  <pre>
173      Flasm:
174        <a href="http://www.nowrap.de/flasm.html">http://www.nowrap.de/flasm.html</a>
175        <a href="http://www.opaque.net/~dave/flasm/">http://www.opaque.net/~dave/flasm/</a>
176      Flare: <a href="http://www.nowrap.de/flare.html">http://www.nowrap.de/flare.html</a>
177      Sothink SWF Decompiler: <a href="http://www.srctec.com/flashdecompiler/">http://www.srctec.com/flashdecompiler/</a>
178      Imperator FLA: <a href="http://www.ave-imperator.com/">http://www.ave-imperator.com/</a>
179      SWF Decompiler: <a href="http://www.19.5degs.com/swfdecompiler.php">http://www.19.5degs.com/swfdecompiler.php</a>
180      Gordon: <a href="http://www.futurecandy.com/">http://www.futurecandy.com/</a></pre>
181  <p>  <p>
182  </p>  </p>
183  <h2><a name="usage__win32______flasm_exe_d_puzzle_swf___puzzle_flm____cat_puzzle_flm___perl_fluscate_pl___puzzle_fusc_flm____flasm_exe_a_puzzle_fusc_flm">Usage (win32):  <h2><a name="actionscript_editors___co_">ActionScript Editors &amp; Co.</a></h2>
184    #&gt; flasm.exe -d puzzle.swf &gt; puzzle.flm  <pre>
185    #&gt; cat puzzle.flm | perl fluscate.pl &gt; puzzle_fusc.flm    URL Action Editor and Actionscript Viewer:
186    #&gt; flasm.exe -a puzzle_fusc.flm</a></h2>      <a href="http://www.buraks.com/">http://www.buraks.com/</a>
187        <a href="http://voisen.org/archives/2003/02/uae_303_and_asv_309.php">http://voisen.org/archives/2003/02/uae_303_and_asv_309.php</a>
188      SE|PY ActionScript Editor: <a href="http://www.sephiroth.it/python/sepy.php">http://www.sephiroth.it/python/sepy.php</a></pre>
189  <p>  <p>
190  </p>  </p>
191  <h2><a name="usage___nix______flasm_d_puzzle_swf___puzzle_flm____cat_puzzle_flm___fluscate_pl___puzzle_fusc_flm____flasm_a_puzzle_fusc_flm">Usage (*nix):  <h2><a name="obfuscators">Obfuscators</a></h2>
192    #&gt; flasm -d puzzle.swf &gt; puzzle.flm  <pre>
193    #&gt; cat puzzle.flm | fluscate.pl &gt; puzzle_fusc.flm    ASO Pro (ActionScript Obfuscator Pro): <a href="http://www.genable.com/aso/preview.html">http://www.genable.com/aso/preview.html</a>
194    #&gt; flasm -a puzzle_fusc.flm</a></h2>    SWOB (swf obfuscator): <a href="http://home.byu.net/jtb64/Swob.htm">http://home.byu.net/jtb64/Swob.htm</a>
195      OBFU - A Flash Actionscript obfuscator: <a href="http://opaque.net/~dave/obfu/">http://opaque.net/~dave/obfu/</a></pre>
196    <p>
197    </p>
198    <h2><a name="misc">Misc</a></h2>
199    <pre>
200      ActionScript Protection:
201        <a href="http://www.as-protect.com/">http://www.as-protect.com/</a>
202        <a href="http://www.quasimondo.com/archives/000377.php">http://www.quasimondo.com/archives/000377.php</a>
203      Developer's SWF Guardian: <a href="http://anyrd.anyorganization.com/">http://anyrd.anyorganization.com/</a>
204      Password Busting / SWF Protections: <a href="http://www.searchlores.org/cinix_fla.htm">http://www.searchlores.org/cinix_fla.htm</a></pre>
205    <p>
206    </p>
207    <h2><a name="offtopic">Off-Topic</a></h2>
208    <pre>
209    
210      XPath for Actionscript and other stuff: <a href="http://www.xfactorstudio.com/Actionscript/">http://www.xfactorstudio.com/Actionscript/</a>
211      SerializerClass: <a href="http://sourceforge.net/projects/serializerclass/">http://sourceforge.net/projects/serializerclass/</a>
212      AMF::Perl - Flash Remoting in Perl and Python - using Flash Remoting protocol (AMF):
213        <a href="http://simonf.com/amfperl/">http://simonf.com/amfperl/</a>
214      PEAR::SWF - Read and write SWF head tag: <a href="http://www.sephiroth.it/test/php/SWF/">http://www.sephiroth.it/test/php/SWF/</a>
215      AMFPHP - Flash Remoting for PHP: <a href="http://www.amfphp.org/">http://www.amfphp.org/</a></pre>
216  <p><a href="#__index__"><small>back to top</small></a></p>  <p><a href="#__index__"><small>back to top</small></a></p>
217  <table border="0" width="100%" cellspacing="0" cellpadding="3">  <table border="0" width="100%" cellspacing="0" cellpadding="3">
218  <tr><td class="block" valign="middle">  <tr><td class="block" valign="middle">

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed