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毫秒