How to unpack the executable file?

The normal DOS executable unpacking stub first copies itself plus the packed
data to a higher memory location. It then starts to unpack the data to the
address space where to execution started. As a result, the memory location
will now contain the unpacked code with the Original Entry Point (OEP) of
the real program. After the unpacking is done, the stub jumps back to the
address of the first executed instruction and starts the execution of the
real program. This behaviour can be used as a quite easy method to unpack
the packed executable now.

1. Run: DD executable
2. Debug program up to the moment as far as you will be at the beginning of
   the program (after performing the long jump from the unpacking procedure
   (JMP far X:X or RETF)).
3. Press Ctrl-D (DUMP 1st MB to file). As the file name give to "STAGE.1ST".
   Current contents of registers CS:IP, SS:SP will also be saved into the
   file. Confirm pressing the ENTER and exit from DarkDebugger to DOS.
4. Run: DD -4 executable
5. Repeat step 2.
6. The same as step 3, only give the file name to "STAGE.2ND".
7. Run GEN-EXE.EXE program. The program will generate the unpacked executable
   file UNPACKED.COM or UNPACKED.EXE from STAGE.1ST and STAGE.2ND files.
