📄 db16.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0050)file://\\Server\pub\Hacker\Documents\JM\jm1-01.txt -->
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY><XMP>哇哈..我来啦!
现在又来讲解破解技术啦! 希望大家都能学有所成才好 以免又有一大堆人
询问破解码了 这样就太不好了 毕竟还是要自个去破解才好玩不是吗? 当然还是不太
希望大家都将新的GAME破解公怖出来 以免程式设计师没饭吃 毕竟开发出一套产品是
很花时间及金钱的 所以希望大家共勉之。
解 妖魔道 追踪过程
C:\YMD>DEBUG ST.EXE (15968 BYTE 用UP.EXE 解压缩)
-U 08B2
28C7:08B2 8E1E1A00 MOV DS,[001A]
28C7:08B6 33F6 XOR SI,SI
28C7:08B8 33FF XOR DI,DI
28C7:08BA B9007D MOV CX,7D00
28C7:08BD F3 REPZ
28C7:08BE A5 MOVSW
28C7:08BF B8362B MOV AX,2B36
28C7:08C2 8ED8 MOV DS,AX
28C7:08C4 833E910B01 CMP WORD PTR [0B91],+01
28C7:08C9 7521 JNZ 08EC
28C7:08CB E88101 CALL 0A4F
28C7:08CE 833E930B01 CMP WORD PTR [0B93],+01
28C7:08D3 7513 JNZ 08E8
28C7:08D5 C706910B0000 MOV WORD PTR [0B91],0000
28C7:08DB C706930B0000 MOV WORD PTR [0B93],0000
28C7:08E1 83061E0001 ADD WORD PTR [001E],+01
28C7:08E6 EB02 JMP 08EA
28C7:08E8 EB1D JMP 0907
28C7:08EA EB03 JMP 08EF
28C7:08EC E98FFE JMP 077E
28C7:08EF 833E1E0003 CMP WORD PTR [001E],+03
当进入妖魔道询问密码的地方时 也就是 画面上『请输入第一次密码』 按下 CTRL+D 中断
便会看到以上程式段 应该都停在 28C7:08BD F3 REPZ 这个指令位址上 等待您输入密码
往下找几行就是判断密码的地方罗! 也就是 28C7:08D3 7513 JNZ 08E8 罗! 聪明的您应
该知道如何修改了吧! PS:^^^^^^^^^以上这个位址会随记忆体而变动 所
以请不用担心! 这是正常现象。
这套GAME画面不错.值得玩家购买唷! 请给大宇公司一些支持及鼓励 相信国内GAME会更好
当然也需要大家的认同罗! 附带一题:就是破解密码只是为了原版使用者的方便 请勿将破
解码随意散播 。本文件纯属讨论性质 请勿用在非法地方 本人保留著作权 请勿更改。
这套GAME很适合初学者一尝破解的快感 相信对您的信心一定可以大增。
8259补充说明:
8259为一种可程式化的优先序岔断控制器,所有PC周边硬体的岔断均
必须透过这个元件来触发所对应的岔断处理程式。以下我们先说明8259的
硬体特性。8259共分成四个启始命令字组ICW和三个操作命令字组OCW,前
者做为初始化时使用,後者则可供程式自行使用。8259初始化的过程为∶
送出ICW1
送出ICW2
if 串接模式 then 送出ICW3
if 需要ICW4 then 送出ICW4
各启始命令字组的意义为∶
1.ICW1
位元7~5 = 岔断向量位址(只用在MCS-80模式)
位元4 = 固定为1
位元3 = 0为边缘触发(edge trigger)
1为位准触发(level trigger)
位元2 = 呼叫位址间隔(只用在MCS-80模式)
0为呼叫位址间隔8
1为呼叫位址间隔4
位元1 = 0为串接模式(cascade mode)
1为单一模式(single mode)
位元0 = 0不需要ICW4
1需要ICW4
说明∶8259除了可供8088系列使用外,也可供MSC-80系列使用,因此当任
何位元若标明只使用在MSC-80模式时,PC上均不需使用。另外,由
於PC上使用的是8088系列的CPU,必须利用ICW4指定为8088模式,
因此本启始命令的位元4、1均必须固定为1,位元7~5、2则可为0
可为1。至於采用何种触发方式,则依电路特性而定,PC上通常采
用边缘触发,因此位元3也大致固定为0。比较有争议的是位元1的
值。在旧型的PC/XT上,由於只使用一个8259做为岔断控制用,因
此必须使用单一模式,故它的初值为13h。但到了PC/AT时,由於系
统功能加强,原来的一个8259已不敷使用,於是便扩增为两个8259
串接在一起,因此这两个8259便都必须使用初值11h。
2.ICW2
(1) MCS-80模式
位元7~0 = 岔断向量位址
(2) 8088模式
位元7~3 = 岔断向量位址
位元2~0 = 固定为0
说明∶这个命令是用来设定硬体岔断时,所要执行的岔断向量启始值。
PC/AT的第一个8259触发的岔断在08h~0Fh,因此初值为08h;第二
个8259触发的岔断在70h~77h,因此初值为70h。这些初值若在不
影响系统的岔断功能下,是可以随意改变的。
3.ICW3
(1) 主控制器(master device)
位元7~0 = 各位元分别表示IRQx是否有串接另一个8259控制器,
0表示没有,1表示有。
(2) 次控制器(slave device)
位元7~3 = 固定为0
位元2~0 = 次控制器的识别码。
说明∶这个初始命令必须有两个以上的8259串接在一起时才使用的,因此
PC/XT并不使用这个初始命令。至於PC/AT上的两个8259,由於是串
接在IRQ2上的,因此主控制器(也就是第一个8259)的初值便必须
为04h。至於次控制器,由於必须配合所串接的IRQ来做编号,因此
次控制器的初值便必须为02h,否则无法正常工作。
4.ICW4
位元7~5 = 固定为0
位元4 = 0为非特别全巢状模式
1为特别全巢状模式
位元3~2 = 0x 不带缓冲模式
10 主控制器带缓冲模式
11 次控制器带缓冲模式
位元1 = 0表非自动结束岔断(EOI)
1表自动结束岔断
位元0 = 0表MSC-80模式
1表8088模式
说明∶特别全巢状模式(special fully nested mode),主要用在大系
统中使用多个8259串接模式时,以便规划不同的岔断权限,详细资
料请参阅相关书籍。通常我们均使用非特别全巢状模式,也就是初
始化时以IRQ0优先权最高,IRQ7最低(这个优先权是可以改变的)。
而在某个岔断发生处理时,优先权更高的岔断允许再发生,以岔断
目前正在处理的岔断,而相同或较低优先权的岔断则不允许发生。
至於是否要规划成缓冲模式,必须视所连接系统之Data Bus线路而
定。对於是否使用自动结束岔断,则由作业系统或岔断处理程式的
设置程式来决定。一般使用自动结束岔断对於岔断处理程式会比较
方便些,不会因忘了送出EOI命令(参阅OCW2命令)而使得系统功
能停止或当机。但是它最大的缺点是,如果相同的IRQ岔断一再发
生,而该岔断程式又使用了STI命令允许岔断发生时(为了让更高
优先权的岔断产生),则可能造成岔断程式再被岔断,导致重入问
题,以及岔断顺序更动等问题。因此在绝大部份的情况下,大都会
采用非自动岔断结束,在PC上亦然。不过若使用非自动EOI的结束
方式时,岔断处理程式在处理完岔断後必须送出一个EOI命令给8259,
表示岔断已处理完,否则8259便视为该岔断未结束而不再产生下个
岔断了。
备注∶关於本初始命令的初值,由XT的BIOS查得为09h,由286 AT的BIOS
查得为01h,也就是前者采用缓冲模式,後者并不采用缓冲模式。
经查阅有关8259零件的手册,其中说明缓冲模式主要用在具有BUS
驱动缓冲区的Data Bus,由8259的SP/EN讯号来控制缓冲区。当不
是缓冲模式时,这个讯号接脚在主控制器上必须接Vcc,而在次控
制器上则必须接地。再查阅86 XT和286、386 AT的线路图,发现确
实XT的设计电路是使用缓冲模式,而286、386 AT的设计电路则为
非缓冲模式。因此在初始化时,必须依PC的种类而有不同的初始化
值(事实上,XT只有一个8259,在初始化过程方面便一定会有不太
一样的地方,必须与AT分别处理),如果未与设计的电路做好匹配
的规划,则有当机之虞(但并不一定会当机。据作者实际测试过,
在某些AT上将8259规划成缓冲模式会当机,而在某些AT上则不管是
否规划成缓冲模式却仍都正常工作,这和主机电路板的线路设计有
关)。
</XMP></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -