2009-04-20 2 views
8

Что это делает в .bat-файле?Что именно должен делать этот пакетный файл?

Это какой-то язык ассемблера или что?

 
    @debug <%0 >nul 
    e100 48 e6 61 be 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 ff 
    g 

ответ

15

Посмотрите на Dan Олсона dissasembly, это похоже на короткую программу, которая перебирает и играет какую-то музыку:

out 0x61 

Включает Аудиоколонки включить и выключить.

out 0x43 

Устанавливает системный таймер для генерирования прямоугольных волн.

out 0x42 

Устанавливает частоту таймера.

Затем есть куча петель, считывающих данные, начиная с 0x13f, синхронизируясь с статусом видео для синхронизации, и, наконец, начиная с начала.

Данные, конечно же, это только пары нот и длины ноты. Для любопытных, не стесняйтесь слушать youtube version.

+0

Да. Как очень «8 бит». – Gareth

+1

Я так поиграл! NOOOO! – rlemon

10

Да, он использует «Debug.exe» поставить некоторые сырой гекс в память как COM-файл, а затем выполняет его. Как бы то ни было, это выглядит опасно.

+1

Почему это выглядит опасным? – TStamper

+5

@TStamper ... потому что его не было никакой необходимости, чтобы запутать то, что он делал, динамически генерируя исполняемый файл. –

+4

Потому что никто в здравом уме не сделает что-то подобное, если только не намеренно запутывает какое-то нежелательное поведение. Единственный вариант - тот, кто его написал, находится на трещине. – RibaldEddie

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... 
+1

Разборка правильная, за исключением того, что файлы com смещены от 0x100; если вы это сделаете, то линия 3 имеет больше смысла. – xahtep

+0

Также обратите внимание, что все после 0x13f (или 0x3f) в вашем списке - это всего лишь данные. – Eclipse

+0

Спасибо за указание данных. –