/[cvs]/nfo/perl/scripts/fluscate/bin/fluscate.pl
ViewVC logotype

Diff of /nfo/perl/scripts/fluscate/bin/fluscate.pl

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.4 by joko, Mon Jul 26 13:51:54 2004 UTC
# Line 4  Line 4 
4    
5  # $Id$  # $Id$
6  # $Log$  # $Log$
7    # Revision 1.4  2004/07/26 13:51:54  joko
8    # updated pod
9    #
10    # Revision 1.3  2004/07/23 12:56:07  joko
11    # updated pod
12    #
13    # Revision 1.2  2004/07/23 12:24:52  joko
14    # pod
15    #
16  # Revision 1.1  2004/07/23 12:13:14  joko  # Revision 1.1  2004/07/23 12:13:14  joko
17  # initial commit  # initial commit
18  #  #
19    
20  =pod  =pod
 This software is Copyright (C) 2004 Andreas Motl  
 Ideas and future AppleScript integration by Holger Marseille.  
21    
22  This program is free software; you can redistribute it and/or    This software is Copyright (C) 2004 Andreas Motl
23  modify it under the terms of the GNU General Public License    Ideas and future AppleScript integration by Holger Marseille.
24  as published by the Free Software Foundation; either version 2    
25  of the License, or (at your option) any later version.    This program is free software; you can redistribute it and/or
26      modify it under the terms of the GNU General Public License
27  This program is distributed in the hope that it will be useful,    as published by the Free Software Foundation; either version 2
28  but WITHOUT ANY WARRANTY; without even the implied warranty of    of the License, or (at your option) any later version.
29  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    
30  GNU General Public License for more details.    This program is distributed in the hope that it will be useful,
31      but WITHOUT ANY WARRANTY; without even the implied warranty of
32  You should have received a copy of the GNU General Public License    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
33  along with this program; if not, write to the Free Software    GNU General Public License for more details.
34  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.    
35      You should have received a copy of the GNU General Public License
36      along with this program; if not, write to the Free Software
37      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
38    
39  =cut  =cut
40    
41    
# Line 32  Foundation, Inc., 59 Temple Place - Suit Line 43  Foundation, Inc., 59 Temple Place - Suit
43    
44  =head1 Features  =head1 Features
45    
46  =head2 Requests  
47    - komplexere verschlüsselung als "-1, -2 ..." z-b nicht in der numerischen reihenfolge sondern nach  =head2 Obfuscation
48      zufallsprinip (-21,-3,-89)? (->random)  
49    - evtl. constants nach abfrage ersetzen ? leider sehr aufwendig, bei vielen constants (->ask)    See ASO Pro: http://www.genable.com/aso/preview.html
50    - 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)  
51    
52  =head2 Functions  =head2 Functions
53  fluscate handles two different styles of function declarations:  
54      fluscate handles two different styles of function declarations:
55    
56    1. "Normal" ones    1. "Normal" ones
57        function mp3Player ('arg1', 'arg2')        function mp3Player ('arg1', 'arg2')
# Line 55  fluscate handles two different styles of Line 61  fluscate handles two different styles of
61        function  ()        function  ()
62    
63    
64    =head1 Dependencies
65    
66      "flasm" is required to disassemble swf files, see http://www.nowrap.de/flasm.html
67      ACKs go to Igor Kogan.
68    
69    
70    =head1 Usage
71    
72    =head2 win32
73    
74      #> flasm.exe -d puzzle.swf > puzzle.flm
75      #> cat puzzle.flm | perl fluscate.pl > puzzle_fusc.flm
76      #> flasm.exe -a puzzle_fusc.flm
77    
78    =head2 *nix
79    
80      #> ./flasm -d puzzle.swf > puzzle.flm
81      #> cat puzzle.flm | ./fluscate.pl > puzzle_fusc.flm
82      #> ./flasm -a puzzle_fusc.flm
83    
84    
85    =head1 Development
86    
87    =head2 Todo
88    
89      - provide list of flash event handler names to exclude from symbol replacement
90    
91    =head2 Wishlist
92    
93      - komplexere verschlüsselung als "-1, -2 ..." z-b nicht in der numerischen reihenfolge sondern nach
94        zufallsprinip (-21,-3,-89)? (->random)
95      - evtl. constants nach abfrage ersetzen ? leider sehr aufwendig, bei vielen constants (->ask)
96      - rausgeben des arrays mit den "neuen" werten um evtl die obfuscation rückgängig zu machen (->undo)
97      -  "    push 0
98             ls:
99             dup
100             trace
101             branchIfTrue ls"
102        ... after each "constants" declaration (->pollute)
103      - what about other symbols beside "function"s? (e.g. variables) (->mode)
104    
105    =head2 Notes
106    
 =head1 Notes  
107    - no function may be called "Initialize", rename it to (e.g.) "Initialize2", reassembling will not work otherwise    - no function may be called "Initialize", rename it to (e.g.) "Initialize2", reassembling will not work otherwise
108      (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)
109    - function names seem to be/work case insensitive (shuffle <-> Shuffle)    - function names seem to be/work case insensitive (shuffle <-> Shuffle)
# Line 66  fluscate handles two different styles of Line 113  fluscate handles two different styles of
113    - "getMember" and "getVariable" also do function calls!    - "getMember" and "getVariable" also do function calls!
114    - there are reserved function names which must not be replaced! (-> event handlers, e.g. "onPress")    - there are reserved function names which must not be replaced! (-> event handlers, e.g. "onPress")
115    
 =head1 Todo / Review  
   - what about other symbols beside "function"s?  
116    
117  =head1 Usage  =head1 Links
118    
119  =head2 Usage (win32):  =head2 ActionScript Decompilers / Disassemblers
   #> flasm.exe -d puzzle.swf > puzzle.flm  
   #> cat puzzle.flm | perl fluscate.pl > puzzle_fusc.flm  
   #> flasm.exe -a puzzle_fusc.flm  
120    
121  =head2 Usage (*nix):    Flasm:
122    #> flasm -d puzzle.swf > puzzle.flm      http://www.nowrap.de/flasm.html
123    #> cat puzzle.flm | fluscate.pl > puzzle_fusc.flm      http://www.opaque.net/~dave/flasm/
124    #> flasm -a puzzle_fusc.flm    Flare: http://www.nowrap.de/flare.html
125      Sothink SWF Decompiler: http://www.srctec.com/flashdecompiler/
126      Imperator FLA: http://www.ave-imperator.com/
127      SWF Decompiler: http://www.19.5degs.com/swfdecompiler.php
128      Gordon: http://www.futurecandy.com/
129    
130    =head2 ActionScript Editors & Co.
131    
132      URL Action Editor and Actionscript Viewer:
133        http://www.buraks.com/
134        http://voisen.org/archives/2003/02/uae_303_and_asv_309.php
135      SE|PY ActionScript Editor: http://www.sephiroth.it/python/sepy.php
136    
137    =head2 Obfuscators
138    
139      ASO Pro (ActionScript Obfuscator Pro): http://www.genable.com/aso/preview.html
140      SWOB (swf obfuscator): http://home.byu.net/jtb64/Swob.htm
141      OBFU - A Flash Actionscript obfuscator: http://opaque.net/~dave/obfu/
142    
143    =head2 Misc
144    
145      ActionScript Protection:
146        http://www.as-protect.com/
147        http://www.quasimondo.com/archives/000377.php
148      Developer's SWF Guardian: http://anyrd.anyorganization.com/
149      Password Busting / SWF Protections: http://www.searchlores.org/cinix_fla.htm
150    
151    =head2 Off-Topic
152      
153      XPath for Actionscript and other stuff: http://www.xfactorstudio.com/Actionscript/
154      SerializerClass: http://sourceforge.net/projects/serializerclass/
155      AMF::Perl - Flash Remoting in Perl and Python - using Flash Remoting protocol (AMF):
156        http://simonf.com/amfperl/
157      PEAR::SWF - Read and write SWF head tag: http://www.sephiroth.it/test/php/SWF/
158      AMFPHP - Flash Remoting for PHP: http://www.amfphp.org/
159    
160  =cut  =cut
161    

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

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