Category : Unprotects for Games and Such
Archive   : UNP-R-T.ZIP
Filename : SOFTG2.UNP

 
Output of file : SOFTG2.UNP contained in archive : UNP-R-T.ZIP
SOFTG2.UNP Breaking Sofguard version 2.00
Supplemented by Weird Beard
by The Lone Victor

Programs that are protected by the Softguard system are distingished
by the fileS CML0200.HCL and VDF0200.VDW which are hidden in the root
directory when you install the program on your fixed disk. The 0200
part of the file names is the Softguard version (2.00) while CML stands
for Common Loader and VDF is the Volume Descriptor File. The extentions
HCL and VDW stand for Hard Common Loader and Verify Descriptor Working
copy. In addition, there will be a hidden root file with a .EXE or .LOD
extention. This is the REAL program, which has been encrypted and hidden.

The program .COM, in the product directory is the Softguard mini-
loader. All it does is call the Common Loader. For example, when you run
dbase, the program DBASE.COM loads CML0200.HCL high in memory and runs it.
CML decrypts itself and reads VDF0200.VDW. The VDF file contains some code
and data from the fixed disk FAT at the time of installation. By comparing
the information in the VDF file with the current FAT, CML can tell if the
CML, VDF, and DBASE.EXE files are in the same place on the disk where they
were installed. If they have moved, say from a backup & restore, then dBase
will not run.

This text file is designed to let you unprotect ANY of the programs
using the Softguard 2.00 system. We will use dBase III as an example,
but values for other programs will be included in a table.

The dBase III compiler named CLIPPER uses Softguard 2.03 (i.e. has
CML0203.HCL, etc.) Many of the code addresses are different in this
version. This text will not, currently, unprotect any programs using
Softguard 2.03. Versions 1.00 of dBase III and Framework used ProLock.
To unprotect Prolock disks read the file PROLOCK.UNP, also by yours truely.

This table is an experiment designed to keep down the number of files
uploaded to BBS's. When I started it, this text file was named SOFTG1.UNP.
Whenever you add a product to the table (including your "name" if desired)
increment the file name by one and upload it to your local BBS. Don't worry
about the fact that others will be doing the same. Higher versions of
SOFTGxxx.UNP will not INSURE that they contain all the tabulated products,
but will be MORE LIKELY to contain them all. Eventually we'll get them all
collected.

If you find a new program to add to the table, just enter the name of
the encrypted, hidden file in the root directory, and it's size converted
to HEX. Try it out before you upload it to your BBS.

If you have any comments on this unprotect routine or the PROLOCK.UNP
routine, please leave them on the Atlanta PCUG BBS (404) 634-5731.

The Lone Victor - 6/26/85



TABLE OF VALUES FOR VARIOUS PROTECTED PROGRAMS

FILE FINAL
PRODUCT VERSION NAME EXT SIZE: BX= CX= CONTRIBUTOR
------------------------------------------------------------------------

dBase III 1.10 DBASE EXE BX = 1 CX = AC00 The Lone Victor 4/15/85
Framework 1.10 FW EXE BX = 2 CX = F400 Q-1367
(I question this next file size - L.V.)
WordStar 1.00 WS2000 EXE BX = 1 CX = AC00 Gerald Lee
Double DOS ? DOUBLEDO EXE BX = ? CX = ? Big Al & Coffee Man
Spot Light ? SL EXE BX = 0 CX = 6700
PC2622 3.00 PC EXE BX = 1 CX = A200 Weird Beard





The following instructions show you how to bypass the SoftGuard copy
protection scheme using dBase III version 1.10 as an example. To use it
with other products, simply substitute the values in the table above for
the values given below. The only things that change are the file name,
and the size that goes in the BX:CX register pair.

First, using your valid, original dBase III diskette, install it on
a fixed disk. You cannot use this text to unprotect the floppy directly!
Softguard hides three files in your fixed disk root directory: CML0200.HCL,
VDF0200.VDW, and DBASE.EXE. It also copies DBASE.COM into your chosen dBase
directory. DBASE.EXE is the real dBase III program, encrypted. (This file
might also be named DBASE.LOD, but is the same thing.)

Second, un-hide the three files in the root directory. You can do
this with the programs ALTER.COM or FM.COM found on any BBS.

Make copies of the three files, and of DBASE.COM, into some other
directory.

Hide the three root files again using ALTER or FM.

Following the dBase instructions, UNINSTALL dBase III. You can now
put away your original dBase diskette. We are done with it.

Next we will make some patches to CML0200.HCL to allow us to trace
through the code in DEBUG. These patches will keep it from killing our
interrupt vectors.

debug cml0200.hcl
e 3F9 2A.4A ; change the 2A to 4A
e 49D F6.16 ; if any of these numbers don't show up
e 506 E9.09 ; it's not working.
e A79 00.20 ;
e AE9 00.20 ;
e 73C 97 FA FA F4 F1 7E ; this is an encrypted call to 0:300
w ; write out the new CML file
q ; quit debug


Now copy your four saved files back into the root directory and
hide the CML0200.HCL, VDF0200.VDW, and DBASE.EXE files using ALTER or FM.

We can now run DBASE.COM using DEBUG, trace just up to the point
where it has decrypted DBASE.EXE, then write that file out.

**** USE THE FILE NAME LISTED IN THE TABLE ABOVE ****
**** E.G. USE FW.COM INSTEAD OF DBASE.COM FOR FRAMEWORK ****

debug DBASE.com ; name of file that runs the product
r ; dump debug's registers

**** WRITE DOWN THE VALUE OF DS FOR USE BELOW. ****
**** THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****

a 0:300 ; we must assemble some code here
pop ax
cs:
mov [320],ax ; save return address
pop ax
cs:
mov [322],ax
push es ; set up stack the way we need it
mov ax,20
mov es,ax
mov ax,0
cs:
jmp far ptr [320] ; jump to our return address

g 406 ; now we can trace CML
t
g 177 ; this stuff just traces past some
g 1E9 ; encryption routines.
t
g 54E ; wait while reading VDF & FAT
g=559 569
g=571 857 ; DBASE.EXE has been decrypted

**** USE THE FILE SIZE LISTED IN THE TABLE ABOVE ****
**** THE VALUES HERE ARE FOR DBASE III 1.10 ONLY ****

rBX
:1 ; set BX to 1 for dBase
rCX
:AC00 ; set CX to AC00 for dBase

**** USE THE FILE NAME LISTED IN THE TABLE ABOVE ****

nDBASE.bin ; name of file to write to
w XXXX:100 ; where XXXX is the value of DS that
; you wrote down at the begining.
q ; quit debug

Last, unhide and delete the three root files CML0200.HCL, VDF0200.VDW,
and DBASE.EXE. Delete DBASE.COM and rename DBASE.BIN to DBASE.EXE. This is
the real dBase III program without any SoftGuard code or encryption. It
requires only the DBASE.OVL file to run. Every protected program I have seen
has the .EXE extention, but it is possible to use Softguard to encrypt .COM
files too. See the table above for the proper extention to put on the de-
crypted file.



  3 Responses to “Category : Unprotects for Games and Such
Archive   : UNP-R-T.ZIP
Filename : SOFTG2.UNP

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/