8

这在 .bat 文件中有什么作用?

它是某种汇编语言还是什么?

    @debug <%0 >nul
    e100 48 e6 61 是 3f 01 31 db 8a 1c 80 fb ff 74 f4 81
    e110 c3 d0 00 b0 b6 e6 43 31 d2 66 b8 dd 34 12 00 66
    e120 f7 f3 e6 42 88 e0 e6 42 46 8a 0c 46 ba da 03 ec
    e130 a8 08 74 fb ec a8 08 75 fb fe c9 74 c9 eb f0 00
    e140 0c 19 0c 45 0c 19 0c 8d 24 8d 24 67 48 00 0c 19
    e150 0c 45 0c 19 0c 67 24 67 24 45 24 36 0c 19 18 00
    e160 0c 19 0c 45 0c 19 0c 45 30 67 18 36 24 19 0c 00
    e170 30 00 18 67 18 45 18 45 34 00 0c 19 0c 45 0c 19
    e180 0c 8d 30 8d 18 67 48 00 0c 19 0c 45 0c 19 0c cf
    e190 30 45 18 45 24 36 0c 19 18 00 0c 19 0c 45 0c 19
    e1a0 0c 45 30 67 18 36 24 19 0c 00 30 00 18 67 30 45
    e1b0 6b 后
    G
4

3 回答 3

15

看看 Dan Olson 的dissasembly,它看起来像一个循环播放一些音乐的小程序:

out 0x61

打开和关闭电脑扬声器。

out 0x43 

设置系统定时器以生成方波。

out 0x42

设置定时器频率。

然后是一堆循环,从0x13f开始读取数据,与视频状态同步进行计时,最后从头开始。

当然,数据只是一对音符音高和长度。对于好奇的人,请随时收听youtube 版本

于 2009-04-20T22:34:31.177 回答
10

是的,它使用“debug.exe”将一些原始十六进制作为 COM 文件放入内存,然后执行它。不管它是什么,它看起来很危险。

于 2009-04-20T21:06:14.870 回答
10

下面的拆机版...

00000000  48                dec ax
00000001  E661              out 0x61,al
00000003  BE3F01            mov si,0x13f
00000006  31DB              xor bx,bx
00000008  8A1C              mov bl,[si]
0000000A  80FBFF            cmp bl,0xff
0000000D  74F4              jz 0x3
0000000F  81C3D000          add bx,0xd0
00000013  B0B6              mov al,0xb6
00000015  E643              out 0x43,al
00000017  31D2              xor dx,dx
00000019  66B8DD341200      mov eax,0x1234dd
0000001F  66F7F3            div ebx
00000022  E642              out 0x42,al
00000024  88E0              mov al,ah
00000026  E642              out 0x42,al
00000028  46                inc si
00000029  8A0C              mov cl,[si]
0000002B  46                inc si
0000002C  BADA03            mov dx,0x3da
0000002F  EC                in al,dx
00000030  A808              test al,0x8
00000032  74FB              jz 0x2f
00000034  EC                in al,dx
00000035  A808              test al,0x8
00000037  75FB              jnz 0x34
00000039  FEC9              dec cl
0000003B  74C9              jz 0x6
0000003D  EBF0              jmp short 0x2f

; Data starting at 0x13f
0000000: 000c 190c 450c 190c 8d24 8d24 6748 000c  ....E....$.$gH..
0000010: 190c 450c 190c 6724 6724 4524 360c 1918  ..E...g$g$E$6...
0000020: 000c 190c 450c 190c 4530 6718 3624 190c  ....E...E0g.6$..
0000030: 0030 0018 6718 4518 4534 000c 190c 450c  .0..g.E.E4....E.
0000040: 190c 8d30 8d18 6748 000c 190c 450c 190c  ...0..gH....E...
0000050: cf30 4518 4524 360c 1918 000c 190c 450c  .0E.E$6.......E.
0000060: 190c 4530 6718 3624 190c 0030 0018 6730  ..E0g.6$...0..g0
0000070: 456b ff0d 0a                             Ek...
于 2009-04-20T21:22:44.750 回答