Programming 版 (精华区)

发信人: Mice (鼠儿), 信区: Programming
标  题: 加密&解密----(14)
发信站: 紫丁香 (Sun Sep 14 15:48:35 1997)


在按下 [F]ileList 选单前进入 SOFT-ICE (按下 [Ctrl]+[D]), 先设定 
BPINT 21 AH=3D 中断点, 此中断点你可以查书得知是 Open File 的 
副程式, 然後选择进入FileList 内, 此时很快就会进入到 SOFT-ICE 划 
面中, 因为接下来会有许都多的开档动作, 例如 RA.LOG, FILELIST.EXE 
等等, 这些我们都不管, 等到 DS:DX 指到CONFIG.FL 时 (CONFIG.FL 
为 FileList 的参数设定档), 记下开档成功後的 HandleNumber, 应该是 
6 (当然也有可能不是), 然後 Disabled BPINT 21, AH=3D 的中断点, 
改设 BPINT 21 AH=3F 的中断点, 因为开档成功了, 接下来自然要读入 
档案罗, 当AH=3F 时, BX 放的就是要读入档案的 Handle Number, 所以注 
意 BX 是不是 0006, 如果是的话代表接下来的动作要把 CONFIG.FL 真正读 
入记忆体中, 此时 DS:DX 所指到的记忆体就是读入 CONFIG.FL 存放的启 
始位址, 动作完毕後, 也把此中断点 Disabled掉, 以免以後的分析动作还会 
不断的中断. 

使用 D DS:DX 的指令 (Dump Memory), 找看看你的 CONFIG.FL 中的注册站 
名和注册码是存在记忆体中的那一段, 例如在 288A:40FA 处存注册 
码, 所以再设中断点倒288A:40FA 处, BPMB 288A:40FA, 然後下 Go 让程 
式全速执行, 以後只要 Read/Write到 288A:40FA 系统就会自动中断回到 
SOFT-ICE 划面中, 此时就要注意有没有 CMP,MOVSW 等等的指令, 因为往往 
程式中会作一些搬移的动作後再作比较, 所以你要特别注意此段注册码被搬 
到那里去了, 还好 FileList 只搬了一次, 假设搬到了 288A:4055所以也 
设 BPMB 288A:4055, 然後再 Go 看看, 原本的 288A:40FA 马上移作它用了, 
所以把它 Disabled 掉, 然後你会看到 288A:4055 有动作了, 一个 Byte 
一个 Byte 的读出, 和另一段 Address 内的资料作比较, 假设是 
288A:4036, 所以赶快看看288A:4036 内的资料, 没错, 刚好 16 Bytes 
就是程式帮我们算出的注册码, "抄" 下来吧, 下回重新设定时用的上. 

当然知道了真正注册码存放的位址, 你也可以 BPMB 设中断点至该 Address, 
但要不要了解其计算的方法就看你罗. 

FileList 在用 SOFT-ICE Trace 时喇叭会 Beep Beep 的叫, 你只要有 
耐心, 就会Trace 的出. 
--
我是一只好老鼠!

※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: 202.118.226.75]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.541毫秒