Показать сообщение отдельно
  #8  
Старый 22.02.2012, 02:16
PRStudio PRStudio вне форума
Прохожий
 
Регистрация: 18.02.2012
Сообщения: 13
Репутация: 143
По умолчанию

Получил привелегии, но сообщение при атаче библиотеке так и не получил, не могу понять почему. Вроде инжект прошел успешно и права получены. Быть может библиотека изначально должна быть в процессе, чтобы из нее что-то сработало.

Собсвенно сама библиотека:
Код:
library httpHook;

uses
  SysUtils,
  Classes,
  Windows, Messages, Variants, Graphics, Controls, Forms, WinSock, WinSock2,
  Dialogs, advApiHook in 'advapihook.pas',
  NativeAPI in 'nativeapi.pas';

{$R *.res}

procedure DLLEntryPoint(dwReason: DWord);
begin
    case dwReason of
        DLL_PROCESS_ATTACH: begin
            ShowMessage('DLL attached to process');
        end;

        DLL_PROCESS_DETACH: begin
            ShowMessage('DLL detached');
        end;
    end;
end;



begin
    DllProc := @DLLEntryPoint;
    DLLEntryPoint(DLL_PROCESS_ATTACH);
    ShowMessage(' Hooked :) ');
end.

И "Внедряльщик":
Код:
var processId:Dword;
    processHandle:THandle;
begin
    processId := GetProcessId('opera.exe');
    processHandle := OpenProcess(PROCESS_ALL_ACCESS,False,processId);

    if (EnableDebugPrivilege)
    then
      ShowMessage('Получены DEBUG привелегии')
    else
      ShowMessage('DEBUG привелегии не получены');

    if ( InjectDll(processHandle,'dlls\httpHook.dll') )
      then
    ShowMessage('InjectDLL() сработал')
      else
    ShowMessage('InjectDLL() не сработал для PID '+IntToStr(processId));


end;

При исполнении пишет, что привелегии получил и длл вставил, но сама ДЛЛ ничего об этом видимо не знает, ибо сообщений от нее никаких не поступает. Хотя если сделать все то же, но через CreateProcess - т.е. создать процесс самим и внего внедрить эту самую DLL, то она начинает выполняться.
Ответить с цитированием