getpids.inc

来自「Cracker终结者——提供最优秀的软件保护技术」· INC 代码 · 共 57 行

INC
57
字号
;=================================================
  GetCurrentPIDs PROC  USES EBX ESI EDI, PIDbuffer, PIDbuffersize
   LOCAL     PIDCount :DWORD
   LOCAL     What     :DWORD
   LOCAL     CleanUp  :DWORD
   LOCAL     Process  :PROCESSENTRY32

   AND       PIDCount, 0
   iMOV      ESI, GetProcAddress
   MOV       EDI, PIDbuffer

   iWin32i   GetModuleHandle, sK32
   TEST      EAX, EAX
   JE        GetAllPIDsEnd
   MOV       EBX, EAX
   sWin32    ESI, EBX, sCT32S
   TEST      EAX, EAX
   JE        GetAllPIDsEnd
   sWin32    EAX, TH32CS_SNAPPROCESS, 0
   CMP       EAX, -1
   JE        GetAllPIDsEnd
   iPUSH     CloseHandle
   MOV       What, EAX
   POP       CleanUp
   sWin32    ESI, EBX, sP32N
   TEST      EAX, EAX
   JE        Tidy
   PUSH      EAX
   sWin32    ESI, EBX, sP32F
   TEST      EAX, EAX
   POP       ESI
   JE        Tidy
   LEA       EBX, Process
   MOV       Process.dwSize, SIZEOF PROCESSENTRY32

   sWin32    EAX, What, EBX
  CheckProc:
   TEST      EAX, EAX
   JE	     Tidy
   MOV	     EAX, Process.th32ProcessID
   INC       PIDCount
   STOSD
   sWin32    ESI, What, EBX
   JMP	     CheckProc
  Tidy:
   sWin32    CleanUp, What    
  GetAllPIDsEnd:
   MOV       EAX, PIDCount
   RET

   TEXT      K32,  <KERNEL32.dll/0>
   TEXTA     CT32S,<CreateToolhelp32Snapshot/0>
   TEXTA     P32F, <Process32First/0>
   TEXTA     P32N, <Process32Next/0>
 GetCurrentPIDs ENDP
;=================================================

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?