>>3419
Я посыпаю голову пеплом. Сначала декодировал в ксоре, потом в base64, наоборот не догадался.
Раз у нас тут /pr/ - вот сырец на масме.
.386
.model flat,stdcall
.stack 4096
option casemap:none
includelib \masm32\lib\kernel32.lib
SetConsoleTitleA PROTO :DWORD
GetStdHandle PROTO :DWORD
WriteConsoleA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
ExitProcess PROTO :DWORD
Sleep PROTO :DWORD
.data
endl EQU <0dh,0ah>
sConsoleTitle db 'My First Console Application',0
message BYTE "+0'=5'<++s<7e'=!e#'+&6&7e:",03Bh,"d2",03Bh,"<'-s1%12ul5?4-+'0<1zu-6s!6$=&($'0 e:",03Bh,"0*s&+(6!,,=2d1",03Bh,"40e2%4 2'7e':d'6u6$=1+(s4*!s8!$=<*",022h,"?076s}',#=!7'0<1z{? 0'=5'<++s<7e'=!e#'+&6&7e:",03Bh,"d2",03Bh,"<'-s!, s6-5",03Bh,"0616-0e:&d&<",03Bh,"2 !!!!s7%&8u0*s%($:",03Bh,"0 +!",endl,0
key BYTE "DESU"
key_size DWORD 0 ;
mes_size DWORD 0 ;
.code
main PROC
LOCAL hStdout :DWORD
;титл консоли
push offset sConsoleTitle
call SetConsoleTitleA
;получаем хэндл вывода
push -11
call GetStdHandle
mov hStdout,EAX
mov mes_size,LENGTHOF message
mov key_size,LENGTHOF key
mov ecx,mes_size
mov edx,key_size
sub ecx,3 ;terminate zero (00h)
mov esi,0
mov edi,0
L1:
mov al,message[esi]
xor al,key[edi]
mov message[esi],al
inc edi
inc esi
cmp edi,key_size
jne Not4
mov edi,0
Not4:
loop L1
;cilce end
;выводим строку
invoke WriteConsoleA,
hStdout,
offset message,
mes_size,
0,
0
;задержка, чтобы полюбоваться
push 20000d
call Sleep
invoke ExitProcess,0
main ENDP
END mai