1
Name:
Anonymous
2009-04-20 8:35
What does this do in a .bat file?
Is it some sort of assembly?
@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
2
Name:
Anonymous
2009-04-20 8:48
Yes, it pipes that mess through debug, which compiles it and runs it.
3
Name:
Anonymous
2009-04-20 9:44
>>2
And is there any program that will decode this?
Or preferably a reference document/table of commands?
5
Name:
Anonymous
2009-04-20 13:13
-u 100 1b1
0D07:0100 48 DEC AX
0D07:0101 E661 OUT 61,AL
0D07:0103 BE3F01 MOV SI,013F
0D07:0106 31DB XOR BX,BX
0D07:0108 8A1C MOV BL,[SI]
0D07:010A 80FBFF CMP BL,FF
0D07:010D 74F4 JZ 0103
0D07:010F 81C3D000 ADD BX,00D0
0D07:0113 B0B6 MOV AL,B6
0D07:0115 E643 OUT 43,AL
0D07:0117 31D2 XOR DX,DX
0D07:0119 66 DB 66
0D07:011A B8DD34 MOV AX,34DD
0D07:011D 1200 ADC AL,[BX+SI]
0D07:011F 66 DB 66
0D07:0120 F7F3 DIV BX
0D07:0122 E642 OUT 42,AL
0D07:0124 88E0 MOV AL,AH
0D07:0126 E642 OUT 42,AL
0D07:0128 46 INC SI
0D07:0129 8A0C MOV CL,[SI]
0D07:012B 46 INC SI
0D07:012C BADA03 MOV DX,03DA
0D07:012F EC IN AL,DX
0D07:0130 A808 TEST AL,08
0D07:0132 74FB JZ 012F
0D07:0134 EC IN AL,DX
0D07:0135 A808 TEST AL,08
0D07:0137 75FB JNZ 0134
0D07:0139 FEC9 DEC CL
0D07:013B 74C9 JZ 0106
0D07:013D EBF0 JMP 012F
0D07:013F 000C ADD [SI],CL
0D07:0141 190C SBB [SI],CX
0D07:0143 45 INC BP
0D07:0144 0C19 OR AL,19
0D07:0146 0C8D OR AL,8D
0D07:0148 248D AND AL,8D
0D07:014A 2467 AND AL,67
0D07:014C 48 DEC AX
0D07:014D 000C ADD [SI],CL
0D07:014F 190C SBB [SI],CX
0D07:0151 45 INC BP
0D07:0152 0C19 OR AL,19
0D07:0154 0C67 OR AL,67
0D07:0156 2467 AND AL,67
0D07:0158 2445 AND AL,45
0D07:015A 2436 AND AL,36
0D07:015C 0C19 OR AL,19
0D07:015E 1800 SBB [BX+SI],AL
0D07:0160 0C19 OR AL,19
0D07:0162 0C45 OR AL,45
0D07:0164 0C19 OR AL,19
0D07:0166 0C45 OR AL,45
0D07:0168 306718 XOR [BX+18],AH
0D07:016B 36 SS:
0D07:016C 2419 AND AL,19
0D07:016E 0C00 OR AL,00
0D07:0170 3000 XOR [BX+SI],AL
0D07:0172 186718 SBB [BX+18],AH
0D07:0175 45 INC BP
0D07:0176 184534 SBB [DI+34],AL
0D07:0179 000C ADD [SI],CL
0D07:017B 190C SBB [SI],CX
0D07:017D 45 INC BP
0D07:017E 0C19 OR AL,19
0D07:0180 0C8D OR AL,8D
0D07:0182 308D1867 XOR [DI+6718],CL
0D07:0186 48 DEC AX
0D07:0187 000C ADD [SI],CL
0D07:0189 190C SBB [SI],CX
0D07:018B 45 INC BP
0D07:018C 0C19 OR AL,19
0D07:018E 0CCF OR AL,CF
0D07:0190 304518 XOR [DI+18],AL
0D07:0193 45 INC BP
0D07:0194 2436 AND AL,36
0D07:0196 0C19 OR AL,19
0D07:0198 1800 SBB [BX+SI],AL
0D07:019A 0C19 OR AL,19
0D07:019C 0C45 OR AL,45
0D07:019E 0C19 OR AL,19
0D07:01A0 0C45 OR AL,45
0D07:01A2 306718 XOR [BX+18],AH
0D07:01A5 36 SS:
0D07:01A6 2419 AND AL,19
0D07:01A8 0C00 OR AL,00
0D07:01AA 3000 XOR [BX+SI],AL
0D07:01AC 186730 SBB [BX+30],AH
0D07:01AF 45 INC BP
0D07:01B0 6B DB 6B
0D07:01B1 FF20 JMP [BX+SI]
7
Name:
Anonymous
2009-04-20 13:32
>>6
It's OK, we're all reading /prog/ in Vim or Emacs anyway.
8
Name:
Anonymous
2009-04-20 13:41
It seems to be a small audio demo, here's a dumb disassembly:
seg000:0100
seg000:0100 public start
seg000:0100 start proc near
seg000:0100 dec ax
seg000:0101 out 61h, al ; possibly speaker enable, may have side-effects
seg000:0103
seg000:0103 loop1: ; CODE XREF: start+Dj
seg000:0103 mov si, offset song
seg000:0106
seg000:0106 next_command: ; CODE XREF: start+3Bj
seg000:0106 xor bx, bx ; null bx
seg000:0108 mov bl, [si] ; bl = *song
seg000:010A cmp bl, 0FFh ; if end, start from the beginning
seg000:010D jz short loop1
seg000:010F add bx, 0D0h
seg000:0113 mov al, 10110110b ; timer: counter 2 select, r/w counter bits 0-7 first then 8-15, mode 3 select - square wave generator(counts down twice by two at a time; latch status and check
seg000:0113 ; value of OUT pin to determine which half-cycle is active
seg000:0113 ; divisor factor 3 not allowed!), binary counter 16bits
seg000:0115 out 43h, al ; program the speaker
seg000:0117 xor dx, dx ; null dx(prepare for division)
seg000:0119 mov eax, 1234DDh
seg000:011F div ebx ; ax = 0x1234DD/*song, following instructions output these values to speaker, first lower 8bits then higher 8 bits
seg000:0122 out 42h, al ; Timer 8253-5 (AT: 8254.2).
seg000:0124 mov al, ah
seg000:0126 out 42h, al ; Timer 8253-5 (AT: 8254.2).
seg000:0128 inc si ; song++
seg000:0129 mov cl, [si] ; get value
seg000:012B inc si ; song++
seg000:012C mov dx, 3DAh ; wait 2 retraces
seg000:012F
seg000:012F wait_for_retrace: ; CODE XREF: start+32j
seg000:012F ; start+3Dj
seg000:012F in al, dx ; 03DA R- CGA status register
seg000:012F ; color EGA/VGA: input status 1 register
seg000:0130 test al, 1000b ; in vertical retrace?
seg000:0132 jz short wait_for_retrace
seg000:0134
seg000:0134 wait_for_retrace2: ; CODE XREF: start+37j
seg000:0134 in al, dx
seg000:0135 test al, 1000b
seg000:0137 jnz short wait_for_retrace2
seg000:0139 dec cl ; decrement duration and check if it's null yet, if so, process next command
seg000:013B jz short next_command
seg000:013D jmp short wait_for_retrace
seg000:013D start endp
seg000:013D
seg000:013D ; ---------------------------------------------------------------------------
seg000:013F song dw 0C00h, 0C19h, 0C45h, 0C19h, 248Dh, 248Dh, 4867h, 0C00h; 0
seg000:013F ; DATA XREF: start:loop1o
seg000:013F dw 0C19h, 0C45h, 0C19h, 2467h, 2467h, 2445h, 0C36h, 1819h; 8 ; each word in the song buffer has this format:
seg000:013F dw 0C00h, 0C19h, 0C45h, 0C19h, 3045h, 1867h, 2436h, 0C19h; 16 ; byte audio_sample; // 0x1234DD/audio_sample is output to speaker
seg000:013F dw 3000h, 1800h, 1867h, 1845h, 3445h, 0C00h, 0C19h, 0C45h; 24 ; byte duration; // it will wait 2*retraces ( a retrace usually happens 60 times per second, 60Hz)
seg000:013F dw 0C19h, 308Dh, 188Dh, 4867h, 0C00h, 0C19h, 0C45h, 0C19h; 32 ; audio sample 0xFF marks the end
seg000:013F dw 30CFh, 1845h, 2445h, 0C36h, 1819h, 0C00h, 0C19h, 0C45h; 40
seg000:013F dw 0C19h, 3045h, 1867h, 2436h, 0C19h, 3000h, 1800h, 3067h; 48
seg000:013F dw 6B45h ; 56
seg000:01B1 end_song db 0FFh ; 0FF = end
seg000:01B1 seg000 ends
seg000:01B1
seg000:01B1
seg000:01B1 end start
9
Name:
Anonymous
2009-04-20 16:58
>>1
I nearly pissed myself laughing after running that. Brilliant, OP, simply brilliant.
11
Name:
Anonymous
2009-04-20 17:33
>>10
I ran it, all I got was an empty command shell which did nothing.
12
Name:
Anonymous
2009-04-20 17:52
How to setup a virtual machine for this?
>>11
Nothing you saw anyway.
15
Name:
Anonymous
2009-04-20 18:27
>>13
Perhaps I wasn't clear, but when I said "did nothing", I mean it did nothing both in the visual and aural senses of doing something. Do you know what I mean?
16
Name:
Anonymous
2009-04-20 18:29
>>15
Your computer is shit and so are you.
17
Name:
Anonymous
2009-04-20 18:32
>>16
Hey hey hey hey! That is very rude, and that kind of attitude will not win you any friends mister!
20
Name:
Anonymous
2009-04-20 20:32
>>9
So you run random code that you find on
/prog/ ?
21
Name:
Anonymous
2009-04-20 20:35
>>20
After disassembling it and finding nothing harmful, yes.
22
Name:
Anonymous
2009-04-20 21:36
>>21
But how do you know you reassembled it correctly?
23
Name:
Anonymous
2009-04-21 7:00
>>22
Frankly, my dear, real men
just don't give a damn.
27
Name:
Anonymous
2009-04-22 5:41
I just ran this, it plays Rick Astley's "Never going to give you down" on the PC speaker. Pretty neat
28
Name:
Anonymous
2009-04-22 9:43
I just ran this, it plays GJS Jay Sussman's "We Conjure the Spirits of the Computer with our Spells (feat. JSB Sebastian Bach)" on the PC speaker. Pretty neat
29
Name:
Anonymous
2009-04-22 11:34
>>28
I would have preferred this.
31
Name:
Anonymous
2009-04-22 17:54
Hmm wish I would have read this thread before my speakers went off in class...
32
Name:
Anonymous
2009-04-22 23:03
>>31
At least your classmates know that you will never give them up. If anything they should be thanking you