CreateRemouteThread-странная отработка при запуске проги

Тема в разделе "WASM.WIN32", создана пользователем coocky, 8 окт 2007.

  1. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Привет.
    Есть внедрение длл методом рихтера через CreateRemoteThread.
    Заметил дурацкую особенность.Если запустить мой ехе_шник,то длл внедряется только в процессы,запущеные под юзером. Однако ,если запустить через студию,то внедреятся во все. Ничего не могу понять-почему так происходит?
    Может надо какие права выставить в SECURITY_ATTRIBUTES в параметрах CreateRemoteThread?
    Может еще что?
    И еще-ребята,скиньте плиз,пример на С++,когда CreateRemoteThread используется c QueueUserAPC
     
  2. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    http://www.wasm.ru/article.php?article=green2red03#_Toc106867008
    про привилегии почитай
     
  3. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Ну и ?
    Есть у меня код
    Код (Text):
    1.       HANDLE hToken;
    2.       TOKEN_PRIVILEGES* NewState;
    3.       OpenProcessToken (GetCurrentProcess (), TOKEN_ADJUST_PRIVILEGES,
    4.       &hToken);
    5.       NewState = (TOKEN_PRIVILEGES*) malloc (sizeof
    6.       (TOKEN_PRIVILEGES) + sizeof (LUID_AND_ATTRIBUTES));
    7.       NewState->PrivilegeCount = 1;
    8.       LookupPrivilegeValue (NULL, SE_SHUTDOWN_NAME,
    9.       &NewState->Privileges[0].Luid);
    10.       NewState->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    11.       AdjustTokenPrivileges (hToken, FALSE, NewState, NULL, NULL, NULL);
    12.       free (NewState);
    13.       CloseHandle (hToken);
    Который вызывается перед
    Код (Text):
    1. //открыть процесс с нужным доступом
    2.     hProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_WRITE|
    3.         PROCESS_VM_OPERATION, FALSE, dwProcessId);
    И что дальше? Все так же и остается...
     
  4. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Сорри,протупил с флагом SE_SHUTDOWN_NAME :))
     
  5. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Если под вистой то надо юзать RtlCreateUserThread ! Причем куда он выходит под вистой я не смотрел, но под ХРю надо инжектить код, и выходить ExitThread'ом
     
  6. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    А если ret'ом? неужели адрес возврата некорректен?
     
  7. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Адреса возврата для RtlCreateUserThread нет. Такие потоки не начинаются с BaseThreadStart, а начинаются прямо с адреса который ты передаешь.