Jump to content
Excelsior Forums
johnrule

reverse engineering

Recommended Posts

Can you (Excelsior) reverse engineer your own product, or is the conversion process pretty much one-way (i.e. hard for everyone)?

Thank you,

JR

Share this post


Link to post
Share on other sites

static code compilation with optimizations almost always removes any high-level information contained e.g. in java class files. Therefor nobody will effectifly be able to decompile your compiled stuff, at least not a lot easier than it is for C++ programs.

lg Clemens

Share this post


Link to post
Share on other sites

We have certain internal tools to aid field engineering, and of course our engineers know the product inside out, so they have an advantage over the rest of the world. But without debug information the tools are of not much help, and optimized x86 code is much harder to comprehend than a decompiled class file, for everyone.

lg Clemens: Some of the high-level information has to be preserved, e.g. for the reflection to work.  So it may be a good idea to do name obfuscation and string encryption before native compilation. See Knowledge Base Article 000023, "HOWTO: Maximize protection of your application against reverse engineering" for more information.

Share this post


Link to post
Share on other sites
Can you (Excelsior) reverse engineer your own product, or is the conversion process pretty much one-way (i.e. hard for everyone)?

If the inlining optimization is enabled, understanding the code compiled with Excelsior JET turns to nightmare. Even availablity of debug info is not much help. I would say it's rather hard to everyone.

Share this post


Link to post
Share on other sites

I've posted a question in another section but thought it might be relevant here as well

http://www.excelsior-usa.com/forum/index.php?topic=1493.0

As mentioned previously your code is as hard to reverse engineer as C++ code but what about the classes shipped in the xjre ?  If I was to modify the contents of rt.jar before the first execution of my application, do those changes get executed ? is there something which verifies the integrity of the libs in the xjre ?  Do the libs in the rt directory get compiled and linked at runtime, ie does ClassLoader.class get compiled natively and executed ? Or does the bytecode from the jar's which were used to produce the native executable get passed to the classloader without compilation ?

Share this post


Link to post
Share on other sites
ie does ClassLoader.class get compiled natively and executed?

Yes, ClassLoader is compiled and not executed through loading the bytecodes. For details, see the answer to your post 

http://www.excelsior-usa.com/forum/index.php?topic=1493.msg3526#msg3526

Or does the bytecode from the jar's which were used to produce the native executable get passed to the classloader without compilation ?

An application will unlikely use those platform classes kept in the bytecode form after global optimization.

Share this post


Link to post
Share on other sites

static code compilation with optimizations almost always removes any high-level information contained e.g. in java class files. Therefor nobody will effectifly be able to decompile your compiled stuff, at least not a lot easier than it is for C++ programs.

lg Clemens

Yeah in reverse engineering.... yeah at least not a lot easier than it is for C++ programs....

_________________

aluminum plate

Share this post


Link to post
Share on other sites
yeah at least not a lot easier than it is for C++ programs....

Actually, it's harder because the tools for re-engineering C++ code often rely on the code patterns produced by the widely used compilers like MSVC, GNU, Borland Power Builder, etc to partially automate the process.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×