Microbe.Win64.Blau!E4
Kod źródłowy w Asemblerze MASM x64 przedstawiono poniżej.
; Microbe.Win64.Blau!E4
; by ethical.blue Magazine
.code
Main proc
push rbp
mov rbp, rsp
push rbx
push rdi
push rsi
push r10
push r11
push r12
push r13
push r14
push r15
rdgsbase r10
mov r10, [r10+60h]
mov r10, [r10+18h]
mov r11, [r10+20h]
mov r10, [r11]
mov r11, [r10]
mov rbx, [r11+20h]
mov r9d, [rbx+3Ch]
add r9, rbx
add r9, 88h
mov r11d, [r9]
lea r8, [r11+rbx]
mov ecx, [r8+18h]
mov r9d, [r8+20h]
add r9, rbx
ForEach:
lea r10, [r9+rcx*4]
mov edi, [r10]
add rdi, rbx
lea rsi, aGtPrcA
Next:
cmpsb
jnz Continue
mov al, [rsi]
test al, al
jz Found
jmp Next
Continue:
loop ForEach
jmp Exit
Found:
mov r10d, [r8+24h]
add r10, rbx
mov cx, [r10+rcx*2]
mov r10d, [r8+1Ch]
add r10, rbx
mov eax, [r10+rcx*4]
add rax, rbx
mov r13, rax
sub rsp, 28h
lea rdx, aLdLbry
mov rcx, rbx
call r13
lea rcx, aUsr32
call rax
lea rdx, aMsgBx
mov rcx, rax
call r13
mov r9, 000000030h
lea r8, aEthcl
lea rdx, aEthcl
xor rcx, rcx
call rax
Exit:
add rsp, 28h
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop rsi
pop rdi
pop rbx
mov rsp, rbp
pop rbp
ret
aGtPrcA db 'GetProcAddress', 0
aLdLbry db 'LoadLibraryA', 0
aUsr32 db 'user32.dll', 0
aMsgBx db 'MessageBoxA', 0
aEthcl db 'ethical.blue '
db 'Magazine', 0
Main endp
end
Program w postaci kodu maszynowego niezależnego od miejsca w pamięci przedstawiono poniżej.
┌ Microbe.Win64.Blau!E4
└─ raw.txt
Program Microbe.Win64.Blau!E4 korzysta ze struktur danych, które są przeznaczone do użytku wyłącznie przez wewnętrzne, kluczowe komponenty systemu Microsoft Windows. Wspomniane struktury danych mogą ulec zmianie w dowolnym momencie.