• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

C++ decompiler?

Tomek

Member
is there such a thing as a C++ decompiler? I've seen plenty of C decompilers but I've never seen one for C++
 


<< WHERE DID YOU SEE A C DECOMPILER>> MUST HAVE MUST HAVE MUST HAVE!!!!!!!!!!! >>


my thoughts exactly! where do get em tomek???
 
Any C++ DeCompiler would mean that the general public could treat Windows similar to Linux (Open Source) and actually make it work effectively without crashing of eating up memory.

Do you really think that MS would allow such a thing (tool) to exist.

A decompiler would only easily be able to get you back to assembly level instructions from the exeutable.

To be able to get back to psuedo code might be able to be done, however, the readability would be lousy and variable and module names would be cryptic without meaning.

Second the motion for where you saw a C decompiler.
 
Actually they do exist.

There's a company (can't remember its name, only heard it once or twice from a prof of mine in software engineering a year ago), that specializes in getting code back from executables (remember, that compiling doesn't necessarily create machine code, nowadays it often gets to the leave of micro code). C, C++, COBOL, FORTRAN, ... They do it all, and charge a lot for doing it.

Of course, they have problems marketing. Their customers would just love the public to hear that they lost the original code (problems for older institutions: IBM, banks, etc, where they lose the documentation. For the newer ones, when an employ destroys everything when he leaves).
 
they exist... I played with a VB decompiler and a C decompiler once, but they were pretty terrible. You can't really use it on Windows for a couple reasons:

1. there is probably some assemly-level code, you'd have to be able to read that
2. the code produced is UGLY and REALLY HARD to read
3. the EULA forbids it. if you do manage to get the source, you'd have to distribute it rapidly before you're shut down.
 
If you do a "C decompiler" search on google I'm sure you'll be able to find one, but I've never seen a C++ decompiler and I was wondering how you would even go about making one...
 
C++ decompilers, just like C decompilers, are worthless. The code produced is garbage and not usuable.
 
Most decompilers are used to see how the code was written, not necessarily to produce a working copy of the code. After decompiling, most of the code is garbage, as has been said, but a decent programmer should be able to get hints and ideas of how some, if not quite a bit, of the code worked.
 


<< C++ decompilers, just like C decompilers, are worthless. The code produced is garbage and not usuable. >>



the best C decomiler that i found turned the code into assembly. I WOULD DIE (OR KILL) FOR A FULLY FUNCTIONAL C DECOMPILER!!!!!

ive even tried the google search method that lead me to nothing. and i want this for my own program i made 6 months ago.. it was huge.. i dont want to make it again :disgust:
 


<<

the best C decomiler that i found turned the code into assembly.
>>



That would be a disassembler not a decompiler. Completely different.
 
It is physically impossible to reproduce the original C/C++ source code from a pure binary executable. Decompilers can make logical guess's as to what the original programmer intended to do, but it will be pretty much useless. Learn ASM if you want to reverse engineer a program.
 
Hold it, are we saying that windows was written in C/C++?

I always figured they were using some weird MS varient, like they make for every other OOP language................(before you start, I know C isn't OO).

Can anyone set me straight?
 


<< Hold it, are we saying that windows was written in C/C++?

I always figured they were using some weird MS varient, like they make for every other OOP language................(before you start, I know C isn't OO).

Can anyone set me straight?
>>



Yup, Linux too. Of couse, the low level driver stuff and the kernel has hand optimized ASM built into it too. It really doesn't matter what language they used anyways, becase in the end x86 byte code is x86 byte code.
 
It will just be a C decompiler.
Anything you can write in C++, you can write in C (pretty much), so you will just get convoluted C code.
Aaargh!

Why would anyone look through spaghetti code of 100s of pages?
 
Yup, Linux too. Of couse, the low level driver stuff and the kernel has hand optimized ASM built into it too. It really doesn't matter what language they used anyways, becase in the end x86 byte code is x86 byte code.

Very little of the kernel is ASM, and where it's used it's used out of necessity not for speed. It does matter because Linux isn't just an x86 OS, keeping away from x86 specific code and asm is pretty important.

any recommendations for a good ASM book?

I wouldn't learn ASM unless you have a lot of free time, it limits you too much. I would learn something higher level like C which is portable to any OS and architecture with a C compiler.

And all this talk about decompilers should stop, it's not going to happen in any fashion that would be beneficial to anyone. If you want source code download an app or whatever that has the source available, you'll never get source code from a binary that looks the same as the way the original author typed it.
 
I have heard of people talking about C decompilers that worked fairly well.

I remember Georgia tech had a rather large reverse engineering project not too long ago. The webpages for that may still exist.
 
Back
Top