Decoding the 90s: Cryptography in Early Software Development (2023)
a year ago
- #DOS
- #reverse-engineering
- #cryptography
- 这篇博客文章详细介绍了对QText(一款DOS时代的希伯来语-英语文字处理软件)进行逆向工程,以恢复加密文档中丢失的密码的过程。
- 初步分析显示密码很短(4个字符,包含大写字母和数字),且加密方式较为简单,没有使用盐值,使得暴力破解成为可能。
- 研究发现加密密钥被嵌入在文档头中,因此团队将重点放在逆向工程密钥派生算法上。
- 团队使用DOSBOX和IDA Free 5.0进行逆向工程,过程中遇到了Turbo Pascal覆盖模块和用PKZip压缩的DOS MZ可执行文件的挑战。
- 团队识别出一个关键的密钥扩展函数,该函数涉及置换过程和用于验证字节值的静态位图。
- 置换函数是可逆的,这使得团队能够分解密钥,并通过有效字符和密钥结构的约束条件缩小可能的密码范围。
- 最终开发了一个Python脚本来自动化分解和验证过程,高效地恢复了原始密码。