Dll инъекция не работает в приостановленном процессе

Я использую API CreateRemoteThread, чтобы ввести DLL в процесс. Это работает, когда процесс работает в состоянии. Но если я запускаю процесс в приостановленном состоянии с помощью API CreateProcess и пытаюсь внедрить dll в него, то внедрение dll не работает. Но если я использую createprocess без приостановленного флага, то я могу ввести DLL. Может кто-нибудь сказать мне решение этой проблемы?

1 ответ

Я встречаю похожий случай. Не знаю точную основную причину, я предлагаю вам попробовать использовать API QueueUserAPC, чтобы сделать инъекцию.

Это не может работать, потому что, создавая процесс с флагом приостановки, он загружает только ntdll.dll. kernal32.dll еще не загружен, поэтому вы не можете использовать createprocess для вызова LoadLibrary(в kernal32.dll) в удаленном приостановленном процессе. но вместо этого вы можете использовать LdrLoadDll(в ntdll.dll). вы также можете использовать QueueUserAPC с LdrLoadDll. он будет работать хорошо ~

Другие вопросы по тегам