Вот, включайте себе SeTcbPrivilege. Потом можно назад вертать раскомментарив RemoveAccountRight. Ребута не треба, только повторный логон. На асме лень было мутить - проект msvc6. _1027681975__DirectIOAccess.rar
> Вот, включайте себе SeTcbPrivilege. Тогда смысла нет, ведь по умолчанию этой привилегии нет даже у админа
Насчет смысла, трудно сказать есть он или нет. Всё зависит от задачи. Привилегию надо назначить аккаунту только один раз. Во многих случаях это приемлимо. Щас под ХР прогнал. Чё-то закосячило. Завтра гляну.
Я просто подумал что добавление этой привилегии возможно откроет какую-нить дополнительную дыру в системе, и она таки откроет..
Ну, вобщем то возможно. Глянул подробнее под ХР. Надо ставить SEH, ловить EXCEPTION_PRIV_INSTRUCTION и возвращать EXCEPTION_CONTINUE_EXECUTION. Тогда всё работает. 987045290__DirectIOAccess.rar
bogrus Под WinXP (Sp1) зацикливается на SetConsoleScreenBufferSize LastError постоянно ERROR_INVALID_PARAMETER (00000057)
Вот сорец проги которая выключает винт через порты из Ring3. Используется открытие прямого доступа к портам. Код (Text): program Project2; uses windows, Ring0; begin InitialzeRing0Library(CALL_GATE); OpenPort($1F7, true); SetIoAccessProcess(GetCurrentProcessId(), true); asm mov al, $0E6 mov dx, $1F7 out dx, al end; FreeRing0Library(); end.
Ms Rem На самом деле это не выключения это ждущий режимпереводит а во вторых он не выключит второй хард DDDDDDD
у меня в момент инициализации бибилиотеки машина перегружается. Win XP SP2. с чем может быть связанно?