我也想玩玩它了。 "8>T
N*y09?/h
但是,它有一个硬件加密卡,插在电脑里面的ISA总线接口上。 -W<x|ph
U
\9N1:
没有它,扫描1程序就不work. q,(U 8
=Q>'?w>
肿么办呢?里面有啥秘密呢? ,3 =|a|p
[> Q+=(l
一个假期里,人家不上班的时候,我找一个相熟的女打字员偷偷借出来了,她电脑坏了也常找我修修补补。 9KkxUEkW
8>%:MS"
x\T 9V~8a
我家里那时候没有电脑啊! 9Ra*bP ]1
W1fEUVj
带着它去了门口的LQ公司,自己组装了一台286兼容机。 /_rEI,[k
V4PI~"4q#1
那个时候我连ISA总线接口规范也不懂,只是知道一点,它里面绝对没有通过DMA总线访问的存贮器。因为电脑开机后,从0-640KB RAM中没有它的地方,而从A000:0 - F000:0FFF的ROM中可以看到除了固有的BIOS外,没有别的。实模式下就这些东东。 JHC 6l
gMS-mkZ
先DEBUG找找有没有小虫再说吧! g1UP/hNJ\8
]
3nka$wA*
72小时!!!! B&3oo
@9Rgg9r
整 整 3天,我跟踪了它2天半! 店里给我准备了水和方便面,下班就把我关在里面。 ~.;+uH<i
.SzPig
发现它总是在扫描1时写入1个特定的端口,然后从另一端口读出点东东。 yPs4S?<s
pUi|&F K">
然后,不管三七二十一,把pass1全部反汇编成一个巨大的文本文件,找出了所有IN 和 OUT 指令。这个好办,咱有DOS的FIND命令,那时叫管道或过滤操作。 5[suwaJQ
ya.!zGH
type pass1.txt | find "IN 7E" >in.txt F%M4i`Vh
type pass1.txt | find "OUT 7F" >out.txt M{w[hV
2iO AUo+
再看看它们是不是真的 in 和 out 指令,因为许多字符也会被反汇编成莫名其妙的指令。debug比较笨,不会反汇编伪指令,所以它是不会给我反汇编成类似 db "this is a string other than a series of 8086 instruction$"这样的东东的。 LlKvi_z
*:L-/Q)i
其实,那个年代实际上是有专门的反汇编程序的,能根据内容反汇编出不同的段,类似于: _~]~ssn,1
I?r7dQEm
Identfier1 segment ?NkweT(
msg01 db "this is a data segment", 0dh,0ah }coSMTMv6
ends e=e^;K4
OeLM*Zi
但是,俺不是圈内人,不知道有这好东东啊! 9$U@h7|Q`
bis}zv^%v
Z]OXitt7
不管如何,我找到了它的读写端口的真实指令和地址。 84 5a%A$
B >2" O
再跟踪它就好办了,直接运行了所有读写 7E和7F端口的地方。看看它到底读出了什么东东。 QhR.8iS
:p%G+q2
2[-@
.gH
3c#oK
8`~M$5!