Я довольно новичок в инъекции DLL, делаю это из любопытства и потому, что хочу создать оверлей в игре, не изменяя его исходный код.
Но пока я застрял с базовой инъекцией DLL: той, что использует CreateRemoteThread().
Я следовал этому руководству (будьте осторожны на французском языке): http://xevia.webege.com/old/atoray/2010/06180.php
Что я сделал :
- Инъекция отлично работает на базовой программе Target.exe (см. ссылку Xevia)
- Я вижу DLL, загруженную процессом с EnumProcessModules()
- После инъекции в Target.exe я вижу, что моя "Hook.dll" добавилась.
- [править] Проверил версию exe: и блокнот, и мой инжектор 32-битные
Но когда я вставляю dll в другие процессы, похоже, это не работает, даже если CreateRemoteThread() не возвращает NULL.
Поэтому я проверил много сообщений, в том числе этот: Как предотвратить внедрение DLL а>
И этот: C++ - CreateRemoteThread DLL Injection [Windows 7] (попробовал абсолютный путь, без успеха)
И многие другие, не имея возможности указать, что именно было не так. Поэтому я призываю ТАК-богов.
1) Может ли быть проблема с правами доступа?
2) Может это мой метод инъекций, слишком классический? Какой из них я должен попробовать?
3) [Вопрос темы] Почему моя dll не вставляется в Блокнот с помощью CreateRemoteThread?
Спасибо за ваше время.
[открыто для любого редактирования грамматики/формулировки]