Вывод списка всех запущенных приложений MASM32 Assembly

Добрый день! Я пытался перечислить все запущенные в данный момент приложения и записать его в текстовый файл, используя masm. Я новичок в сборке, но использую MSDN для справки. До сих пор я знаю, как использовать CreateFile, WriteFile, ReadFile и другие, но я не понимаю, как работает Process32First.

Я пытаюсь преобразовать код в этой ссылке в MASM, (https://msdn.microsoft.com/en-us/library/windows/desktop/ms686701(v=vs.85).aspx) но без удачи, я не могу получить какой-либо вывод.

Я буду очень признателен за любую помощь! Спасибо! Хорошего дня.

include \masm32\include\masm32rt.inc

.data
pe32 PROCESSENTRY32 <>
errorCreateTool db "ERROR: CreateToolhelp32Snapshot", 0
errorPF db "ERROR: Process32First", 0
errorOP db "ERROR: OpenProcess", 0

yesMsg db "proceed", 0

.data?
dwPriorityClass dd ?
hProcessSnap HANDLE ?
hProcess HANDLE ?

.code

_start:

push 0
push TH32CS_SNAPPROCESS
call CreateToolhelp32Snapshot

mov hProcessSnap, eax

cmp hProcessSnap, INVALID_HANDLE_VALUE
je _errorCT

mov pe32.dwSize, sizeof PROCESSENTRY32

push offset pe32
push hProcessSnap
call Process32FirstW

cmp eax, ERROR_NO_MORE_FILES
je _errorPF

push offset pe32.szExeFile
call StdOut

mov dwPriorityClass, 0

push offset pe32.th32ProcessID
push FALSE
push PROCESS_ALL_ACCESS
call OpenProcess

cmp eax, 00H                        ;if I comment this out, the code will proceed
je _errorOpen

push offset pe32.th32ProcessID      ;but this doesn't have any value and doesn't print out
call StdOut
push offset yesMsg                  ;while this prints out on the console
call StdOut

jmp _done

_errorOpen:
push offset errorOP
call StdOut
jmp _done

_errorPF:
push offset errorPF
call StdOut
jmp _done

_errorCT:
push offset errorCreateTool
call StdOut

_done:
push 0
call ExitProcess

end _start

1

Решение

Я испытал использование этой функции. Все, что мне нужно сделать, это обновить мои kernel32.inc и kernel32p.inc, как вы предложили. После этого я запускаю файл makelibs.bat в папке masm32, и он работает оттуда.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]