View previous topic :: View next topic |
Author |
Message |
Cryoma Member of the Year
Reputation: 198
Joined: 14 Jan 2009 Posts: 1819
|
Posted: Mon Dec 24, 2012 10:41 pm Post subject: What's a good way to decompile a dll? |
|
|
I want to make slight changes to it.
|
|
Back to top |
|
 |
TsTg Master Cheater
Reputation: 5
Joined: 12 Dec 2012 Posts: 340 Location: Somewhere....
|
Posted: Mon Dec 24, 2012 10:57 pm Post subject: |
|
|
I guess you can go disassemble it with something like PE explorer or CFF explorer, but to decompile you have to know what language was it compiled with(C++,Delphi,.etc), then google through the decompiler you'll find them.
|
|
Back to top |
|
 |
Cryoma Member of the Year
Reputation: 198
Joined: 14 Jan 2009 Posts: 1819
|
Posted: Mon Dec 24, 2012 11:21 pm Post subject: |
|
|
Fairly certain it was cpp, anyone know a good decompiler or have a preference?
|
|
Back to top |
|
 |
Fafaffy Cheater
Reputation: 65
Joined: 12 Dec 2007 Posts: 28
|
Posted: Tue Dec 25, 2012 1:28 am Post subject: |
|
|
OllyDBG is a fairly good decompiler all the pr0 h4x3rs use.
_________________
Brillia wrote: | I FUCKING FUCK SEX |
|
|
Back to top |
|
 |
PUSHEAX_PUSHEAX Grandmaster Cheater
Reputation: 72
Joined: 13 Apr 2009 Posts: 969
|
Posted: Tue Dec 25, 2012 2:17 am Post subject: |
|
|
^ Don't listen to him or anyone else who posted in this thread.
If it's C++ you should use OllyDBG which is a debugger and disassembler.
You aren't going to decompile it and see all the nicely formatted code so get that out of your head. Now open the DLL will Olly and now look at all the ASM that you don't know. Then that's where your dream ends.
Or (depending on what you want to do), maybe right click the assembly window and search for all referenced text strings and that might point you in the right direction.
But if you don't know ASM or don't really understand whats happening it would be better to give up now.
|
|
Back to top |
|
 |
the the the Master Cheater
Reputation: 46
Joined: 15 Jun 2008 Posts: 429
|
Posted: Tue Dec 25, 2012 2:19 am Post subject: |
|
|
potaters wrote: | ^ Don't listen to him or anyone else who posted in this thread.
If it's C++ you should use OllyDBG which is a debugger and disassembler.
You aren't going to decompile it and see all the nicely formatted code so get that out of your head. Now open the DLL will Olly and now look at all the ASM that you don't know. Then that's where your dream ends.
Or (depending on what you want to do), maybe right click the assembly window and search for all referenced text strings and that might point you in the right direction.
But if you don't know ASM or don't really understand whats happening it would be better to give up now. | dude what? now's the time to learn
|
|
Back to top |
|
 |
PUSHEAX_PUSHEAX Grandmaster Cheater
Reputation: 72
Joined: 13 Apr 2009 Posts: 969
|
Posted: Tue Dec 25, 2012 2:23 am Post subject: |
|
|
asciicat wrote: | potaters wrote: | ^ Don't listen to him or anyone else who posted in this thread.
If it's C++ you should use OllyDBG which is a debugger and disassembler.
You aren't going to decompile it and see all the nicely formatted code so get that out of your head. Now open the DLL will Olly and now look at all the ASM that you don't know. Then that's where your dream ends.
Or (depending on what you want to do), maybe right click the assembly window and search for all referenced text strings and that might point you in the right direction.
But if you don't know ASM or don't really understand whats happening it would be better to give up now. | dude what? now's the time to learn |
I wouldn't agree. ASM can be really hard to learn, then you also have to learn how to use Olly and there is a lot to learn. I was pretty confused at first getting used to all the bits and moving the stack, etc.
Only if you have tons of free time.
|
|
Back to top |
|
 |
Cryoma Member of the Year
Reputation: 198
Joined: 14 Jan 2009 Posts: 1819
|
Posted: Tue Dec 25, 2012 2:34 am Post subject: |
|
|
If I just wanted to edit some gui strings I could search for those right?
Or am I way off?
|
|
Back to top |
|
 |
PUSHEAX_PUSHEAX Grandmaster Cheater
Reputation: 72
Joined: 13 Apr 2009 Posts: 969
|
Posted: Tue Dec 25, 2012 2:50 am Post subject: |
|
|
Yeah, unless the DLL is packed/obfusctaed that may make things a lot harder.
Also make sure to remember you can't overwrite the previous text string with a longer one because then you will be overwriting other bits of the program (breaking it).
Once you find your string, select the line and right click, follow in dump, highlight the words, right click them and binary->edit
Then you will need to patch your program.
|
|
Back to top |
|
 |
atom0s Moderator
Reputation: 205
Joined: 25 Jan 2006 Posts: 8587 Location: 127.0.0.1
|
Posted: Tue Dec 25, 2012 3:14 am Post subject: |
|
|
Clearing some things up in this thread:
- OllyDbg IS NOT a decompiler. It is a debugger. (And in a way, a disassembler.)
- C++ binaries cannot be decompiled.
- C++ can be disassembled, and the closest to decompiled is using a plugin like HexRays for IDA.
If you are just trying to change GUI strings, just use a hex editor. If you can fit the new string where the old was, you are fine, just make sure to terminate the string properly like the other strings are in their files. (Typically null terminator is all you need which is a single 0x00 byte. If it's unicode, use two 0x00's.)
If the file is packed, in most cases the strings will be compressed / encrypted. So you will need to unpack it first.
_________________
- Retired. |
|
Back to top |
|
 |
gogodr I post too much
Reputation: 125
Joined: 19 Dec 2006 Posts: 2041
|
Posted: Tue Dec 25, 2012 3:18 am Post subject: |
|
|
what does that dll does that you need to change?
sometimes its easier to try and remake something than try to hack it in order to change it.
|
|
Back to top |
|
 |
PUSHEAX_PUSHEAX Grandmaster Cheater
Reputation: 72
Joined: 13 Apr 2009 Posts: 969
|
Posted: Tue Dec 25, 2012 3:20 am Post subject: |
|
|
Wiccaan wrote: | Clearing some things up in this thread:
- OllyDbg IS NOT a decompiler. It is a debugger. (And in a way, a disassembler.)
- C++ binaries cannot be decompiled.
- C++ can be disassembled, and the closest to decompiled is using a plugin like HexRays for IDA.
If you are just trying to change GUI strings, just use a hex editor. If you can fit the new string where the old was, you are fine, just make sure to terminate the string properly like the other strings are in their files. (Typically null terminator is all you need which is a single 0x00 byte. If it's unicode, use two 0x00's.)
If the file is packed, in most cases the strings will be compressed / encrypted. So you will need to unpack it first. |
but that's the stuff I said
Also in Olly, if you didn't completely replace the string all the way, the part you didn't replace will still be there and you can just fill that with 0's.
|
|
Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Tue Dec 25, 2012 3:53 am Post subject: |
|
|
potaters: what you are saying about strings is correct but you are lacking an understanding of why that is. In fact it is possible to overwrite longer strings.
|
|
Back to top |
|
 |
Fafaffy Cheater
Reputation: 65
Joined: 12 Dec 2007 Posts: 28
|
Posted: Tue Dec 25, 2012 4:01 am Post subject: |
|
|
I'm impressed actually, I would admit I was wrong in that it was a disassembler rather than a decompiler (was tired and wasn't thinking straight :\) but I'm still impressed anyone on the forums really knew anything like this.
and you too, slugsnack, you seem intelligent as well.
inb4crap
_________________
Brillia wrote: | I FUCKING FUCK SEX |
|
|
Back to top |
|
 |
|