Error Process32Next

Iniciado por .:UND3R:., 15 Septiembre 2013, 22:19 PM

0 Miembros y 2 Visitantes están viendo este tema.

.:UND3R:.

Hola a todos, Process32Next siempre me retorna 0, ¿A qué se debe?:

Código (asm) [Seleccionar]
.386
option casemap:none
.model flat,stdcall
include c:\masm32\include\windows.inc
include c:\masm32\include\kernel32.inc
include c:\masm32\include\user32.inc
includelib c:\masm32\lib\kernel32.lib
includelib c:\masm32\lib\user32.lib

DlgProc PROTO,
hWnd:HWND,
uMsg:UINT,
wParam:WPARAM,
lParam:LPARAM

.const

.data
DlgName byte "IDD_DLG1",0
processName byte "calc.exe",0

.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?
hThread HANDLE ?
processInf PROCESSENTRY32 <>

.code
FindProcess PROC
LOCAL hSnapshot:HANDLE

invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,0
mov hSnapshot,eax
invoke Process32First,hSnapshot,addr processInf
invoke Process32Next,hSnapshot,addr processInf
invoke GetLastError
ret

FindProcess ENDP

start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke GetCommandLine
mov CommandLine,eax
invoke DialogBoxParam,hInstance,ADDR DlgName,NULL,ADDR DlgProc,NULL
invoke ExitProcess,eax
DlgProc PROC hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
.IF uMsg == WM_INITDIALOG
mov processInf.dwSize,sizeof PROCESSENTRY32
invoke CreateThread,NULL,0,ADDR FindProcess,NULL,0,0
mov hThread,eax
push eax
.ELSEIF uMsg == WM_CLOSE
invoke EndDialog,hWnd,NULL
.ELSE
mov eax,FALSE
ret
.ENDIF
mov eax,TRUE
ret
DlgProc ENDP
END start

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

Eternal Idol

Process32First function retorna el mismo error:

Remarks
The calling application must set the dwSize member of PROCESSENTRY32 to the size, in bytes, of the structure.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

.:UND3R:.

En la línea 50 lo he puesto:
mov processInf.dwSize,sizeof PROCESSENTRY32

¿Será esta línea la causante?, saludos.

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

Eternal Idol

Al contrario, como no tengo el dialogo llamaba directamente a FindProcess, ahora poniendola antes de Process32* funciona. Depura el codigo con WinDbg.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón