git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@476 379699f6-c40d-0410-875b-85095c16579estable
parent
715af096ca
commit
3c368f3a9b
@ -0,0 +1,29 @@ |
|||||||
|
This is a list of features, that would be nice to have: |
||||||
|
|
||||||
|
Decompiler: |
||||||
|
- decompile inner classes correctly. |
||||||
|
- deinline inlined methods. |
||||||
|
- remove string decrypt method. |
||||||
|
- remove synthetic methods if and only if all calls to them are resolved. |
||||||
|
|
||||||
|
Obfuscator: |
||||||
|
- read options from a script. |
||||||
|
- flow obfuscation/optimization. |
||||||
|
- warn about Class.forName and list occurences. |
||||||
|
- allow |
||||||
|
|
||||||
|
DeObfuscator: |
||||||
|
- generate nice names: |
||||||
|
- classes: derive name from super. |
||||||
|
- fields: derive name from type. |
||||||
|
- give synthetic methods the right attribute and name (e.g. class$) |
||||||
|
- detect inner classes and give suitable names. |
||||||
|
- detect "constant methods", this will also deobfuscate strings. |
||||||
|
|
||||||
|
User Interface: |
||||||
|
- make a nice user interface: |
||||||
|
- list classnames: toggable between class hierarchie/package hierarchie. |
||||||
|
- list fields/method of selected class. |
||||||
|
- show decompilation of selected method. |
||||||
|
- show usage of method/fields. |
||||||
|
- allow visual obfuscation/deobfuscation |
@ -0,0 +1,79 @@ |
|||||||
|
#!/usr/bin/perl |
||||||
|
# addHeader.pl Copyright (C) 1999 Jochen Hoenicke. |
||||||
|
# |
||||||
|
# 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, 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; see the file COPYING. If not, write to |
||||||
|
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. |
||||||
|
# |
||||||
|
# $Id$ |
||||||
|
|
||||||
|
# This perl script just adds the copyright header to all given java files, |
||||||
|
# removing a possible previous header. |
||||||
|
|
||||||
|
|
||||||
|
for (@ARGV) { |
||||||
|
my $file = $_; |
||||||
|
$file =~ m=([^/]*)\.java$= or do { |
||||||
|
print STDERR "$file is not a java file"; |
||||||
|
next; |
||||||
|
}; |
||||||
|
my $class = $1; |
||||||
|
my $curyear = `date +%Y`; |
||||||
|
chomp $curyear; |
||||||
|
my $firstcheckin = `rlog $file 2>/dev/null |grep date| tail -1`; |
||||||
|
my $firstyear = |
||||||
|
($firstcheckin =~ m=date: ([0-9]+)/[0-9]+/[0-9]+=) ? $1 : $curyear; |
||||||
|
# my $lastcheckin = `rlog $file 2>/dev/null |grep date| head -1`; |
||||||
|
# my $lastyear = |
||||||
|
# ($firstcheckin =~ m=date: ([0-9]+)/[0-9]+/[0-9]+=) ? $1 : $curyear; |
||||||
|
my $lastyear = $curyear; |
||||||
|
my $years = ($firstyear == $lastyear) |
||||||
|
? $firstyear : "$firstyear-$lastyear"; |
||||||
|
|
||||||
|
rename "$file", "$file.orig" or do { |
||||||
|
print STDERR "Can't open file $file\n"; |
||||||
|
next; |
||||||
|
}; |
||||||
|
open OLD, "<$file.orig"; |
||||||
|
open NEW, ">$file"; |
||||||
|
print NEW <<"EOF"; |
||||||
|
/* $class Copyright (C) $years Jochen Hoenicke. |
||||||
|
* |
||||||
|
* 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, 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; see the file COPYING. If not, write to |
||||||
|
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. |
||||||
|
* |
||||||
|
* \$Id\$ |
||||||
|
*/ |
||||||
|
|
||||||
|
EOF |
||||||
|
|
||||||
|
while (<OLD>) { |
||||||
|
/^package/ and last; |
||||||
|
} |
||||||
|
print NEW $_; |
||||||
|
while (<OLD>) { |
||||||
|
print NEW $_; |
||||||
|
} |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue