MBR反汇编

关于MBR的反汇编,我想花点时间向您展示一下快速而肮脏的方法。
首先,使用低级扇区编辑器(如Microsoft资源工具包实用程序DiskProbe)将MBR转储到文件中。保存文件后,启动一个程序(如记事本)并使用Windbg(Windows调试器)附加到它。
接下来,找到一个有效但未占用的内存范围(默认堆是一个很好的候选者)。内存范围至少需要512(0x200)字节。例如,我在这里找到了我的:

000120a0 00000000 00000000 00000000 00000000

000120b0 00000000 00000000 00000000 00000000

000120c0 00000000 00000000 00000000 00000000

000120d0 00000000 00000000 00000000 00000000

000120e0 00000000 00000000 00000000 00000000

000120f0 00000000 00000000 00000000 00000000

00012100 00000000 00000000 00000000 00000000

00012110 00000000 00000000 00000000 00000000

00012120 00000000 00000000 00000000 00000000
...

在进程中找到一个良好的内存范围后,使用以下命令将文件内容读入该内存位置:

0:001> .readmem c:<<path>>sector00.bin 120a0 120a0+0x1ff

现在内存中有了MBR,它可以像任何其他汇编代码一样进行全面检查。

0:001> db 000120a0

000120a0 33 c0 8e d0 bc 00 7c 8e-c0 8e d8 be 00 7c bf 00 3.....|......|..

000120b0 06 b9 00 02 fc f3 a4 50-68 1c 06 cb fb b9 04 00 .......Ph.......

000120c0 bd be 07 80 7e 00 00 7c-0b 0f 85 10 01 83 c5 10 ....~..|........

000120d0 e2 f1 cd 18 88 56 00 55-c6 46 11 05 c6 46 10 00 .....V.U.F...F..

000120e0 b4 41 bb aa 55 cd 13 5d-72 0f 81 fb 55 aa 75 09 .A..U..]r...U.u.

000120f0 f7 c1 01 00 74 03 fe 46-10 66 60 80 7e 10 00 74 ....t..F.f`.~..t

00012100 26 66 68 00 00 00 00 66-ff 76 08 68 00 00 68 00 &fh....f.v.h..h.

00012110 7c 68 01 00 68 10 00 b4-42 8a 56 00 8b f4 cd 13 |h..h...B.V.....

由于这是16位程序集,您可以使用“ur”进行反汇编:

0:001> ur 120a0
000120a0 33c0 xor ax,ax
000120a2 8ed0 mov ss,ax
000120a4 bc007c mov sp,7C00h
000120a7 8ec0 mov es,ax
000120a9 8ed8 mov ds,ax
000120ab be007c mov si,7C00h
000120ae bf0006 mov di,600h
000120b1 b90002 mov cx,200h
...
原文地址:https://www.cnblogs.com/yilang/p/13581293.html