PDA

Показать полную графическую версию : [решено] поправить строки под x64


c4uran
31-07-2015, 10:31
в огромном скрипте есть блок отвечающий за ввод пароля и от греха по дальше скрывающий символы ввода:


echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5>%tmp%\in.com
set /p= Entered symbols will be hide:<nul
for /f "tokens=*" %%i in ('%tmp%\in.com') do set "password=%%i"
del /q %tmp%\in.com>nul


на x64 системах вываливает ошибку, похоже in.com не существует в x64 или не работает
Возможно ли переписать этот блок под x64 или альтернативным способом скрыть вводимые символы с экрана в переменную?

NickM
31-07-2015, 11:33
Какая ошибка? И с чего Вы взяли что in.com не существует? Вы Сами его созадете и заполняете символами в первой строке приведенного Вами кода.

sov44
31-07-2015, 11:52
похоже in.com не существует в x64 или не работает »
не нужно создавать файл in.com, создайте обычный текстовик

@echo off
setlocal enabledelayedexpansion

echo 4568736219>%tmp%\pass.txt

:1
echo.
Set /p choice="Введите пароль: "
if not defined choice goto 1
for /f %%i in (%tmp%\pass.txt) do if not "%%i"=="choice" echo ошибка ввода& pause>nul& cls& goto 1
pause
exit

Georgio
31-07-2015, 12:31
на x64 системах вываливает ошибку, похоже in.com... в x64... не работает »



Да, это так.




Возможно ли переписать этот блок под x64 или альтернативным способом скрыть вводимые символы с экрана в переменную? »



Возможно только применение альтернативной "технологии":

for /f "delims=" %%i in ('
mshta "about:<html><head><title>Your title</title></head><script language="javascript">function a(){new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(window.frm.t.value);close();}</script><body><center><br><br><br><br><br><br><br><br><br><br><form id='frm'><input type='password' name='t' size=12><input type='button' value='Entered symbols will be hide. Press this button after entering.' onclick='a();'></form></center></body></html>"
') do set password=%%i

.

c4uran
01-08-2015, 15:57
sov44 не очень понял ваш код он сравнивает веденый пароль с тем что в файле

Georgio метод работает(это безумие даже понять не могу как такое пришло вам в голову), спасибо, это конешн круто как я понимаю альтернатив больше нет?

Iska
01-08-2015, 18:36
как я понимаю альтернатив больше нет? »
PowerShell. Написать свой или перекомпилировать in.com под новую архитектуру.

Georgio
02-08-2015, 02:16
PowerShell. »



Угу. Например, так: $password = ($x = [System.Runtime.InteropServices.Marshal])::PtrToStringAuto($x::SecureStringToBSTR((Read-Host 'Entered symbols will be hide' -AsSecureString))).

Можно и в пакетный файл вставить:

for /f "delims=" %%i in ('
powershell "($x=[System.Runtime.InteropServices.Marshal])::PtrToStringAuto($x::SecureStringToBSTR((Read-Host 'Entered symbols will be hide' -AsSecureString)))"
') do set password=%%i

.

c4uran
02-08-2015, 12:26
Georgio,
ТЫСЯЧА СПАСИБО ТО ЧТО НУЖНО!!!! ГЕНИАЛЬНО!!!

если не сложно поясните пожалуйста код powershell, что делает каждый вызов




© OSzone.net 2001-2012