Утилиты от Andrey Shedel

Консольные утилиты от Andrey Shedel, использующие Native API




Andrey Shedel написал набор консольных утилит, использующих Native API, и разрешил их распространение на условиях лицензии GNU General Public License. Все утилиты в одном архиве с исходными кодами находятся здесь (RAR). Кроме того, все утилиты можно скачать с сайта автора.

  • nrun - утилита для запуска процессов с использованием Native API;
  • ln - утилита для создания жёстких и символьных ссылок Windows;
  • kloader - утилита для загрузки драйверов;
  • sync - утилита для сброса дискового кэша в Windows;
  • uptime - утилита для вывода информации о времени работы системы (uptime);

Описание утилит:

Утилита nrun

Программа для запуска процессов. Эта программа представляет наибольший интерес. Её параметры таковы:

nrun: NT Native Application launcher.
 (c) 1999 Andrey Shedel 

usage: nrun  []

Программа может запускать как обычные Win32-процессы, так и Native-приложения. В обычных условиях попытка запуска native-приложения приведёт к появлению сообщения "Приложение нельзя запустить в режиме Win32".

Приложение нельзя запустить в режиме Win32
Приложение нельзя запустить в режиме Win32


Тут и приходит на помощь утилита nrun, которая может успешно запускать такие процессы. Программа использует недокументированную функцию RtlCreateUserProcess. Использование этой функции для запуска Native-приложений я описал тут.

Утилита nrun позволяет не прописывать native-приложение в ключ BootExecute, а запускать прямо из обычного режима Windows. Это намного удобнее, так как для запуска приложения не приходится перезагружать компьютер. Однако, для взаимодействия с интерактивным приложением наподобие Native shell всё же придётся перезагрузиться. С помощью утилиты nrun можно повторно запустить в работающей системе smss.exe, но это приведёт к синему экрану смерти (BSoD).

Утилита ln

Программа для создания жёстких и символьных ссылок Windows. Эта программа является аналогом утилиты mklink.exe из состава Windows 7, которая делает то же самое. Параметры программы выглядят так:

ln: create/delete links for NT.
Copyright (c) 2000 Andrey Shedel ,
http://www.chat.ru/~ashedel

Usage: ln [-fis]  [-u|]
 -f  - force overwrite/delete
 -i  - ignore case
 -s  - symlink
 -u  - unlink

Ключ -f служит для принудительного создания ссылки. Ключ -i указывает программе на то, что следует игнорировать регистр символов в именах файлов. Ключ -s служит для создания символьной ссылки, отсутствие этого ключа приводит к созданию жёсткой ссылки (hardlink). Ключ -u нужен для удаления ссылки.

О том как можно использовать символьные ссылки в Windows можно прочесть здесь. Можно также почитать о технологии точек повторной обработки (reparse points).

Другие

Три другие утилиты тоже представляют интерес, можно посмотреть их код в качестве примера использования Native API. О первых шагах в программировании native-приложений читайте тут.



Автор: Andrey Shedel


При копировании материалов хорошим тоном будет указание авторства и ссылка на сайт.