Opensource DLL-инжектор - PullRequest
       12

Opensource DLL-инжектор

0 голосов
/ 19 сентября 2011

Я разработал инструмент, который изменяет внешний вид определенных программ. Для этого мне нужно ввести DLL в некоторых процессах.

Пока я использую в основном этот подход . Проблема в том, что люди часто не могут внедрить dll, потому что они не запускают целевой процесс как администратор или другие вещи, которые я не понимаю (кто-то вообще не может внедрять в Vista, даже с отключенным UAC), так что это довольно круто. зависимый.

Существует ли надежное решение с открытым исходным кодом, которое я мог бы использовать в своем приложении, которое позволяет устранять неполадки, например выявлять проблемы пользователей?

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011

Этот метод довольно распространен и надежен.

Просто попробуйте добавить

 HANDLE hToken;
 LUID sedebugnameValue;
 TOKEN_PRIVILEGES tkp;
  if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) puts("Failed to Enable Debug Options!");
  if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue))
  {
   CloseHandle(hToken);
   puts("Failed to Enable Debug Options!");
   gets(temp);
   return 0;
  }
 tkp.PrivilegeCount = 1;
 tkp.Privileges[0].Luid = sedebugnameValue;
 tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
 if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof tkp, NULL, NULL)) CloseHandle(hToken);

, чтобы ваше приложение для инъекций получило привилегии отладки.

1 голос
/ 19 сентября 2011

Может быть полезно узнать источники обхода: http://research.microsoft.com/en-us/projects/detours/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...