disassembler for borland cbuilder5

Posted on 2007-08-12
Last Modified: 2013-11-17
i have a exe file that compiled with borlad cbuilder5 .
How can i get it source?
Question by:cjavadc
    LVL 86

    Accepted Solution

    Ask the author about it. All you can get is the disassembly, but that is far from the C++ source code. Check out and
    LVL 6

    Expert Comment


    irrespective of the development platform... u can only get a disassembly of the exe in the form of Assembler instructions from binary machine code... and not high level code like C++ can be reverse engineered from a binary executable. so whether it is developed on borland cbuilder5 or in VC6 doesn't matter.  but in the case of Java class files u can reconstruct the exact source code from the Java Virtual Machine Code unlike C++ code.

    There are a couple of reverse engineering tools like

    BDASM v2.5 - Lightweight disassembler, an alternative to W32Dasm (1.84Mb's).

    Interactive Disassembler Pro (IDA) v4.30a - Masterpiece from Datarescue (32Mb's) (since this link seems to disappear or be actively removed, I suggest you make note of the name 'ida430a.rar' for future searches ;-) ).

    Interactive Disassembler Pro (IDA) v4.51.770 - A later version of IDA (29.2Mb's).

    Interactive Disassembler Pro (IDA) v4.9 SDK - for making your own plugins (6.37Mb's).

    W32Dasm v8.93 - Good disassembler for starting out, superseeded by IDA a while back.

    Go to this website for more details on Reverse Engineering Resources:

    LVL 16

    Expert Comment

    by:George Tokas
    >>How can i get it source?
    You can't if you want the c++ code.
    Maybe it's possible to get the forms and what VCL components are included inside BUT if a VCL crypter is used you will not be able to find that out also.
    It would be better to create a similar application from scratch...

    George Tokas.
    LVL 18

    Expert Comment

    Lets suppose you find a pretty good disassembler. The code it outputs is 80386 (or 486 or Pentium with 3Dnow, etc.) assembler. Something like:
       MOV      DX,0010
       PUSH      CS
       POP      DS
       MOV      AH,09          <--- AH = 09 is for "String output"
       INT      21                <--- DOS Cal to output string pointed by DX
       MOV      AX,4C01     <---  AH = 4C is for "Terminate with return code"
       INT      21               <---  DOS Call to terminate with return code = 01
    and so on. An intelligent disassembler would be able to understand INT 21 as "DOS Call", but the result is still almost impossible to understand, because it is Assembly code, thousand of lines!
    Even a very intelligent disassembler would be unable to "reconstruct" the C code, as stated in previous comments. C++... less chances...
    Probably the best way is running the original program as an inspiration and develop a new program, as suggested by gtokas.
    LVL 2

    Expert Comment

    You cannot get the original ASCII source code. It was translated to machine code by the Borland compiler. All comments of the programmer(s) are missing, too!

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Free Trending Threat Insights Every Day

    Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

    Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall…
    This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
    The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
    The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.

    779 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    16 Experts available now in Live!

    Get 1:1 Help Now