Вопрос Инжект длл

Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Как сделать чтобы в процесс инжектилась длл? Где можно про это прочитать, а также проверку на то что Запущена эта программа или нет, типо если она включена происходит инжект в неё, если нет то ждёт её запуска
 
Начинающий
Статус
Оффлайн
Регистрация
1 Авг 2020
Сообщения
18
Реакции[?]
2
Поинты[?]
0
Раз ты выложил это в ветку C/C++, то будем мыслить в контексте крестов и самое первое что приходит в голову:
Этот код 100% покажет тебе список всех процессов:
C++:
#include <stdio.h>
#include <Windows.h>
#include <winternl.h>

#pragma comment(lib,"ntdll.lib")

typedef struct _SYSTEM_PROCESS_INFO
{
    ULONG                   NextEntryOffset;
    ULONG                   NumberOfThreads;
    LARGE_INTEGER           Reserved[3];
    LARGE_INTEGER           CreateTime;
    LARGE_INTEGER           UserTime;
    LARGE_INTEGER           KernelTime;
    UNICODE_STRING          ImageName;
    ULONG                   BasePriority;
    HANDLE                  ProcessId;
    HANDLE                  InheritedFromProcessId;
}SYSTEM_PROCESS_INFO, * PSYSTEM_PROCESS_INFO;

int main()
{
    NTSTATUS status;
    PVOID buffer;
    PSYSTEM_PROCESS_INFO spi;

    buffer = VirtualAlloc(NULL, 1024 * 1024, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);

    if (!buffer)
    {
        printf("\nError: Unable to allocate memory for process list (%d)\n", GetLastError());
        return -1;
    }

    printf("\nProcess list allocated at address %#x\n", buffer);
    spi = (PSYSTEM_PROCESS_INFO)buffer;

    if (!NT_SUCCESS(status = NtQuerySystemInformation(SystemProcessInformation, spi, 1024 * 1024, NULL)))
    {
        printf("\nError: Unable to query process list (%#x)\n", status);

        VirtualFree(buffer, 0, MEM_RELEASE);
        return -1;
    }

    while (spi->NextEntryOffset)
    {
        printf("\nProcess name: %ws | Process ID: %d\n", spi->ImageName.Buffer, spi->ProcessId);
        spi = (PSYSTEM_PROCESS_INFO)((LPBYTE)spi + spi->NextEntryOffset);
    }

    VirtualFree(buffer, 0, MEM_RELEASE);
    return 0;
}

Из этих данных ты уже можешь убедиться в наличии/отсутствии нужного тебе процесса в дереве, что делать дальше - up to you. Я бы нашел первый попавшийся код на гитхабе для инжекта произвольной длл в произволный процесс.
 
Сверху Снизу