Ну-ка, ну-ка...
Хочешь создать файл?
CreateFile.
Открыть файл на чтение?
CreateFile.
Открыть на запись?
CreateFile.
Получить хэндл директории?
CreateFile.
Удалить файл?
CreateFile.
Потрогать траву?
CreateFile.
Красивую девушку?
CreateFile.
Доступ к физдиску, стриму, консоли, пайпам или IPC?
Всё тот же легендарный CreateFile.
Просто бери правильную версию: CreateFileA для ANSI или CreateFileW для широких символов (WIDE).
Есть ещё CreateFile2 (параметры в структуре
CREATEFILE2_EXTENDED_PARAMETERS), но это с Windows 8+ и больше для Store-приложений. А CreateFile3 с CREATEFILE3_EXTENDED_PARAMETERS — вообще только Windows 11 24H2 и выше, специально для sandboxed packaged apps от заботливых микромягких.А теперь про создание процессов.
Базово — CreateProcess или ShellExecute. Хочешь точнее: ShellExecuteEx, CreateProcessAsUser, CreateProcessWithLogonW или CreateProcessWithTokenW.
Можно даже через старый добрый OpenURL из IEFRAME.DLL — он файл воспринимает как URL и запускает. Очень в стиле микромягких.
Ещё варианты:
- RunHTMLApplication из MSHTML (через VBS/JS).
- LaunchApplicationW из PCWUTL.
- Тот же OpenURL в shdocvw.dll.
- ShellExec_RunDLLW из SHELL32.
- FileProtocolHandlerA или OpenURL из URL.DLL.
- RouteTheCall из ZIPFLDR (да, из ZIP-библиотеки, первый-два параметра NULL, третий — путь к файлу. Зачем? Потому что микромягкие).
Для низкого уровня — NtCreateUserProcess / ZwCreateUserProcess из NTDLL.
Плюс RunAsNewUser_RunDLLW из SHELL32, COM-штуки вроде IHxHelpPaneServer / IHxInteractiveUser (метод Execute), WMI через Win32_ProcessStartup или Shell.Application через CLSID_ShellWindows.
В общем, выбирай из списка:
- CreateProcess
- ShellExecute / ShellExecuteEx
- CreateProcessAsUser / WithLogonW / WithTokenW
- OpenURL (ieframe.dll / shdocvw.dll / URL.dll)
- RunHTMLApplication
- ShellExec_RunDLLW
- FileProtocolHandlerA
- RouteTheCall
- NtCreateUserProcess
- RunAsNewUser_RunDLLW
- IHxHelpPaneServer / IHxInteractiveUser
- Win32_ProcessStartup
- CLSID_ShellWindows (Shell Automation)
Спасибо микромягкие за такие приколы. Про touchpad injection, INF-абьюз, in-memory и shellcode — это уже следующая серия.