|
本帖最后由 slore 于 2018-4-8 17:57 编辑
磁盘扇区上的数据是16位的汇编指令,dumpbin只能识别32位和64位的Windows程序不适用。
高级点的你用IDA可以看。
搜索16位反编译器,会有很多,毕竟就是CPU指令的翻译,
我随便点了一个github上的C#的,SharpDisasm。
下了一个NET35支持的版本,WINHEX保存55AA的MBR为MBR.BIN,
然后复制16进制可视区域得到十六进制的文本MBR.TXT
- 33 C0 8E D0 BC 00 7C FB 8E C0 8E D8 8B F4 BF 00
- 06 B9 00 02 FC F3 A4 EA 60 06 00 00 00 00 00 00
- 50 4F 57 45 52 52 45 43 4F 56 45 52 00 00 00 00
- ...
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
复制代码
然后运行:
type mbr.txt|| disasmcli.exe 16
- 0000 33 c0 xor ax, ax
- 0002 8e d0 mov ss, ax
- 0004 bc 00 7c mov sp, 0x7c00
- 0007 fb sti
- 0008 8e c0 mov es, ax
- 000a 8e d8 mov ds, ax
- 000c 8b f4 mov si, sp
- 000e bf 00 06 mov di, 0x600
- 0011 b9 00 02 mov cx, 0x200
- 0014 fc cld
- 0015 f3 a4 rep movsb
- 0017 ea 60 06 00 00 jmp word 0x0:0x660
- 001c 00 00 add [bx+si], al
- 001e 00 00 add [bx+si], al
- 0020 50 push ax
复制代码
也支持32位,64位。drvinst.exe的破解指令也可以看。
D:\Users\Slore\桌面\windisam\Net35>echo 8B F8 85 C0 75 09 |disasmcli.exe 64
0000000000000000 8b f8 mov edi, eax
0000000000000002 85 c0 test eax, eax
0000000000000004 75 09 jnz 0xf
D:\Users\Slore\桌面\windisam\Net35>echo 33 c0 8b f8 90 90 |disasmcli.exe 64
0000000000000000 33 c0 xor eax, eax
0000000000000002 8b f8 mov edi, eax
0000000000000004 90 nop
0000000000000005 90 nop
D:\Users\Slore\桌面\windisam\Net35>echo 8B D8 85 DB 75 04|disasmcli.exe 32
00000000 8b d8 mov ebx, eax
00000002 85 db test ebx, ebx
00000004 75 04 jnz 0xa
D:\Users\Slore\桌面\windisam\Net35>echo 33 c0 8b D8 90 90|disasmcli.exe 32
00000000 33 c0 xor eax, eax
00000002 8b d8 mov ebx, eax
00000004 90 nop
00000005 90 nop
sharpdisasm_NET35.zip
(67.07 KB, 下载次数: 33)
我没改,NET35里面的config写的是.net45,反正我WIN10下是可以运行。
删除config文件系统将自动识别,不过启动会变慢,卡顿0.5秒的感觉。 |
评分
-
查看全部评分
|