Is it possible to decompile .exe files to Java using Jbuilder2007?

  • Context: Java 
  • Thread starter Thread starter jaredmt
  • Start date Start date
  • Tags Tags
    Java
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
6 replies · 38K views
jaredmt
Messages
120
Reaction score
0
I have Jbuilder2007 and I am wondering if there is a way i can decompile .exe files so i can read the code in java.
 
Physics news on Phys.org
What you need is a java decompiler, and there are some available:

http://members.fortunecity.com/neshkov/dj.html
 
Last edited by a moderator:
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
 
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
 
jaredmt said:
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.
 
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.
 
dwahler said:
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.