Solved

Look at this Java Decompiler Problem!

Posted on 2002-04-02
14
195 Views
Last Modified: 2011-10-03
// FrontEnd Plus GUI for JAD
// DeCompiled : a.class

try {
       a1.pack();
       a1._mthtry(); //This Method Doesm't Exit At All!

       a1.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
} finally {
       a1.dispose();
}

The above code piece was decompiled by the Latest version of JAD/FrontEnd Plus. Actually, the methods begin with an underline char "_" (a1._mthtry(), e.g.) don't exit in the refered class (a1 here, e.g.), so this classes can't be compiled back into a .class after modification.

But it seems somebody else can decompile it successfully, what's the problem with the tools I am using? Or he use another better tool?

Could anyone tell me?
0
Comment
Question by:wyuanzheng
  • 6
  • 3
  • 2
  • +3
14 Comments
 
LVL 3

Expert Comment

by:shyamkumarreddy
ID: 6914964
Wyuanzheng,
I have some info for you. After you decompile your class file to java. It won't be 100 Percent back to java. And i don't think all compilers do that. If you can do that what is the way to hide your source right.

And the source which u get from class file is not the format in which u get it in java. It will be in some format and it is different for each decompilers and very very difficult to understand the logic and code.

And at the same time. There are some obsfucator for hiding the code also.

These are some info for you abt decompilers.
For more info look into sun for obsfucator.
Shyam
0
 
LVL 9

Expert Comment

by:Ovi
ID: 6915047
Try JODE. Serach at google and you will find references to the opensource project hosted by sourceforge
0
 
LVL 9

Expert Comment

by:Ovi
ID: 6915049
0
Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

 

Author Comment

by:wyuanzheng
ID: 6915179
Sometimes, I see the decompiled class file contains some reserved words like "try", "null", "catch" as the Method name or Variable.

e.g.:

a1.try(a2.null);

//try() is a Method, null is an variable in a2 class

So, how to play with it?
0
 
LVL 9

Accepted Solution

by:
Ovi earned 50 total points
ID: 6915216
This means the class was obfuscated using a good obfuscating program. Normally you cannot solve this kind of problems. You could try to study the resulted sourcecode and fix'it if is understandable enough.
0
 

Author Comment

by:wyuanzheng
ID: 6915235
If I am required to decompile all the classes, and modify all the reference of these methods/variables, I must be mad! Any way else?
0
 

Expert Comment

by:alramanathan
ID: 6915316
U can try Decafe Pro which will decompile java Classes and but not in the Same format
0
 

Expert Comment

by:alramanathan
ID: 6915318
It is available in http://decafe.hypermart.net/
0
 

Author Comment

by:wyuanzheng
ID: 6915430
decafe actually use JAD.
So the result will be the same with that decompiled by FrontEnd Plus. Best of all is FrontEnd is free while Decafe cost some.
0
 
LVL 9

Expert Comment

by:Ovi
ID: 6917263
Yes, you have right, is madness to change a obfuscate class. I don't think you have alternative solutions (perhaps only searching the web for another application like one you want to decompile).
0
 
LVL 9

Expert Comment

by:Ovi
ID: 6917264
Yes, you have right, is madness to change a obfuscate class. I don't think you have alternative solutions (perhaps only searching the web for another application like one you want to decompile).
0
 
LVL 9

Expert Comment

by:Ovi
ID: 6917265
Yes, you have right, is madness to change a obfuscate class. I don't think you have alternative solutions (perhaps only searching the web for another application like one you want to decompile).
0
 
LVL 9

Expert Comment

by:Venci75
ID: 7932651
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:
Answered by: Ovi
Please leave any comments here within the next seven days.
 
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
 
Venci75
EE Cleanup Volunteer
0
 

Expert Comment

by:SpideyMod
ID: 7984166
per recommendation

SpideyMod
Community Support Moderator @Experts Exchange
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
JDeveloper 12c for 32 bit 4 84
reverse digits of a number using for loop 5 40
jdbc error in jsp application 20 44
use lov values 2 49
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question