Перехват api из командной строки

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

  1. dev

    dev New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2008
    Сообщения:
    39
    Приветствую!
    Возникла такая проблема, глобально перехватываю api вызовы...А именно добавление пользователя - NetUserAdd, если добавлять через панель управления, то все нормально отлавливается, а если через командную строку - net user /add username password, то ничего не отлавливается. Кто-нибудь сталкивался с подобной проблемой, как ее решить?
    P.S.
    Глобальный перехват делал по Рихтеру.
     
  2. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Наверно дело в том, что твоя длл инжектится только в gui-приложения, если ты делал перехват через SetWindowsHook
     
  3. dev

    dev New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2008
    Сообщения:
    39
    Да, именно, не подскажете как сделать чтобы во все приложения внедрялась?
     
  4. toto

    toto New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2008
    Сообщения:
    36
  5. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    shizoid Запускает программу тоже консольную. В которой тоже нет окна.
     
  6. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    dev попробуй через HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
     
  7. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    dev
    Вроде бы в AppInitdll можно прописать, по идее должно подгружаться только к тем приложениям где есть импорты user32, но на практике вроде ко всем грузится, хотя за последнее не ручаюсь, сам где-то прочитал не помню где =), ну или руками во все процессы удаленным потоком + хук на CreateProcess =)
    upd опоздал =)
     
  8. toto

    toto New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2008
    Сообщения:
    36
    причем тут окно то, непонял, я писал про хук CreateProcess в cmd
    лучше не мучаться и сделать через AppInit_Dlls, но такой метод палиться всем, если ты чето нехорошее пишешь конечно
     
  9. dev

    dev New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2008
    Сообщения:
    39
    Прописал по ключю свою длл, теперь выдает при запуске любого приложения "Ошибка при инициализации приложения (0xc0000005). Для выхода из приложения нажмите кнопку "Ок"."))...
     
  10. toto

    toto New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2008
    Сообщения:
    36
    код длл должен быть таким:

    Код (Text):
    1. BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
    2. {
    3.    if ( ul_reason_for_call == DLL_PROCESS_ATTACH )
    4.    {
    5.       MessageBoxA( 0, "laod", "load", 0 );
    6.    }
    7.  
    8.    if ( ul_reason_for_call == DLL_PROCESS_DETACH )
    9.    {
    10.        MessageBoxA( 0, "unlaod", "unload", 0 );
    11.    }
    12.  
    13.    
    14.    return true;
    15. }
     
  11. dev

    dev New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2008
    Сообщения:
    39
    Сенкс, попробую...