На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> CTRL+ALT+DELETE
    Доброго времени суток!
    Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE?
      Ну т.е. чтоб ее не было видно в списке процессов в диспетчере задач Windows? Так точнее будет.
        Сам такое искал и то, что находил, работало вроде только для Win 9X, ME.

        Можно попробовать таким способом (только для NT-систем):

        1) Найти хэндл TaskManager'a(по заголовку "Диспетчер задач Windows" в русской винде, а в английской, наверное "Task Manager Windows").

        2) Найти хэндл ListView со списком процессов

        3) Найти в ListView например по имени наш процесс и удалять его постоянно из списка(например в таймере).


        Как раз статья про это есть (правда там на Delphi, но переделать на Си недолго :)

        Вот линк на статью:
        http://www.ddsoft.hoha.ru/notes/lvmgetitem/
          Достаточно назваться Winlogon
            Цитата B.V. @
            Достаточно назваться Winlogon

            а можно поподробнее, если не сложно
              Это не выход - это вариант решения.
              Стандартный менеджер задач не завершит процесс с именем winlogon.
                Цитата
                Доброго времени суток!
                Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE?

                вирус пишите?
                  b]A1ex_D[/b]Я тоже находит под Win 9X/ME, ну вот под Win 2000/Xp сложнее!
                  nastenka, ну почему сразу вирус... Мне эта тема тоже интересна! в личных (не корыстных) целях..
                    перехватываешь ZwQuerrySystemInformation() и NtQuerrySystemInformation()
                      Цитата nastenka @
                      Цитата
                      Доброго времени суток!
                      Такой вопрос: как я могу спрятать свою прогу чтоб, ее не было видно по CTRL+ALT+DELETE?

                      вирус пишите?

                      Нет это не вирус, а прога для борьбы с узерами которые любят играть в игрушки на рабочем месте, и надо чтоб юзер не мог выгрузить мою прогу)
                      И всетаки я чета не могу разобраться, если у кого есть пример как это сделать выложите пажалуста))
                        Цитата NewGye @
                        Нет это не вирус, а прога для борьбы с узерами которые любят играть в игрушки на рабочем месте, и надо чтоб юзер не мог выгрузить мою прогу)

                        напиши сервис.
                        или запускай прогу под учеткой админа и в АКЛ пропиши что бзерам ее нельзя мочить
                          Цитата LuckLess @
                          или запускай прогу под учеткой админа и в АКЛ пропиши что бзерам ее нельзя мочить

                          А если этот юзер другой админ, ну т.е. у некоторых юзеров есть привелегии админа, тогда как быть, ведь они могут выгружать приложения запущенные другим админом. Выход - убрать из списка процессов в диспетчере задач :wall:
                            Да кстати интересная тема, мне бы тож хотелось узнать как это сделать мона?
                              Цитата NewGye @
                              Выход - убрать из списка процессов в диспетчере задач

                              это не вариант. т.к. если админ хоть намного чеото понимает , то он все равно твою прогу найдет и убъет.
                              я например такой типа task manager написал..

                              берешь этому админу вырубаешь TAKE OWNERSHIP привилегию , и он ее убить не сможет уже никак.
                              к томуже , думаю , стандартный таск манагер не умеет использовать take ownership и другой админ прогу все равно загрыть не сможет.

                              ну если очень хочется , то как я говорил перехватывай
                              ZwQuerrySeystemInformation() и NtQuerrySystemInformation()
                                Цитата LuckLess @
                                Цитата NewGye @
                                Выход - убрать из списка процессов в диспетчере задач

                                это не вариант. т.к. если админ хоть намного чеото понимает , то он все равно твою прогу найдет и убъет.
                                я например такой типа task manager написал..

                                берешь этому админу вырубаешь TAKE OWNERSHIP привилегию , и он ее убить не сможет уже никак.
                                к томуже , думаю , стандартный таск манагер не умеет использовать take ownership и другой админ прогу все равно загрыть не сможет.

                                ну если очень хочется , то как я говорил перехватывай
                                ZwQuerrySeystemInformation() и NtQuerrySystemInformation()

                                А если не очень сложно, расскажите тупому ламеру, как я могу перехватить ZwQuerrySeystemInformation() и NtQuerrySystemInformation()?
                                  Цитата A1ex_D @
                                  Сам такое искал и то, что находил, работало вроде только для Win 9X, ME.

                                  Можно попробовать таким способом (только для NT-систем):

                                  1) Найти хэндл TaskManager'a(по заголовку "Диспетчер задач Windows" в русской винде, а в английской, наверное "Task Manager Windows").

                                  2) Найти хэндл ListView со списком процессов

                                  3) Найти в ListView например по имени наш процесс и удалять его постоянно из списка(например в таймере).


                                  Как раз статья про это есть (правда там на Delphi, но переделать на Си недолго :)

                                  Вот линк на статью:
                                  http://www.ddsoft.hoha.ru/notes/lvmgetitem/

                                  Ну вот кароче решил памоч бедному админу, и переложил код на С++, но если честно то это балавство, прогу твою так скрывать не очень хорошо, просто если она находится вверху списка, сам список мигает(ну если эту функцию вызывать циклически)....
                                  Вот код:


                                  ExpandedWrap disabled
                                    bool func(){
                                        if(HWND hWnd=::FindWindow("#32770", "Диспетчер задач Windows")){
                                            HWND hList = ::FindWindowEx(hWnd, 0, "#32770", "");
                                            hList=::FindWindowEx(hList, 0, "SysListView32", NULL);
                                            int vItemCount = ::SendMessage(hList, LVM_GETITEMCOUNT, 0, 0);
                                            char *buf=new char[100];
                                            char vBuffer[255];
                                            DWORD vProcessId;
                                            SIZE_T vNumberOfBytesRead=255;
                                            HANDLE  vProcess;
                                            LVITEM vItem;
                                            ::GetWindowThreadProcessId(hList, &vProcessId);
                                            vProcess = ::OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, false, vProcessId);
                                            LPVOID  vPointer;
                                            CString st;
                                            vPointer = ::VirtualAllocEx(vProcess, NULL, 4096, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
                                            for(int i=0;i<vItemCount;i++){
                                                vItem.mask=LVIF_TEXT;
                                                vItem.iItem=i;
                                                vItem.iSubItem=0;
                                                vItem.cchTextMax=sizeof(vBuffer);
                                                vItem.pszText=LPTSTR(SIZE_T(vPointer) + sizeof(LVITEM));
                                                ::WriteProcessMemory(vProcess, vPointer, &vItem, sizeof(LVITEM), &vNumberOfBytesRead);
                                                ::SendMessage(hList,LVM_GETITEM,i,LPARAM(vPointer));
                                                ::ReadProcessMemory(vProcess,LPVOID(SIZE_T(vPointer) + sizeof(LVITEM)),&vBuffer[0],sizeof(vBuffer),&vNumberOfBytesRead);
                                                st=vBuffer;
                                                if (st=="Твоя_прога.exe"){
                                                    ::SendMessage(hList,LVM_DELETEITEM,i,0);
                                                }
                                            }
                                            VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE); // освобождаем память
                                            CloseHandle(vProcess); // закрываем дескриптор доступа к процессу
                                            return true;
                                        }
                                        return false;
                                    }
                                    Вот еще есть что то:
                                    http://www.hackzona.ru/hz.php?name=News&file=article&sid=4718

                                    А это наш любимый гугл:
                                    http://www.google.com/search?hs=WrH&hl=ru&client=opera&rls=ru&q=%22type+SYSTEM_INFORMATION_CLASS%22&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=
                                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                    0 пользователей:


                                    Рейтинг@Mail.ru
                                    [ Script execution time: 0,5490 ]   [ 16 queries used ]   [ Generated: 27.04.24, 01:01 GMT ]