How to decompile .exe to java

  • Java
  • Thread starter jaredmt
  • Start date
  • #1
122
0
I have Jbuilder2007 and im wondering if there is a way i can decompile .exe files so i can read the code in java.
 

Answers and Replies

  • #2
1,250
2
What you need is a java decompiler, and there are some available:

http://members.fortunecity.com/neshkov/dj.html [Broken]
 
Last edited by a moderator:
  • #3
chroot
Staff Emeritus
Science Advisor
Gold Member
10,226
34
Well, Java is not normally compiled to an .exe, it's usually compiled to a .class. The class files contain JVM bytecode and can be decompiled into Java source.

If you're trying to decompile a Java program that has been compiled all the way to an .exe (using JET, for example), you're out of luck.

- Warren
 
  • #4
122
0
ok, so basically there is no way to edit a .exe file? i thought maybe there was a way the code could be translated to java or pseudocode or something
 
  • #5
CRGreathouse
Science Advisor
Homework Helper
2,820
0
ok, so basically there is no way to edit a .exe file? i thought maybe there was a way the code could be translated to java or pseudocode or something
To edit an exe file, you'd need to use a disassembler and know the assembly language.

There are various ways in which an exe can be moved into something higher than assembly, but they're usually either:
* Really hard to do, and not much easier to read than the assembly; or
* Total cheats, and exactly as hard to follow as the assembly.
 
  • #6
12
0
You can use a disassembler to help you decode the machine-level instructions, but that's about it. AFAIK, there is currently no way to reliably and automatically reverse-engineer machine code to a high-level language; it's a much more complex problem than you might think.
 
  • #7
CRGreathouse
Science Advisor
Homework Helper
2,820
0
AFAIK, there is currently no way to reliably and automatically reverse-engineer machine code to a high-level language; it's a much more complex problem than you might think.
Yep. You can imagine storing the executable in an array, dereferencing, and jumping to that point -- any strong enough language (C/C++ not FORTRAN or Java, though C# could do it in unsafe mode) should be able to do that, but it's hardly understandable. Likewise, you could imagine turning a few commands into basic C commands and leaving the rest in asm blocks -- but that's no better either.

A sufficiently unstructured language could probably be a target for the disassembled code, but it would be nearly impossible to read -- all GOTOs and weird pointer math.
 

Related Threads on How to decompile .exe to java

Replies
3
Views
11K
  • Last Post
Replies
2
Views
5K
Replies
2
Views
4K
Replies
6
Views
1K
Replies
2
Views
1K
Replies
11
Views
7K
Replies
7
Views
149K
Replies
1
Views
6K
Replies
4
Views
9K
Top