Top > Product Version << Back

(Cover art supplied by ISFDB)


Specification in DeCompiler for C, DCC


<New Features of DCC 2.60, DeCompiler for C>

* All CPU instructions in Pentium IV (Multi-Data instructions, SIMD 2, etc.) are supported.
* All CPU instructions in Pentium III (Multi-Data instructions, SIMD, etc.) are supported.
* All CPU instructions in Pentium Pro (conditional move instructions, cmov, etc.) are supported.
* All CPU instructions in MMX Pentium (MMX instructions, etc.) are supported.
* Making source files is extended to all executable files in Windows 95, 98, and Windows 2000/NT/XP.
* Supported the new mechanism that enables to automatically judge offset operators or immediate values correctly for EXEs with no relocations.
* Both of two moveable versions (Con32/Win32) are included in the product version.

Also,
* TD32's TDS (Borland's debug information) in Windows 95/98/2000/NT/XP is completely supported. By this, for example, you can make TDS by CGN2 directly from MAP file generated by AGNSS, and so, you can execute source-debugging immediately by the output assembly sources.

* In order to correspond to the optimization for registers in compilers, range() option is additionally supported for register variables. The same register can be assigned to the other register variables and can be assigned in several ranges, and so, you can use register variables not losing the intrinsic mechanism of registers that is to save any expression.


<Characteristics of DCC, DeCompiler for C>

[1] Output sources (C/H/LST) can be divided into any module files.
It also produces the makefile for MSC/BCC to recompile and relink.

[2] All labels can be renamed by users. There is no limitation in number of labels. For output C source files, you can redefine static/dynamic variables, types and parameters of functions by any C data types, including 'typedef' and structures, according to Kernighan=Richie's 1st and 2nd edition.

[3] C's all control structures (functions and switch/for-while/if-else statements) are automatically analyzed and represented as C sources.
The nested level in structural description such as structures, multi- dimensional arrays and switch/for-while/if-else statements is supported up to 100 levels.

[4] C source is reproduced directly from executable files, and so it is helpful when transforming to C language, through EXE's, from sources written by other languages such as ASM/PASCAL/BASIC/FORTRAN/C++/Java, etc.

[5] In-line assembly representation is supported. By letting in-line assembly in all area, for example, you can look at the part not represented as C sources, and the C source at the same time. Also it is helpful to recognize much complex assembly sources by structural presentation accompanied with for-while/if-else.

[6] Symbol files (MAP/TDS) are directly produced. By using symbol files, you can debug directly the target executable file by the output C sources. Especially, the output TDS (Borland's symbol file) includes not only C source lines information but also all C data/control structures, and so you can execute, by Borland's debugger, reversely C source-debugging to the target executable file directly without recompiling.


Target CPU: 8086-586/8087-387/Real-Protect mode/Pentium IV
Target System: MS-DOS/Windows3.0-3.1/Windows 95/98/2000/NT/XP/ Dos-Extender/ROM
Size of Input Files: up to 16MB
Type of Input Files: EXE/DLL/EXP/COM/SYS/OBJ/MEM/LIB/RES/SYM/TDS
Output Ascii Files: C/H/LST/CTR/CFR/MAK/LOG/MSG/DMP/MAP/DEF/RC/REN/MOD/DCC
Output Binary Files: TDS/386/RES/CUR/ICO/BMP/FNT/USR
Executable Environment (MSDOS version):
General-use in MS-DOS machine on Intel 80X86-CPU
(after MS-DOS 2.11)
Executable Environment (32-bits Windows version/32-bits Console version): (Note iii)
General-use in 32-bits Windows on Intel 80X86-CPU
Virtual memory: EMS/XMS (Only in MSDOS version)

(Note i) MAPSYM/SYMDEB/MASM/MS-DOS/Windows are the products of Microsoft.
TDMAP/TD386/TD32/TASM are the products of Borland International.
(Note ii) DCC is an abbreviation of DeCompiler for C.
AGNSS is an abbreviation of Automatically GeNErating Source System.
AGNES is a nickname of AGNSS, or the name of a main process in Disassembler.
(Note iii)
As product versions for DCC, we supply two kinds that are different
only in the executable environment.
32-bits Windows version (Win32 version) is moveable as a GUI application
in 32-bits Windows (Windows 95/98/2000/NT/XP).
32-bits Console version (Con32 version) is moveable as a 32-bits
console application in 32-bits Windows (Windows 95/98/2000/NT/XP).
The two moveable versions have the same input/output files and
the same mechanism. They are the almost same in speed in execution.
The product version of DCC includes both moveable versions, Win32 and Con32.

Target CPU:
Intel 8086 to 80586, real and protect mode. MMX instructions in MMX Pentium (586), conditional move (cmov) in Pentium Pro, and SIMD in Pentium III and IV are perfectly supported.

Target executable file:
executable files (EXE,DLL,COM,SYS,etc.) in MS-DOS or Windows 3.0-3.1/Windows 95/98/2000/NT/XP, OBJ files (16/32-bits OMF format), and memory files. For PharLap Dos-Extender, OBJ and simple EXP are supported. Up to 16MB file size as executable file. Also supported to automatically convert the memory spaces up to 1MB into source files (>Only in MSDOS version).

Executable environment of DCC (MSDOS version):
(Remark: MSDOS version of DCC has finished by 2.30.)
General use in all MS-DOS machines mounted by Intel 80X86-type CPU's. The high capacity browser of AGNSS also moves in all MS-DOS machines. (ANSI.SYS needs to be installed in IBM and its compatible machines). 640KB and more of mounted conventional memory. 450KB and more of available conventional memory. (To start CSM needs 530KB and more of available conventional memory.) Version 2.11 and above in MS-DOS.

Executable environment of AGNSS (32-bits Windows version/32-bits Console version):
General-use in 32-bits Windows running on Intel 80X86-type CPU's. There is no restriction in mounted memory chips.

Virtual memory:
EMS and XMS perfectly supported (Only in MSDOS version). Moveable in file mode on disk in case of without any virtual memory.

Supported C compiler to recompile and relink:
MSC and BCC.

Main output files:
Makefile (.MAK) is automatically output to recompile and relink. C sources (.C/.H) and list file (.LST). In Windows, as the complete resource file (.RC) and module definition file (.DEF) being output, one can recompile and relink the source files only by executing a make-utility (MAKE.EXE) for the makefile. Map file (.MAP), dump file (.DMP), logging file (.LOG), message file (.MSG), and so on.

Automatical comments:
Automatical comment files for INT/IO accesses and VMM functions in Windows are supplied in the form of editable ASCII files. (INT/IO instructions are represented only as in-line assembly.)

FP instructions:
All floating-point (FP) instructions up to 80387, conditional move (fcmov) in Pentium Pro, and SIMD (fcom, etc.) in Pentium III are perfectly supported. In emulation (INT 34H to 3DH), the corresponding FP instruction is displayed as comment. (INT instructions are represented only as in-line assembly.)

Virtual segments:
In C++'s OBJ, the virtual segments such as Borland's VIRDEF and Microsoft's COMDAT are automatically detected and reproduced as sources.

Overlaid files:
As overlaid files, Borland's overlay (VROOMM) and Microsoft's old overlay and new overlay (MOVE) are perfectly supported.

Symbols: Renaming labels by users are supported.
As SYM and TDS being supported as symbol files, in those cases, labels are automatically renamed. For OBJ and Windows files, labels are automatically renamed according to their external declarations.

Command file:
All indications in any assembly structures such as code/data description, etc., can be achieved perfectly by AGN commands. All indications in C's data structures can be achieved precisely by any C data structures including 'typedef' and 'struct' by DCC commands. Also supported to alter and indicate C's control structures (functions and switch/for-while/if-else statements). Output source can be divided into any module files, and so you can restrain to produce sources in the standard libraries, etc. In command file, you can use the conditional directives (@ifdef) and the macro mechanism (@macro).

Automatical output of command files:
From TDS (Borland's symbol file), command files of .DCC/REN/MOD are automatically produced. As for TDS, the symbol information for Borland's TD32 (32-bits Windows debugger) is completely supported for both input and output.

Automatical output of source-debugging information:
TDS (Borland's symbol file) is produced in the complete form with all C data structures, and so you can execute reversely C source-debugging to the original executable file directly without recompiling. As for TDS, the symbol information for Borland's TD32 (32-bits Windows debugger) is completely supported for both input and output.

Perfectly automatical mode:
There are mounted two strong simulators. XSIM (EXE Simulator) automatically analyzes the assembly structure of the target executable file such as code/data description, etc. CSM (C Simulator) automatically analyzes the C control and data structure. The nested level in structural description such as structures, multi- dimensional arrays and switch/for-while/if-else statements is supported up to 100 levels.

Call flow diagram:
All functions' or procedures' call_to and call_from flow diagrams are output. In order to know the mechanism of a function, you must know the mechanism of the other functions referred by it. And, conversely, if you knew the mechanism of a function, you need not to trace out the others referred by it. By seeing such a correrative relation among functions in simple call flow diagrams, you can know completely the whole structure of the original executable input file in advance.

ESP-function:
ESP-function, almost always used in Windows 95/98/2000/NT/XP, is supported. In a normal function in 80X86-CPU, the fixed EBP is used to access parameters and local variables, such as [bp+num] or [bp-num]. This method has a defect that it is very easy to identify parameters and local variables by disassembled assembly source files. Hence, in functions of 32-bits Windows, by accessing them, suh as [esp+num], by the variable ESP which always fluctuates together with push/pop instructions, the analysis via a disassembler made be impossible. C simulator of DCC detects such ESP-functions automatically, simulates the fluctuation of ESP-value correctly, and in result, identifies the correct parameters and local variables to output C sources.

Auto-reg_par mode and auto-c_type mode:
Parameters and local variables of functions, including register parameters and register variables, are automatically determined. Also each c_type of a function, its variables, and of data is automatically analyzed and is redefined even if it is a pointer to structure or a funcion pointer.

Delinking Mechanism of Disassembler AGNSS (Recommendataion):
It is only the meaning in C-syntax that DCC analyzes. The trinsic meaning in codes must be analyzed by yourself. In such an analysis, except for ones 10KB or less in file size, the overhead to start C simulator of DCC in many times will become a problem. Assembly source files output by AGNSS do not occur any assembling errors in most cases when reassembled. That is, by using file- divisonal mechanism of output files, you can easily and correctly extract, i.e., delink only OBJ files to be analyzed. By using such delinked OBJ files from a huge EXE as input files of DCC, you can analyze the same codes in a huge EXE without the heavy overhead which always follows to a huge input EXE.

Document files:
All manuals are supplied as document files (about 500KB). The simulation algorithm of EXE simulator, is included in document files with flow charts (HCP-like).

File-compressing tool with the highest compressing rate:
The command files to restore the complete C source files for LHA.EXE, the file-compressing tool by H.Yoshizaki, are included. The restored EXE from C sources behaves the completely same with LHA.EXE.

Integrated Enviromental Shell Module (32-bits Windows version):
In 32-bits Windows version, the integrated enviromental shell module AGNDCCW is included. In there, you can start each executable module in DCC, assign its start options and its command line parameters, and create/ revise the necessary command files. The format of more important AGN/DCC commands becomes more complicated. You can input its parameters from simple dialogs, and so you can easily know the structure of important commands visualizedly. Also you can always see its explanation (.HLP/.DOC) for any command.

Product List

Disassembler AGNSS 2.60 $500 USD

DeCompiler for C DCC 2.60 $500 USD

Disassembler & DeCompiler for C AGNSS & DCC 2.60 $900 USD
(Please select English in the next login screen for paypal!)

Bilyzkid Co.,Ltd.
Higashi-Izumi 1-34-19-102
Komae-Shi, Tokyo 201-0014, JAPAN
Phone:81-3-5497-1962