Author Topic: Reverse engineering an executable  (Read 6266 times)

0 Members and 1 Guest are viewing this topic.

Offline m0l0ko

  • Peasant
  • *
  • Posts: 129
  • Cookies: -4
    • View Profile
Reverse engineering an executable
« on: January 04, 2013, 07:29:27 am »
Does one have to first disassemble it then convert the assembly code into a higher level language (i.e. C++) or is there a way to decompile the executable directly into the code that was used to compile it?

Mike245

  • Guest
Re: Reverse engineering an executable
« Reply #1 on: January 04, 2013, 07:42:05 am »
I would like to point out that it is impossible to get the original source code from a executable. Once a program is compiled it loses a lot of the original code and there is no way to get it back perfectly. Once a program is reverse engineered into assembly there are programs to try and construct it into code for a high level language though. Not sure exactly of the names of the programs.

Offline TeamVega

  • Serf
  • *
  • Posts: 32
  • Cookies: -2
    • View Profile
Re: Reverse engineering an executable
« Reply #2 on: January 04, 2013, 09:31:58 am »
It helps if you know what language the exe was written in as there are loads of de-compiler software to help in getting some of the source code.

Offline m0l0ko

  • Peasant
  • *
  • Posts: 129
  • Cookies: -4
    • View Profile
Re: Reverse engineering an executable
« Reply #3 on: January 04, 2013, 11:51:42 am »
I found a pretty good article on all this:
http://www.debugmode.com/dcompile/


Offline zWaR

  • Serf
  • *
  • Posts: 32
  • Cookies: 7
    • View Profile
Re: Reverse engineering an executable
« Reply #4 on: January 04, 2013, 08:02:12 pm »
Short answer is yes! It is possible to retrieve the source code from an executable. But the process might be a bit different as you would expect. In general there is no tool which would take your executable and spit out it's source code. However, what you can do is decompile the executable, analyze the assembly and try to understand what it does, then based on this analysis write the source code of the application. Malware analaysis can be performed that way for example. Unfortuately in most of the cases it is not trivial. m0l0ko's reference only scratches the surface to get you an general idea of how this can be done.

If you'd like to learn more here are some suggestions:
« Last Edit: January 04, 2013, 08:03:55 pm by zWaR »

Offline Super_mario666

  • Knight
  • **
  • Posts: 160
  • Cookies: 7
  • Professional Badass
    • View Profile
Re: Reverse engineering an executable
« Reply #5 on: January 05, 2013, 06:03:29 am »
nope the source file is long gone. the best you can do is run a trace of the executable, figure out how it works and write the code your yourself or directly change the assembly code and make it do what you want that way.
The Bigger they are...The more likely you'll get your ass kicked

Offline proxx

  • Avatarception
  • Global Moderator
  • Titan
  • *
  • Posts: 2803
  • Cookies: 256
  • ФФФ
    • View Profile
Re: Reverse engineering an executable
« Reply #6 on: January 05, 2013, 12:20:46 pm »
http://www.digitalbodyguard.com/GrayWolf.html

I recently watched this guys defcon or blackhat talk, cant remember.
But this is some really cool stuff.
Its designed for .net applications.
Did I mention this is really good.
Wtf where you thinking with that signature? - Phage.
This was another little experiment *evillaughter - Proxx.
Evilception... - Phage

Offline zWaR

  • Serf
  • *
  • Posts: 32
  • Cookies: 7
    • View Profile
Re: Reverse engineering an executable
« Reply #7 on: January 05, 2013, 12:50:32 pm »
http://www.digitalbodyguard.com/GrayWolf.html

I recently watched this guys defcon or blackhat talk, cant remember.
But this is some really cool stuff.
Its designed for .net applications.
Did I mention this is really good.

Interesting. Did you try it?

Hope it's really going to be open source in the future...