;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;从一个进程的PID枚举其加载的dll
;入口参数:进程PID
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EunmProcess proc PID:LPSTR
local ModuleEntry32:MODULEENTRY32
local sfi:SHFILEINFO
local szMuodel[1025]:DWORD
invoke SendDlgItemMessage,hWinMain,IDC_Module,LB_RESETCONTENT,0,0
invoke RtlZeroMemory,addr ModuleEntry32,sizeof ModuleEntry32;清空内存
mov ModuleEntry32.dwSize,sizeof ModuleEntry32
invoke CreateToolhelp32Snapshot,TH32CS_SNAPMODULE,PID
mov hModuleSnap,eax
invoke Module32First,hModuleSnap,addr ModuleEntry32
.if eax==NULL
invoke GetLastError
invoke wsprintf,addr szOut,addr error,eax
invoke MessageBox,NULL,addr szOut,NULL,MB_ICONSTOP
.elseif
.while eax
invoke SHGetFileInfo,addr ModuleEntry32.szExePath, FILE_ATTRIBUTE_NORMAL,addr sfi,sizeof SHFILEINFO ,\
SHGFI_USEFILEATTRIBUTES or SHGFI_DISPLAYNAME or SHGFI_ICON or SHGFI_SMALLICON
invoke wsprintf,addr szMuodel,addr szDll,\
addr ModuleEntry32.szExePath,addr ModuleEntry32.modBaseAddr,addr ModuleEntry32.modBaseSize
invoke SendDlgItemMessage,hWinMain,IDC_Module,LB_ADDSTRING,0,addr szMuodel
push ModuleEntry32.th32ModuleID
pop ModulePID
invoke Module32Next,hModuleSnap,addr ModuleEntry32
.endw
.endif
ret
EunmProcess endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>