Programming 版 (精华区)
发信人: Mice (鼠儿), 信区: Programming
标 题: 加密&解密----(33)
发信站: 紫丁香 (Sun Sep 14 16:28:28 1997)
02.
* 日前post一封FPE5.0破解法,内容有误!深感抱歉! :(
此乃因笔者低估其程式防护能力!忽略安装时会读取'硬碟结构资料'的重点!
导致日前破解法只在笔者机器上有效!
* FPE5.0安装采(乱数取值+硬碟结构资料)混合编码! 後面说明!
* 笔者才疏学浅,经几番波折深入程式,终於分析出程式破解法!
在此将心得分享,希望高手指教!
* 破解法:
1.修改 'CD_INST.EXE' (磁片版笔者没有,看看後面说明,改改看吧!)
[Find] B0 06 E6
[Edit] E9 D9 00
2.修改 'FPE4G.DAT' (这段code很长不要抄错了哟!)
[Find] B4 30 CD 21 3C 04 73 10 B0 02 B9 01 00
[Edit] 31 C0 39 06 D4 34 74 10 A3 D4 34 EB 34
3.修改 'FPE95.DAT' (FPE95未编码,奇怪吧!)
[Find] 81 3E 62 42 CD 21 74 0F
[Edit] C7 06 62 42 CD 21 EB 0F
* 破解说明:
FPE5.0采(乱数取值+硬碟结构资料)混合编码!
1.其 FPE4G.COM 编码方式:
>编码两次,第一次 使用者输入作Key-Word,第二次 硬碟资料作Key-Word
>首先 2次随机乱数 合并取得1word值 A
>再读取硬碟 第0磁区中 相关sector,head等4word值相加得 B
>将以上A,B值作运算 得出 Page,X,Y 值 (分别读3次硬碟求出)
>要求使用者输入密码当作 Key-Word
>读出 FPE4G.DAT 把其中'部份程式码段'与此 Key-Word 作相减运算编码
>再读出硬碟资料,运算後作 Key-Word 为'程式码後半段'编码
>最後Copy进硬碟
2.其 FPE4G.COM 解码方式:
>由硬碟资料经运算得 Key-Word 与程式码作相加解码
>第一阶段解出前 2Bytes 为 90 90 表程式正确
>第二阶段,执行相同解码段,Key-Word再与程式码作相加解码,解出'程式码後半段'
>解出前 2Bytes 不为 90 90 ,跳至'程式码後半段'
3.破解对策为 1) CD_INST.EXE中 跳过 乱数取值 ,保持其原值0,
跳过 读硬碟资料,保持其原值0,
则 Key-Word 为0,原程式码相当於未编码(减0=不减)
2) FPE4G.COM中 使第一阶段解码之 Key-Word 为0,
第二阶段 Key-Word 照常读硬碟资料作 Key-Word 解码
PS:因此段程式码需空间,故覆盖检查DOS版本之程式段
其检查原因为DOS4.x前INT25h用法有差异,
但现在还在用DOS4.x前版本的,应该找不到了吧! :)
--
我是一只好老鼠!
※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: 202.118.226.75]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:12.740毫秒