Здравствуйте, PotapovPV, Вы писали:
PPV>Видимо, я недостаточно четко описал проблему: меня не устраивает вызов NtCreateThreadEx, который осуществляют такие функции как CreateRemoteThread и RtlCreateUserThread, задача стоит именно в вызове NtCreateThread, о чем Рихтер не упоминает.
я уже давно это все не исследовал и чо и как сейчас сделано точно не знаю, но думаю что даже если ты будешь вызывать NtCreateThread, то этот метод все равно в конечном итоге вызовет NtCreateThreadEx.
__>>если по каким-то причинам не подходит CreateRemoteThread юзай NtCreateRemoteThread.
PPV>К сожалению, о такой функции я первый раз слышу, ntdll ее не экспортирует. Где ее можно найти?
ты сам про нее написал в исходном посте. на сколько я понимаю сейчас такой функции уже не существует, вроде бы она была в каких-то старых осях.
я не знаю какую именно задачу ты пытаешься решить, но может забить на все эти CreateRemoteThread и прописать свою dll в AppInitDlls?
если очень хочется поэкспериментировать с созданием удаленных потоков, то можешь попробовать заставить работать вариант с SetThreadContext. но там достаточно много возни, в том числе и с поддержкой x64. плюс есть предположение что метод ненадежный и может обвалить целевой процесс:
http://blog.not-a-kernel-guy.com/2010/05/04/812