Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > облом OpenProcess?


Автор: Kirka 8.4.2006, 16:31
Есть некий процесс(программа), в неё подключена DLL, которая обламывает OpenProcess на этом процессе! Никаких драйверов нет - это точно, ДЛЛ просто подключается и как-то запрещает делать OpenProcess на её процессе из других процессов.

GetLastError() не могу сделать, потому что у меня вышеупомянутая программа открывается OpenProcess'ом но у других - нет, из-за специальной .dll(у меня программа взломаная таким образом, что эта длл не подключается)... кароче говоря поясните,

каким образом DLL может запрещать открывать её процесс функцией OpenProcess ??? smile

Автор: Fin 8.4.2006, 18:18
Из того ломанного объяснения, можно сделать вывод. Что сушествует какая то Dll, которая перехватывает функцию OpenProcess. В книге Д.Рихтера "Виндовс - для проффессионалов" в главе 22 описывается данное действие.

Автор: Kirka 9.4.2006, 23:19
кроме перехвата самой функции OpenProcess нет способов? установка какого-нибудь особого разрешения к памяти процесса или что-то в этом роде изза чего OpenProcess будет выдавать ошибку?

Автор: _hunter 10.4.2006, 10:53
ну так выведи в MessageBox сообщение на том компе -- тогда будет понятно в чем проблема

Автор: Kirka 10.4.2006, 12:12
как установить Security Descriptor на процессе, чтобы запретить на нём OpenProcess?

Автор: Fin 10.4.2006, 15:16
Можно ограничивать некоторые действия программы. Есть такая возможность винды "Задание". Но она не работает на 98 винде.
Вот цитата,
Цитата

Определение ограничений, налагаемых на процессы в задании.
Создав задание, Вы обычно строите "песочницу" (набор ограничений) для включаемых в него процессов. Ограничения бывают нескольких видов:

а) базовые и расширенные базовые ограничения — не дают процессам в задании монопольно захватывать системные ресурсы;
б) базовые ограничения по пользовательскому интерфейсу (UI) — блокируют возможность его изменения;
в) ограничения, связанные с защитой, — перекрывают процессам в задании доступ к защищенным ресурсам (файлам, подразделам реестра и т. д,).


Но я не думаю, что ты с помошью этого сможеш закрыть вызов функции.
Добавлено @ 15:19
Посмотри функции CreateJobObject, SetInformationJobObject, AssignProcessToJobObject.

Автор: VectorMan 11.4.2006, 15:29
Цитата(Kirka @ 9.4.2006, 23:19)
кроме перехвата самой функции OpenProcess нет способов?

а чем тебе не нравится идея с перехватом? можно заюзать библиотечку http://research.microsoft.com/sn/detours/ от MS

Автор: Kirka 11.4.2006, 17:18
так тем что мне обойти надо этот перехват, а не осуществлять =)

Автор: adonin 11.4.2006, 17:35
На самом деле, нужно просто дезассемблировать эту dll и глянуть, в чём там фокус. Посмотрите таблицу импорта у этой dll. Есть ли там функции работы с дескрипторами безопасности? Или что другое интересное есть? Вообще то однажды видел код, который без всяких драйверов выполнял функцию в нулевом кольце привилегий. В принципе, эта длл могла перехватить native api. Чтобы сказать точно, какой механизм применяется здесь, нужно дезасемблировать библиотеку.

Автор: Fixin 11.4.2006, 19:21
Цитата(adonin @ 11.4.2006, 17:35 Найти цитируемый пост)
дезассемблировать эту dll
Что есть незаконно. Дать ссылку на правила? Следите за такими мелочами. Пока я добрый, так что живите.

Автор: adonin 12.4.2006, 11:18
Цитата(Fixin @ 11.4.2006, 19:21 Найти цитируемый пост)
Что есть незаконно

Понял, исправлюсь smile Просто незаконна сама задача: снять защиту проги.

Автор: Fixin 15.4.2006, 15:42
Цитата(adonin @ 12.4.2006, 11:18 Найти цитируемый пост)
сама задача
Это понятно, но там и не докажешь...
И, как минимум, не стиот способствовать smile Не обижайся smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)