Como la seguridad local a veces es algo que no está claro o correctamente conceptuada, incluso para los Administradores de los sistemas, ya que se presta a errores, conceptos no positivos, ideas sin sentido, y sobre todo a keyloggers maliciosos, aqui va un solución para "distorsionar" la contraseña con lo que se escribe. Puede servir para también distorsionar la tarjeta de crédito e introducir solo parte de ella, ya que otra parte se almacena en el INI. Si hubieran usado un programa como este, los que capturaron millones de tarjetas de créditos se hubieran llevado un chasco, ya que tendrían unos números de tarjetas distorsionadas e inútiles. (Esta versión no es para tarjetas sino para usuario y contraseña de LOGIN, para acceso a páginas.)
- Un remapeador de contraseñas para no teclear la contraseña de siempre sino para distorsionarla con una MASCARA, igual que la distorsión de la voz.
- Y un facilitador para contraseñas muy complicadas que usan combinaciones de teclas que se pueden introducir en el ini
La máscara: sirve para introducir siempre las letras en mayusculas o minúsculas indistintamente, es decir, puedo escribir mi contraseña en mayúsculas aunque sea pedida en minusculas porque le he puesto esto en la máscara LLLLLLLLL (L-Lower o U-Uppercase)
Cada caracter representa una caracter de la contraseña final en la máscara, en la máscara no se tocan los carácteres solo es para mayusc. y minúsculas, caracteres de relleno se descartan como - . x, esos caracteres de relleno hay que que introducirlos como son en origen.
U es para cambiar y forzar a mayuscula este caracter, con lo que se introduzca (es igual poner el pass en mayusculas o minúsculas)
L es para forzar a minúscula este caracter
La contraseña: Si lo desea puede introducir toda la contraseña dentro del INI, y no escribir nada cuando lo pide, pero la seguridad baja cuando más parte de la contraseña esté dentro del INI, por si alguien lo abre.
&KEY es igual a lo que se va a introducir desde el teclado en la entrada de datos (por ejemplo una parte de la contraseña que no nos gusta introducir.
Titulo de la página del explorador cuando lo abre ejemplo:
Y los identificadores del HTML para los tres campos a usar, usuario, contraseña y captcha que se ven en ver el código fuente de la página
Crear un fichero INI: Copiar y Pegar esto dentro de un fichero que se llame PassSeguro.ini, son las variables a personalizar con los datos de tu página.
[Pass]
Usuario=MiUsuario
Mask=UUUUUUU--L
Pass=&KEY_algodelPass
PaginaWeb=http://www.paginaConContrasena.com
TituloWeb=Web del Empleado Público - Inicio de sesión - Windows Internet Explorer
HtmlUser=userId
HtmlPass=password
HtmlCaptcha=jcaptcha
Código: Seleccionar todo
;COPIAR ESTO dentro de un fichero llamado PassSeguro.ini más info en http://www.emesn.com/autoitforum/posting.php?mode=post&f=4
;[Pass]
;Usuario=MiUsuario
;Mask=UUUUUUU--L
;Pass=&KEY_loquequieras
;PaginaWeb=http://www.paginaConContrasena.com
;TituloWeb=Titulo de la página
;Cada caracter representa una caracter de la contraseña final en Mask, no se tocan los carácteres solo es para mayusc. y minúsculas, caracteres de relleno se descartan
;U es para forzar a mayuscula este caracter
;L es para forzar a minúscula este caracter
;&KEY es los que se va a introducir desde el teclado en la entrada de datos
; Los IDENTIFICADORES DE LA PÁGINA WEB están en su código fuente
;HtmlUser=userId
;HtmlPass=password
;HtmlCaptcha=jcaptcha
#Include <File.au3>
#include <IE.au3>
#include <Misc.au3>
$Usuario = IniRead("PassSeguro.ini", "Pass", "Usuario", "")
$Mascara = IniRead("PassSeguro.ini", "Pass", "Mask", "")
$Pass = IniRead("PassSeguro.ini", "Pass", "Pass", "")
$PaginaWeb = IniRead("PassSeguro.ini", "Pass", "PaginaWeb", "")
$TituloWeb = IniRead("PassSeguro.ini", "Pass", "TituloWeb", "")
$HtmlUserId = IniRead("PassSeguro.ini", "Pass", "HtmlUser", "")
$HtmlPasword = IniRead("PassSeguro.ini", "Pass", "HtmlPass", "")
$HtmlCaptcha = IniRead("PassSeguro.ini", "Pass", "HtmlCaptcha", "")
$oIE = _IECreate($PaginaWeb)
$Contrasena = PasaMascara(StringReplace($Pass, "&KEY", InputBox("Contraseña:" & $Mascara & " " & $Pass, "Contraseña" & @CR & "Introducir da igual mayúscula o minúscula", "", "&", 250, 250, 450, 350)), $Mascara)
;ShellExecute("PassSeguro.ini")
$oForm = _IEFormGetObjByName($oIE, "LoginActionForm")
_WinWaitActivate($TituloWeb, "")
$oUserId = _IEFormElementGetObjByName($oForm, $HtmlUserId)
_IEFormElementSetValue($oUserId, $Usuario)
$oPass = _IEFormElementGetObjByName($oForm, $HtmlPasword)
_IEFormElementSetValue($oPass, $Contrasena)
$oCaptcha = _IEFormElementGetObjByName($oForm, $HtmlCaptcha)
_IEFormElementSetValue($oCaptcha, InputBox("Captcha", "Captcha", "", "", 200, 200, 400, 300))
_IEFormSubmit($oForm)
_filewritelog("ellog.txt","Contraseña final=>"&$Contrasena)
_IELoadWait ($oIE,500,4000)
Sleep(1000)
Send("s")
If MsgBox(1, "Cerrar todo Internet Explorer", "¿Cierra ya el Internet Explore?") = 1 Then
_IEQuit($oIE)
Sleep(1000)
ProcessClose("iexplore.exe")
EndIf
Exit
Func PasaMascara($Cont, $Masc)
$nuevaCont = ""
$milog=""
For $i = 1 To StringLen($Cont)
$Cont1 = StringMid($Cont, $i, 1)
$Masc1 = StringMid($Masc, $i, 1)
$nuevaCont = $nuevaCont & _Iif($Masc1 = "U", StringUpper($Cont1), _Iif($Masc1 = "L", StringLower($Cont1), $Cont1))
$milog=$milog&$Cont&"->"&$Masc1 &" "&$nuevaCont
Next
_filewritelog("ellog.txt",$milog)
Return ($nuevaCont)
EndFunc ;==>PasaMascara
Func _WinWaitActivate($title, $text, $timeout = 1)
WinWait($title, $text, $timeout)
If Not WinActive($title, $text) Then WinActivate($title, $text)
WinWaitActive($title, $text, $timeout)
EndFunc ;==>_WinWaitActivate
Actualización 16 dic 2010 pequeños cambios