Why aren't there Binary -> C/C++ convertors?

We have compilers, assemblers and emulators. But why are there no binary to c programs which allow you to get the code of any program whether closed source or not?

Attached: 1*lrLtuOpkP2Cng32gEjgtXQ.png (1400x690, 434K)

Other urls found in this thread:

youtu.be/8idwyuVJ4ug
twitter.com/AnonBabble

Decompilers exist

>why are there no binary to c programs which allow you to get the code of any program

and how you wanna get the binary code from programs?

fpbp

Then how come I cant download the source code to photoshop?

because you cant get 1:1 source code of compiled application. someone would have to rewrite it based on decompiler output. if i am wrong, correct me

t. Brainlet

You apparently have never heard of optimization and obfuscation. Please use a search engine of your choice to read about decompilers and fight your stupid.

Why cant you? This makes no sense to me.

>why?
youtu.be/8idwyuVJ4ug

I'll explain it in a way a brainlet let you can understand.

1. You start out with some code like this:
/* global variable */
int something;

void func()
{
something = 3;
something++;
something += 2;
something += 3;
}


2. Pretend the above code is more complex
3. A compiler compiles it and optimizes it.

/* some garbled machine code */
0x7289582636423420347 0x82174 0xfffff


4. The only thing you can get back will be something like this:

int ba7sd7823423;

void c8272837834()
{
ba7sd7823423 = 9;
}


And this is why you cannot get anything that remotely resembles photoshop when you decompile it.

Is it possible to reverse engineer from machine code?

listen to me you little fucker, this guy did a good job explaining this to you, now get the fuck out before someone will hurt himself watching how people can be that stupid like you

I'm asking a different question, you fucking nigger.

Do you know what 0xC3 means? That is how possible it is for you.

Y-you too.

Racist trolls -> void

Everything is possible in software if you have enough knowledge and experience. 0xC3 is the hex for the ret x86 asm instruction which has long been the centre of exploiting buggy software. Just learn C, dig into assembly and then you will realize that nothing can stop you or any (h|cr)acker if you have enough time and determination on top of your knowledge and experience (by asm experience I mean being able to mimick the ret instruction using another combo of instructions and other crappy obscure stuff). Make writing a debugger your end goal for now.

there are. i'm not gonna share it with anyone, though.

IDA pro for native
.net reflector for IL
JAD for JVM bytecode
JPEX for flash
...etc btw

radare2 deserves a mention

You'd be lucky to get something even that human readable in any non-trivial program.

When a compiler turns your high-level program into an executable, it heavily optimises it, links the relevant libraries and changes things around so that it ends up looking almost unrecognisable compared to your original code. You can take the raw binary executable and extract some data from that (such as which libraries it imports or whether it contains any ASCII/Unicode strings) and you can even disassemble the binary and try to work out what the assembly code is doing. However it's practically impossible to get the original source code back.

yeah but it's still cool to see a (maybe simple) program you wrote disassembled

This is why you should never use anything that isn’t open source for something critical. Who knows what (((they))) are doing?