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

  • Thread starter Thread starter jaredmt
  • Start date Start date
  • Tags Tags
    Java
AI Thread Summary
Decompiling .exe files to read Java code is not straightforward, as Java is typically compiled into .class files containing JVM bytecode, not .exe files. For Java programs compiled into .exe format, such as those using JET, decompilation is not feasible. Editing an .exe file requires a disassembler and knowledge of assembly language. While there are methods to translate machine code to a higher-level language, they are complex and often yield results that are difficult to read. Disassemblers can assist in decoding machine-level instructions, but reliably reverse-engineering machine code to a high-level language remains a significant challenge.
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.
 
Technology 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.
 
Back
Top