Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


What's a good way to decompile a dll?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Random spam
View previous topic :: View next topic  
Author Message
Cryoma
Member of the Year
Reputation: 198

Joined: 14 Jan 2009
Posts: 1819

PostPosted: Mon Dec 24, 2012 10:41 pm    Post subject: What's a good way to decompile a dll? Reply with quote

I want to make slight changes to it.
Back to top
View user's profile Send private message
TsTg
Master Cheater
Reputation: 5

Joined: 12 Dec 2012
Posts: 340
Location: Somewhere....

PostPosted: Mon Dec 24, 2012 10:57 pm    Post subject: Reply with quote

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
View user's profile Send private message
Cryoma
Member of the Year
Reputation: 198

Joined: 14 Jan 2009
Posts: 1819

PostPosted: Mon Dec 24, 2012 11:21 pm    Post subject: Reply with quote

Fairly certain it was cpp, anyone know a good decompiler or have a preference?
Back to top
View user's profile Send private message
Fafaffy
Cheater
Reputation: 65

Joined: 12 Dec 2007
Posts: 28

PostPosted: Tue Dec 25, 2012 1:28 am    Post subject: Reply with quote

OllyDBG is a fairly good decompiler all the pr0 h4x3rs use.
_________________
Brillia wrote:
I FUCKING FUCK SEX
Back to top
View user's profile Send private message Send e-mail
PUSHEAX_PUSHEAX
Grandmaster Cheater
Reputation: 72

Joined: 13 Apr 2009
Posts: 969

PostPosted: Tue Dec 25, 2012 2:17 am    Post subject: Reply with quote

^ 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
View user's profile Send private message
the the the
Master Cheater
Reputation: 46

Joined: 15 Jun 2008
Posts: 429

PostPosted: Tue Dec 25, 2012 2:19 am    Post subject: Reply with quote

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
View user's profile Send private message
PUSHEAX_PUSHEAX
Grandmaster Cheater
Reputation: 72

Joined: 13 Apr 2009
Posts: 969

PostPosted: Tue Dec 25, 2012 2:23 am    Post subject: Reply with quote

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
View user's profile Send private message
Cryoma
Member of the Year
Reputation: 198

Joined: 14 Jan 2009
Posts: 1819

PostPosted: Tue Dec 25, 2012 2:34 am    Post subject: Reply with quote

If I just wanted to edit some gui strings I could search for those right?
Or am I way off?
Back to top
View user's profile Send private message
PUSHEAX_PUSHEAX
Grandmaster Cheater
Reputation: 72

Joined: 13 Apr 2009
Posts: 969

PostPosted: Tue Dec 25, 2012 2:50 am    Post subject: Reply with quote

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
View user's profile Send private message
atom0s
Moderator
Reputation: 205

Joined: 25 Jan 2006
Posts: 8587
Location: 127.0.0.1

PostPosted: Tue Dec 25, 2012 3:14 am    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
gogodr
I post too much
Reputation: 125

Joined: 19 Dec 2006
Posts: 2041

PostPosted: Tue Dec 25, 2012 3:18 am    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
PUSHEAX_PUSHEAX
Grandmaster Cheater
Reputation: 72

Joined: 13 Apr 2009
Posts: 969

PostPosted: Tue Dec 25, 2012 3:20 am    Post subject: Reply with quote

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 Sad
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
View user's profile Send private message
Slugsnack
Grandmaster Cheater Supreme
Reputation: 71

Joined: 24 Jan 2007
Posts: 1857

PostPosted: Tue Dec 25, 2012 3:53 am    Post subject: Reply with quote

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
View user's profile Send private message
Fafaffy
Cheater
Reputation: 65

Joined: 12 Dec 2007
Posts: 28

PostPosted: Tue Dec 25, 2012 4:01 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Random spam All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites