--- nfo/perl/scripts/fluscate/bin/fluscate.pl 2004/07/23 12:13:14 1.1 +++ nfo/perl/scripts/fluscate/bin/fluscate.pl 2004/07/23 12:24:52 1.2 @@ -2,29 +2,34 @@ # fluscate.pl 0.03 - The Flash Obfuscator -# $Id: fluscate.pl,v 1.1 2004/07/23 12:13:14 joko Exp $ +# $Id: fluscate.pl,v 1.2 2004/07/23 12:24:52 joko Exp $ # $Log: fluscate.pl,v $ +# Revision 1.2 2004/07/23 12:24:52 joko +# pod +# # Revision 1.1 2004/07/23 12:13:14 joko # initial commit # =pod -This software is Copyright (C) 2004 Andreas Motl -Ideas and future AppleScript integration by Holger Marseille. -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + This software is Copyright (C) 2004 Andreas Motl + Ideas and future AppleScript integration by Holger Marseille. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + =cut @@ -32,7 +37,41 @@ =head1 Features -=head2 Requests +=head2 Functions + + fluscate handles two different styles of function declarations: + + 1. "Normal" ones + function mp3Player ('arg1', 'arg2') + + 2. There may be "stacked" function declarations + push 'mp3Player' + function () + + +=head1 Usage + +=head2 win32 + + #> flasm.exe -d puzzle.swf > puzzle.flm + #> cat puzzle.flm | perl fluscate.pl > puzzle_fusc.flm + #> flasm.exe -a puzzle_fusc.flm + +=head2 *nix + + #> flasm -d puzzle.swf > puzzle.flm + #> cat puzzle.flm | fluscate.pl > puzzle_fusc.flm + #> flasm -a puzzle_fusc.flm + + +=head1 Development + +=head2 Todo + + - provide list of flash event handler names to exclude from symbol replacement + +=head2 Wishlist + - komplexere verschlüsselung als "-1, -2 ..." z-b nicht in der numerischen reihenfolge sondern nach zufallsprinip (-21,-3,-89)? (->random) - evtl. constants nach abfrage ersetzen ? leider sehr aufwendig, bei vielen constants (->ask) @@ -43,20 +82,10 @@ trace branchIfTrue ls" ... after each "constants" declaration (->pollute) + - what about other symbols beside "function"s? (e.g. variables) (->mode) -=head2 Functions -fluscate handles two different styles of function declarations: - - 1. "Normal" ones - function mp3Player ('arg1', 'arg2') - - 2. There may be "stacked" function declarations - push 'mp3Player' - function () - +=head2 Notes - -=head1 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) @@ -66,21 +95,6 @@ - "getMember" and "getVariable" also do function calls! - there are reserved function names which must not be replaced! (-> event handlers, e.g. "onPress") -=head1 Todo / Review - - what about other symbols beside "function"s? - -=head1 Usage - -=head2 Usage (win32): - #> flasm.exe -d puzzle.swf > puzzle.flm - #> cat puzzle.flm | perl fluscate.pl > puzzle_fusc.flm - #> flasm.exe -a puzzle_fusc.flm - -=head2 Usage (*nix): - #> flasm -d puzzle.swf > puzzle.flm - #> cat puzzle.flm | fluscate.pl > puzzle_fusc.flm - #> flasm -a puzzle_fusc.flm - =cut