Учу С++. Интересен способ инъекции DLL в свой процесс. Нашёл библиотеку смотреть на codepad, делает Inject в сторонний процесс, посредством вызова CreateProcess
CreateProcessW(NULL, Path, NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE | CREATE_SUSPENDED, NULL, NULL, &si, &pi);
if (ok)
{
DbgPrint("CreateProcessW ok, %d", pi.dwProcessId);
ok = (NO_ERROR == AcInjectDll(&pi, CREATE_SUSPENDED, TRUE));
//AcInjectDll(&pi, CREATE_SUSPENDED, TRUE);
DbgPrint("AcInjectDll %s", ok ? "ok" : "FAIL");
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
else
DbgPrint("CreateProcessW FAIL");
Но, функция после отработки отдает fail. Конечно, при этом никакой DLL'ки не прогрузилось, а поток остался зависшим у вызываемого процесса.
Где может быть ошибка? За ранее спасибо!
Чтобы загрузить DLL в свой процесс, не нужна никакая "инъекция". Для этого достаточно использовать функцию LoadLibrary.
Об "инъекции DLL" говорят, когда нужно заставить чужой процесс загрузить вашу DLL. Для этих целей нельзя использовать CreateProcess (эта функция делает только то, что написано - создает процесс). Это можно сделать несколькими способами, например с использованием WriteProcessMemory и CreateRemoteThread или RtlRemoteCall.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Например ввести команду ls, и считать список файлов в директории
Мне нужно написать функции которые добавляют и удаляют значения в QVector