Decompiling A .dll

DY357LXDY357LX Playing since day 1. Still can't Comm.England Join Date: 2002-10-27 Member: 1651Members, Constellation
<div class="IPBDescription">Is It Possible?</div> Long story short:
I want to decompile various .dll's to see how various programs work.
(I'm one of those people who took various appliances apart as a kid,
completely ruining a VCR in the proccess)
Is it possible? If so... how?
Any info/tools/whatever would be nice.

Comments

  • Vulgar_MenaceVulgar_Menace Join Date: 2003-10-29 Member: 22118Members
    you MIGHT find something at <a href='http://www.dll.com' target='_blank'>this website</a>, if not plenty of dlls to fool with once you find out how. <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->
  • esunaesuna Rock Bottom Join Date: 2003-04-03 Member: 15175Members, Constellation
    One thing i'm thinking, is it entirely legal to decompile .dlls? I mean, reverse engineering isn't the nicest thing in the world.
  • RPG_JssmfulhudRPG_Jssmfulhud Join Date: 2002-11-02 Member: 4006Members
    You can open any dll with Microsoft Visual C++, for example. This tool is actually for creating/editing dlls and so on. But surely, if you never had anything to do with dlls or c++, or even basic (DOS - good times), it's not going to make much sense. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
  • TheWizardTheWizard Join Date: 2002-12-11 Member: 10553Members, Constellation
    edited November 2003
    edit: aside from using visual C++. I give this example because I write all my code using a Sun Solaris platform.

    There is no way to decompile something with complete accuracy.
    (you can get pretty close with some compiler's however)

    Part of the compiler's job is to take the HLL(High Level Language) and redesign the code to run more efficiently and quickly. An example would be reducing memory accesses by storing data in local variables if possible.

    While you can decompile code to a functional example it is hard to get it back exactly.

    This is one of the reasons why the HL2 source leak was such a big deal.
  • SoulSkorpionSoulSkorpion Join Date: 2002-04-12 Member: 423Members
    The short answer is: no. It's not possible.

    The long answer is: no, because different compilers do things differently. A lot of the c++ standard doesn't mandate how stuff actually has to be implemented, only that it has to be done. Also, the compiler might not even be standards compliant, or it might throw in its own things. In addition, you don't know what optimisations have been done, or how to undo them. Finally, if you were to successfully decompile something it probably wouldn't be readable; variable names aren't compiled into a program so you'd have to work them out by scratch, and high-level c++ constructs are likely to be compiled into lower level constructs, which would be decompiled back into the low level constructs (so you wouldn't see how they actually wrote the code in the first place).

    If you want to know how games work, I suggest you download an SDK or two and have a look (such as the HL SDK). Yes, I know that doesn't really solve your problem by letting you find out how *everything* works, but it's a start. Bare in mind that most commercial companies don't actually <i>want</i> people to be able to pull apart their programs to see how they work, and it doesn't happen very often (although this isn't really the cause of the difficulty in decompiling programs).

    By the way, if you intend to download the HL SDK I suggest you do a quick Google for "Hungarian notation" and learn what that is, otherwise you're going to be <i>very</i> confused by the variable names Valve uses <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html/emoticons/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif'><!--endemo-->
Sign In or Register to comment.