Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Затруднить чтение пароля в Dos-окне...

Ответить
Настройки темы
CMD/BAT - [решено] Затруднить чтение пароля в Dos-окне...

Пользователь


Сообщения: 132
Благодарности: 3

Профиль | Отправить PM | Цитировать


Доброго дня всем форумчанам...
Не так давно нашел (может даже и здесь, не помню, много форумов перерыл) код, реализацию которого долго искал...
Сам принцип понял, но как-то он не работает...
А принцип как видите ниже - Затруднить чтение пароля в 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
Благодарности: 257

Профиль | Отправить PM | Цитировать


Цитата amel27:
это у автора оригинала надо спросить »
Очевидно же, сообщение выводится на время, достаточное для его прочтения, потом батник завершает свою работу. Удобнее, чем "Для продолжения нажмите любую клавишу"

Отправлено: 15:19, 18-02-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить 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%~
                [Ввод]   [? Отмена]
UPD: Скрипт дополнен, исправлен переход к основному меню при отказе от логина, в форму добавлены кнопки "Ввод" и "Отмена"

Последний раз редактировалось Anonymоus, 18-02-2011 в 19:42.


Отправлено: 18:07, 18-02-2011 | #12



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Затруднить чтение пароля в Dos-окне...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Чтение 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




 
Переход