Я использую API CreateRemoteThread для внедрения dll в процесс. Это работает, когда процесс находится в запущенном состоянии. Но если я запускаю процесс в приостановленном состоянии с помощью API CreateProcess и пытаюсь внедрить в него dll, то внедрение dll не работает. Но если я использую createprocess без приостановленного флага, я могу внедрить dll. Может ли кто-нибудь сказать мне решение этой проблемы?
Внедрение DLL не работает в приостановленном процессе
comment
Странный вопрос. Это очевидно, не так ли? Чтобы загрузить DLL, вы должны вызвать LoadLibrary(). Как вы ожидаете, что это будет работать в мертвом процессе?
- person Elmue   schedule 29.08.2015
comment
Я имею в виду метод внедрения dll с помощью createremotethread. Этот метод фактически использует API loadlibrary. resources.infosecinstitute.com/
- person K07   schedule 30.08.2015
comment
@ K07 Ты понял это в конце концов?
- person parrowdice   schedule 29.01.2016
comment
Нет, я перестал работать. Внедрение dll работало на других машинах, хотя я не знаю причины этого.
- person K07   schedule 08.02.2016
comment
Это может быть полезно: opcode0x90. wordpress.com/2011/01/15/
- person toster-cx   schedule 11.11.2016
Ответы (2)
Я встречаю подобный случай. Не зная точной основной причины, я предлагаю вам попробовать использовать API QueueUserAPC для выполнения инъекции.
person
user1150246
schedule
08.07.2014
Тоже не получится. Вы не можете делать НИЧЕГО в приостановленном процессе. Процесс должен быть запущен для загрузки DLL.
- person Elmue; 29.08.2015
Это не может работать, потому что создание процесса с приостановленным флагом загружает только ntdll.dll. kernal32.dll еще не загружен, поэтому вы не можете использовать createprocess для вызова LoadLibrary (в kernal32.dll) в удаленном приостановленном процессе. но вместо этого вы можете использовать LdrLoadDll (в ntdll.dll). вы также можете использовать QueueUserAPC с LdrLoadDll. это будет хорошо работать ~
person
LeenLi
schedule
23.07.2020