![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Затруднить чтение пароля в Dos-окне... |
|
CMD/BAT - [решено] Затруднить чтение пароля в Dos-окне...
|
Пользователь Сообщения: 132 |
Доброго дня всем форумчанам...
Не так давно нашел (может даже и здесь, не помню, много форумов перерыл) код, реализацию которого долго искал... Сам принцип понял, но как-то он не работает... А принцип как видите ниже - Затруднить чтение пароля в Dos-окне. @Echo Off Echo. Echo. Set /P $Input= Введите пароль для продолжения ^> Call :GetPswd If Not "%$Input%"=="%$Pswd%" Cls&Echo Неправильный пароль, завершение работы&Ping -n 5 127.0.0.1>nul&Exit /B 1 Rem Тут код батника Exit :GetPswd Set $Pswd=2545694053132554185 set $Pswd=%$Pswd:2=% Set $Pswd=%$Pswd:~-0,13% Set $Pswd=%$Pswd:54=% Set $Pswd=%$Pswd:940=% Set $Pswd=%$Pswd:135=% Set $Pswd=%$Pswd%5 @echo off echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5>in.com set /p password=Enter password:<nul for /f "tokens=*" %%i in ('in.com') do set "password=%%i" del in.com echo. echo The Password is:"%password%" Буду очень признателен... |
|
Отправлено: 13:08, 16-02-2011 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Цитата amel27:
|
|
Отправлено: 15:19, 18-02-2011 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Немного посидел, и написал вот такое решение. Код прокомментирован, но если будут вопросы - пожалуйста. Использованное стороннее ПО - Wbat: реализация красивостей интерфейса и "звездочек" в пароле; 7zip: поддержка шифрования. Проверено на ОС WinXP SP3. Кодировка батника - 866 DOS
Особенности реализации: Защита по паре логин-пароль, ничего из этого не светится в открытом виде перед пользователем, просто открывшим скрипт для просмотра. При желании можно прикрутить несколько аккаунтов через цикл for. Authorization.dat представляет из себя 7-zip архив, содержащий файл pswd с паролем внутри, и запароленный на нужный логин пользователя. (При желании можно прикрутить проверку authorization.dat по md5, чтобы предотвратить его замену пользователем) Недостатки: Wbat - 16-битная программа, поэтому она не совсем корректно работает с длинными путями, содержащими пробелы и русские символы, для обхода этой проблемы было применено временное монтирование виртуального логического диска и добавление его в PATH (только на время работы скрипта). Демо: архив со скриптом и требуемыми ему утилитами можно скачать здесь. http://rghost.ru/4432044 Данные авторизации для скрипта - логин: Anonymous пароль: JHDRn45hdciw Скриншот: Описание: Для начала монтируется временный диск с содержимым директории bin, он же прописывается в PATH. Затем идет вызов собственно, самого скрипта, и отрисовка главного окна и поясняющего текста. Далее, отрисовывается слой с боковы меню - Вход и Отмена, в зависимости от выбора пользователя происходит либо выход из скрипта, либо появление всплывающего окна с формой логина. Если ничего не введено, либо форма закрыта - возврат к главному окну. Если заполнены оба поля - идет их проверка, сначала логина - потом, если он подходит - пароля. Если что-то не подходит - об этом сообщается соответствующим сообщением снизу "окна" с формой авторизации. Если все ок - перенаправляется на нужную часть скрипта, когда она отрабатывает - отмонтирует временный логический диск и завершает работу. @Echo Off Rem Загрузчик, выполняющий создание виртуального логического диска Rem и нужных переменных, затем загружающий выбранный скрипт. If Not Exist bin Echo Требуемая для работы директория не найдена&Echo Нажмите любую кнопку для выхода&Pause>nul&Exit Set Disk=X Set WorkDir=%cd% Set BinDir=%cd%\bin Subst %Disk%: "%BinDir%" Set Path=%Path%;%Disk%:\ Cls Rem Начало исполняемого скрипта (вызовите его через Call) Rem Возможно использование этого же файла, для этого код скрипта нужно разместить Rem в :Script и вызывать эту секцию, а ресурсы в :Resources, и использовать их Rem конструкцией вида @%~nx0:Labelname Color 71 Mode CON Cols=80 Lines=25 Call :Script Rem Конец исполняемого скрипта Subst /D %Disk%: Exit Rem Тело скрипта :Script Cls Title Test Wbat text @%~nx0:MainPage Set wShadow=none&Set wBar=+white on blue&Set wHotkey=None Wbat fix box 2,1 @%~nx0:Menu Set wShadow=&Set wBar=&Set wHotkey= If "%Errorlevel%"=="1" Set LoginMsg= &GoTo :Login Exit /B :Login Set Login=&Set Pass= Call w.bat box 14,25 @%~nx0:LoginForm If %Errorlevel%==100 GoTo Script If "%Login%"=="" Set LoginMsg=Не все поля заполнены&GoTo Login If "%Pass%"=="" Set LoginMsg=Не все поля заполнены&GoTo Login 7z.exe x -p%Login% -y authorization.dat 1>nul If %Errorlevel%==2 Del pswd&Set LoginMsg=Пользователь не найден&GoTo Login Set /P Verify=<pswd&Del pswd If %Verify%==%Pass% (GoTo Data) Else (Set LoginMsg=Неверный пароль&GoTo Login) :Data Rem Именно здесь располагаются основные функции скрипта, но так как это Rem просто пример - здесь стоит заглушка в виде одной-единственной кнопки Title Авторизация успешна Wbat cls Wbat box [OK] Exit /B Rem Ресурсы :Resources :MainPage # Меню ^ Это пример скрипта, обеспечивающего базовую аутентификацию пользователя. Сам пароль хранится в зашифрованном виде и не доступен для просмотра. При создании скрипта использовалось стороннее ПО: ~Wbat~ и ~7-zip~. :Menu [ Вход ] [ Отмена ] :LoginForm " Требуется авторизация " [X] Логин: [$ login,20 ] Пароль: [$ pass,20P ] ~%LoginMsg%~ [Ввод] [? Отмена] |
Последний раз редактировалось Anonymоus, 18-02-2011 в 19:42. Отправлено: 18:07, 18-02-2011 | #12 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Чтение DVD. Неправильная функция MS-DOS | Grig | Оптические приводы | 2 | 05-11-2009 14:29 | |
Прочие - Ключ для запуска приложения MS-DOS в окне... | FRZ | Программное обеспечение Windows | 6 | 21-03-2009 12:36 | |
Ошибка - [решено] не вводится один символ в окне пароля при выходе из заставки | sanyajaunty | Microsoft Windows 2000/XP | 8 | 30-10-2008 10:07 | |
[решено] Как принудетельно открыть DOS программу в окне? | M1ndW0rk | Программное обеспечение Windows | 3 | 26-03-2008 01:56 | |
Разное - [решено] Невозможен ввод пароля в окне приветствия | Alexey K | Microsoft Windows 2000/XP | 5 | 20-02-2008 09:15 |
|