39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
# DES/UNDES V1.1.0 source reconstruction — v2
|
|
|
|
This directory contains a revised C reconstruction of `des.exe` and
|
|
`undes.exe` after comparison with the original `cryptl99.zip` dependency.
|
|
|
|
## Main files
|
|
|
|
- `des.c` — reconstructed encryption program
|
|
- `undes.c` — reconstructed decryption program
|
|
- `des_common.c`, `des_common.h` — reconstructed common support
|
|
- `reconstruction-notes.md` — evidence, file format and remaining uncertainty
|
|
- `cryptlib-api-map.md` — exact CRYPTLIB 0.99 function mapping
|
|
- `validation.md` — build/round-trip sanity check
|
|
- `asm/` — disassembly used for the reconstruction
|
|
- `third_party/cryptl99.zip` — user-supplied original archive
|
|
- `third_party/cryptlib-0.99/` — extracted dependency source
|
|
|
|
## What changed from the first reconstruction
|
|
|
|
The supplied CRYPTLIB source resolves several earlier uncertainties and one
|
|
important mistake:
|
|
|
|
1. The real API names are lower-case (`initLibrary`,
|
|
`queryAlgoModeInformation`, `retrieveIV`, etc.).
|
|
2. The executable uses `CRYPT_ALGO_3DES`, not `CRYPT_ALGO_DES`.
|
|
3. The mode is `CRYPT_MODE_CBC`.
|
|
4. The effective queried key size is 14 bytes.
|
|
5. The queried/stored IV is 4 bytes, not 8 bytes.
|
|
6. The archive contains exactly libdes 3.14, matching the embedded executable
|
|
version string.
|
|
|
|
## Status
|
|
|
|
The control flow and file-format reconstruction is high confidence. The code
|
|
is intended primarily as a faithful readable reconstruction. It has not been
|
|
claimed to be byte-for-byte recompilable to the original executables because
|
|
that would require the exact original compiler flags, source layout, linker
|
|
configuration and original identifiers.
|