发信人: Reinhard.bbs@bbs.sjtu.edu.cn (摘星), 信区: cnhacker
标 题: 黑客心经(一) 破解入门 -- bigmouth 整理(转寄)
发信站: 饮水思源站 (Fri Apr 25 20:51:31 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!sjtubbs
出 处: bbs.sjtu.edu.cn
Posted By: Godman (天地通) on 'hacker'
Title: 黑客心经(一) 破解入门
Date: Sat Sep 23 07:53:32 1995
一杆小猎枪
------ UHS 破解及 Hacker 入门
如何学破解,的确是一言难尽。因为破解软件是一个很综合的技术,它不仅仅
需要掌握计算机软件硬件等各方面的知识,而且需要有极大的耐心。
我不可能再从汇编语言讲起,只好认为大家已经有汇编语言的基本知识,至少
你大概能看懂寄存器,比较,跳转,调用等语句吧,还得知道有个 debug软件。另
外,知道最常用的几个汇编代码:
90 -----> NOP (就是什么也不干啦!)
75 xx -----> JNZ xx
74 xx -----> JZ xx
EB xx -----> JMP xx
E9 xx -----> JMP xx
EA xx -----> JMP xx
(EA EB E9 是不同的跳转,长、短、中)
这次先介绍软件保护的一般手法。下面是从 UHS (Universal Hint System)
软件中提取出来的部分片段:(我破解时使用的是 Turbo Debug,为了让大家看
清除,我只好使用 debug)
debug uhs.exe
-u
31A5:9229 9A00000C4C CALL 4C0C:0000*
31A5:922E 9AE004BD4A CALL 4ABD:04E0*
31A5:9233 9AC7091F4A CALL 4A1F:09C7*
*
*
* 中间都无关紧要
*
*
31A5:938B BF321A MOV DI,1A32
31A5:938E 1E PUSH DS
31A5:938F 57 PUSH DI
31A5:9390 B8FF00 MOV AX,00FF
31A5:9393 50 PUSH AX
31A5:9394 9AF60F0C4C CALL 4C0C:0FF6
31A5:9399 E88676 CALL 0A22
31A5:939C A27B1D MOV [1D7B],AL
31A5:939F 803E7B1D00 CMP BYTE PTR [1D7B],00
31A5:93A4 7503 JNZ 93A9
31A5:93A6 E868D7 CALL 6B11
31A5:93A9 C706002B0300 MOV WORD PTR [2B00],0003
31A5:93AF B8EC07 MOV AX,07EC
你一步一步的 p,当行至 93A6 时,出现了让人“麻烦”的阻挠画面(程序随机
地产生一个字母让用户按),这说明CALL 6B11便是作者对非注册用户的“惩罚”。
如果按错,则出现:
Program aborted!
Program terminated normally (这是 debug 的)
按对时,将进入 93A9。
那么好,将这一句处理掉,修改 E868D7 为 909090。
于是进入时不会再有相应的“惩罚”画面了。
但是,
问题并不是那么简单:进入系统后,还会随机出现注册画面。为什么呢?
其实刚才的破解是有隐患的:
在调用惩罚画面之前,系统已经将是否注册标志设置为 NO,
所以那种修改就是事后诸葛亮了。
不难看出,这个标志以及放在了 [1D7B],
也不难看出,在 CALL 0A22后,该子程序的返回值 AX 放在了 [1D7B]。
结论就很简单了:
9399 处的 CALL 0A22 就是判断系统是否注册的子程序,而[1D7B]处存放的
是系统是否注册的标志。
很幸运,只要把[1D7B]处的数改为非零就可以了。
选择 31A5:9399 E88676 CALL 0A22
修改为 B80100 MOV AX,1
和后面的 A27B1D MOV [1D7B],AL
相映成辉。
破解前,不要忘记拷贝一份备份;
破解后,不要忘记把破解的文件和备份的文件比较一下,产生 Crack99 的破解描述。
留两个课后作业:
1,本文破解是否很容易?
2,本文出现的判断注册与否的片段是:
CALL 0A22
MOV [1D7B],AL
CMP BYTE PTR [1D7B],00
JNZ 93A9
CALL 6B11
如果是
CALL xxxx
XOR AX,AX
JNZ xxxx
CALL xxxx (这几个 xxxx 并不相同,只是表示一个地址而已)
那么破解又应该如何进行?
--
/------ \ | | / ------------odman 不 会 不 知 不 可 不 知 不 能 不 知 |
\--o000-----( )----OOOo-------| e-Mail: guoxm@tx6.dee.tsinghua.edu.cn /
--
沉默的人
Reinhard Young
※ 来源:·饮水思源站 bbs.sjtu.edu.cn·[FROM: 202.96.212.29]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.179毫秒