C ++: инъекция Dll. Почему CreateRemoteThread () не работает в блокноте?

Я довольно новичок в внедрении 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 [Windows 7] (пробовал абсолютный путь, без успеха)

И многие другие, не имея возможности указать, что было не так. Поэтому я призываю SO-богов.

1) Может ли это быть проблема прав доступа?

2) Это может быть мой метод инъекций, слишком классический? Какой я должен попробовать?

3) [Тема вопроса] Почему моя DLL не вводится в Блокнот с CreateRemoteThread?

Спасибо за ваше время.

[открыть для любой грамматики / редактирования формулировки]

1

Решение

Оно работает!

Что мне нужно было изменить:

  • Сборка в x86, чтобы соответствовать целевому приложению
  • Используйте абсолютный путь

Я сделал оба, но забыл изменить свой абсолютный путь при переключении между x86 / x64 …

Благодаря Адриан Роман, кто поставил меня на правильный путь.

введите описание изображения здесь

0

Другие решения

Других решений пока нет …