elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ... 255
141  Seguridad Informática / Hacking / Re: Envío un e-mail ha alguien. ¿Hay alguna manera de saber si lo ha abierto o leído? en: 24 Febrero 2022, 07:11 am
Buenas:

Me imaginaba que había que montar un servidor Web.

En cuanto a GMail si se puede porque la mayoría de la gente no lo tiene desactivado. Si tiene activado no leer fotos o píxeles, irá todo bien para no ser detectado. En Apache recuerdo que desde que entre, muestra IP, fecha, hora y no se que más. Desde que aparezca algo, se sabe que lo leyó, lo bueno sería saber qué emal leyó, así que cada mensaje leído se muestra chivato diferente.

Con una buena Raspberry Pi está muy bien la idea hasta para ahorrar luz. ;)

Gracias por las respuestas.
142  Seguridad Informática / Hacking / Envío un e-mail ha alguien. ¿Hay alguna manera de saber si lo ha abierto o leído? en: 22 Febrero 2022, 23:00 pm
Buenas:

Cuando envío un e-mail o correo electrónico con gmail, hotmail, el que sea, no se si realmente una persona lo ha abierto o leído.

¿Existe un truco en hacerlo?

Aunque sea usando programación.

Un cordial saludos.
143  Programación / .NET (C#, VB.NET, ASP) / Re: Cambiar propiedades en: 20 Febrero 2022, 20:22 pm
Muchísimas gracias mi muy distinguido amigo. ;)
144  Programación / .NET (C#, VB.NET, ASP) / Cambiar propiedades en: 20 Febrero 2022, 08:47 am
Buenas:

¿Es posible cambiar las propiedades de un archivo?

Tal como indica abajo en rojo.

Ver imagen.

Si existe la posibilidad de hacerlo de alguna manera.


Desde un programa en consola con C#, creo un archivo de texto con la fecha por ejemplo 20/02/2022 8:46 que es el que tiene el Windwos ahora mismo, en realidad el UEFI o BIOS, se modifique a otra en el año 2019, por poner un ejemplo.

¿Existe la posibilidad de hacerlo?

Gracias.
145  Programación / .NET (C#, VB.NET, ASP) / ¿Cómo recibir email filtrado? en: 9 Enero 2022, 13:01 pm
Buenas:

En modo consola puedo enviar correo electrónico, cuyo código fuente lo dejo abajo para que lo vean. Solo puede enviar mensajes o e-mail, funciona muy bien.

Ahora quiero hacer otro programa, que solo lee email también en modo consola y  los e-mail que tanga filtrado, si tengo tres e-mail filtrados, pues solo acepta esos e-mail en pantalla. Todo esto, lee un mensaje por cada 5 minutos. Mensaje, Asunto y la dirección del e-mail.

¿Cómo se hace?

Aquí abajo dejo el codigo de enviar e-mail por consola que funciona al 100 %, con tildes, ñ y otros símbolos correctamente a parte de enviar más de 255 caracteres.

Para que funcione y se usa gmail.

// Activar / desactivar Acceso de aplicaciones poco seguras en Google.
https://myaccount.google.com/lesssecureapps

Código C#:
Código
  1. using System;
  2. using System.IO;
  3. using System.Net;
  4. using System.Net.Mail;
  5. using System.Text;
  6.  
  7. namespace Enviar_email_Consola_07
  8. {
  9.    internal class Program
  10.    {
  11.        static void Main(string[] args)
  12.        {
  13.  
  14.  
  15.            // Variables.
  16.            string usuario, contraseña, destinatario, asunto, mensaje;
  17.            const int MAXIMA_LONGITUD = 40000;
  18.  
  19.            #region Configuración ventana.
  20.            // Título de la ventana.
  21.            Console.Title = "Gestor correo electrónico";
  22.  
  23.            // Tamaño de la ventana, x, y, o ancho y alto.
  24.            const byte ancho = 80;
  25.            const byte alto = 25;
  26.            Console.SetWindowSize(ancho, alto);
  27.  
  28.            // Color de fondo.
  29.            Console.BackgroundColor = ConsoleColor.Black;
  30.  
  31.            // Color de las letras.
  32.            Console.ForegroundColor = ConsoleColor.Gray;
  33.  
  34.            // Limpiar pantalla y dejarlo todo en color de fondo.
  35.            Console.Clear();
  36.  
  37.            // Visible el cursor.
  38.            Console.CursorVisible = true;
  39.            #endregion
  40.  
  41.            // Título del programa.
  42.            Console.WriteLine("\t\t----------------------------------------");
  43.            Console.WriteLine("\t\t\tEnviar Correo Electrónico");
  44.            Console.WriteLine("\t\t----------------------------------------");
  45.  
  46.            try
  47.            {
  48.  
  49.                Console.WriteLine("\n");
  50.                Console.ForegroundColor = ConsoleColor.Cyan;
  51.                Console.Write("\t\tTu correo electrónico: ");
  52.                Console.ForegroundColor = ConsoleColor.Gray;
  53.                usuario = Console.ReadLine();
  54.                Console.WriteLine();
  55.                Console.ForegroundColor = ConsoleColor.Cyan;
  56.                Console.Write("\t\tIntroducir contraseña: ");
  57.                Console.ForegroundColor = ConsoleColor.Gray;
  58.                contraseña = LeerPassword();
  59.                Console.WriteLine();
  60.                Console.ForegroundColor = ConsoleColor.Cyan;
  61.                Console.Write("\t\tDestinatario: ");
  62.                Console.ForegroundColor = ConsoleColor.Gray;
  63.                destinatario = Console.ReadLine();
  64.                Console.WriteLine();
  65.                Console.ForegroundColor = ConsoleColor.Cyan;
  66.                Console.Write("\t\tAsunto: ");
  67.                Console.ForegroundColor = ConsoleColor.Gray;
  68.                asunto = Console.ReadLine();
  69.                Console.WriteLine();
  70.                Console.ForegroundColor = ConsoleColor.Cyan;
  71.                Console.Write("\t\tMensaje: ");
  72.                Console.ForegroundColor = ConsoleColor.Gray;
  73.                //mensaje = Console.ReadLine();
  74.  
  75.                #region Enviar más de 255 caracteres.
  76.                // #########################################################################
  77.                Stream inputStream = Console.OpenStandardInput();
  78.                byte[] buffer = new byte[MAXIMA_LONGITUD];
  79.                int numerosBytesLeidos = inputStream.Read(buffer, 0, MAXIMA_LONGITUD);
  80.                char[] chars = Console.InputEncoding.GetChars(buffer, 0, numerosBytesLeidos);
  81.                mensaje = new string(chars);
  82.                // #########################################################################
  83.                #endregion
  84.  
  85.                Console.WriteLine();
  86.                Console.ForegroundColor = ConsoleColor.DarkCyan;
  87.                Console.Write("\t\tCantidad de texto introducido: ");
  88.                Console.ForegroundColor = ConsoleColor.Gray;
  89.                Console.WriteLine(mensaje.Length);
  90.  
  91.                MailMessage correo = new MailMessage(usuario, destinatario, asunto, mensaje)
  92.                {
  93.                    // Enviar textos con tildes.
  94.                    BodyEncoding = Encoding.UTF8
  95.                };
  96.  
  97.                SmtpClient servidor = new SmtpClient("smtp.gmail.com")
  98.                {
  99.                    Port = 587
  100.                };
  101.                NetworkCredential credenciales = new NetworkCredential(usuario, contraseña);
  102.                servidor.Credentials = credenciales;
  103.                servidor.EnableSsl = true;
  104.  
  105.                Console.WriteLine();
  106.                Console.ForegroundColor = ConsoleColor.Yellow;
  107.                Console.WriteLine("\t\tEnviando correo...");
  108.                servidor.Send(correo);
  109.                Console.WriteLine();
  110.                Console.ForegroundColor = ConsoleColor.Green;
  111.                Console.WriteLine("\t\tCorreo enviado satisfactoriamente.");
  112.                correo.Dispose();
  113.                Console.CursorVisible = false;
  114.                Console.ReadKey();
  115.            }
  116.            catch (Exception ex)
  117.            {
  118.                Console.ForegroundColor = ConsoleColor.Red;
  119.                Console.WriteLine("ERROR: \n");
  120.                Console.WriteLine("\t\t" + ex.Message);
  121.                Console.WriteLine();
  122.                Console.ForegroundColor = ConsoleColor.Yellow;
  123.                Console.WriteLine("\t\tNo se ha enviado el correo.");
  124.                Console.ReadKey();
  125.            }
  126.  
  127.        }
  128.  
  129.        // A la hora de introducir la contraseña, se sustituye por asterístos (*) en pantalla.
  130.        public static string LeerPassword()
  131.        {
  132.            ConsoleKeyInfo cki;
  133.            StringBuilder sb = new StringBuilder();
  134.            int contador = 0;
  135.  
  136.            do
  137.            {
  138.                cki = Console.ReadKey(true);
  139.                if (cki.Key != ConsoleKey.Enter)
  140.                {
  141.  
  142.                    sb.Append(cki.KeyChar);
  143.                    if (contador < 1)
  144.                    {
  145.                        Console.Write("*");
  146.                    }
  147.                    contador++;
  148.                }
  149.  
  150.                else
  151.                {
  152.                    break;
  153.                }
  154.  
  155.            } while (true);
  156.            Console.WriteLine();
  157.            return sb.ToString();
  158.        }
  159.    }
  160. }

Feliz año 2.022. ;)
146  Programación / .NET (C#, VB.NET, ASP) / Puerto serie por Web en: 9 Enero 2022, 12:58 pm
Buenas:

Tengo un SAI/UPS que se controla por el puerto serie con su cable (también USB si lo deseas) y puede leer los datos con su programa que te da el fabricante. Lo curioso que dicho programa al ejecutarlo, te abre el navegador Web, pones tu nick y contraseña y aparece los datos en pantalla que viene desde el dispositivo.

Por lo que veo, en la Webmuestra los datos recibidos y también envías comandos, por su puesto, al puerto serie.

¿Cómo controla datos de entrada y dalidas del puerto serie dede ls Web mediante servicios?

Antiguamente usaba capas para hacerlo funcionar, mi manera era, SQL Server, Visual C# para controlar puerto serie y leer la base de datos si ha sido modificado algún estado y controlar la base de datos por vía Web.

Observando el acceso directo hay un archivo que se llama agent.cmd, lo abro y aparece esto.

start http://localhost:3052/local/

Me abre el navegadorr Web.  A patir de ahí, ya funciona el programa del SAI.

Felices fiestas 2022.
147  Programación / .NET (C#, VB.NET, ASP) / Re: Salto de línea de palabras en: 31 Diciembre 2021, 07:46 am
Quiero saber si es posible hacerlo con muchos menos códigos.

Código
  1. using System;
  2.  
  3. namespace Return_a_patir_del_caracter_20_Consola_01
  4. {
  5.    internal class Program
  6.    {
  7.        static void Main(string[] args)
  8.        {
  9.            #region Configuración ventana.
  10.            // Título de la ventana.
  11.            Console.Title = "Return a partir del caracter 20";
  12.  
  13.            // Tamaño de la ventana, x, y.
  14.            Console.SetWindowSize(70, 25);
  15.  
  16.            // Color de fondo.
  17.            Console.BackgroundColor = ConsoleColor.Gray;
  18.  
  19.            // Color de las letras.
  20.            Console.ForegroundColor = ConsoleColor.Black;
  21.  
  22.            // Limpiar pantalla y dejarlo todo gris.
  23.            Console.Clear();
  24.  
  25.            // Visible el cursor.
  26.            Console.CursorVisible = true;
  27.            #endregion
  28.  
  29.            Console.WriteLine("Hello World!");
  30.            string line = ReadLine20CharByLine();
  31.        }
  32.  
  33.        static string ReadLine20CharByLine()
  34.        {
  35.            string result = "";
  36.            ConsoleKeyInfo key;
  37.            int count = 0;
  38.            while ((key = Console.ReadKey()).Key != ConsoleKey.Enter)
  39.            {
  40.                if (key.Modifiers == (ConsoleModifiers.Control | ConsoleModifiers.Shift | ConsoleModifiers.Alt))
  41.                {
  42.                    continue; // ignora caracteres si viene con algún modificador
  43.                }
  44.                if (key.Key == ConsoleKey.Backspace) // si se pulsa BackSpace
  45.                {
  46.                    if (result.Length > 0)
  47.                    {
  48.                        if (count == 0)  // si estás al principio de un renglón que no es el 1ro
  49.                        {                // borra el último caracter del renglón anterior
  50.                            Console.SetCursorPosition(20, Console.CursorTop - 1);
  51.                            Console.Write("\b \b");
  52.                            count = 19;
  53.                        }
  54.                        else       // si no, borra el caracter y retrocede en la misma linea
  55.                        {
  56.                            Console.Write(" \b");
  57.                            count--;
  58.                        }
  59.                        result = result.Substring(0, result.Length - 1);
  60.                    }
  61.                }
  62.                else  // si no se pulsó BackSpace ni ninguna tecla con Modifier
  63.                {     // se suma el caracter a result
  64.                    result += key.KeyChar.ToString();
  65.                    count++;
  66.                    if (count == 20)
  67.                    {
  68.                        count = 0;
  69.                        Console.SetCursorPosition(0, Console.CursorTop + 1);
  70.                    }
  71.                }
  72.            }
  73.            return result;
  74.        }
  75.    }
  76. }
  77.  

Feliz fin e año 2021.
148  Programación / .NET (C#, VB.NET, ASP) / Salto de línea de palabras en: 30 Diciembre 2021, 23:35 pm
Buenas.

En modo consola C#.

Al escribir en el teclado al llegar al carácter 20, sigo escribiendo y me sale el renglón abajo. Así sucesivamente.

¿Es posible hacerlo sin pulsar Enter?

Que lo haga solo.

Felices fiestas 2021.
149  Programación / .NET (C#, VB.NET, ASP) / Re: C# Ejecutar archivo .bat en: 30 Diciembre 2021, 23:34 pm
Sin usar archivos bat externos.

Código
  1. ProcessStartInfo info = new ProcessStartInfo("cmd", "c/ shutdown -s -t 60");
150  Programación / .NET (C#, VB.NET, ASP) / Al recibir datos, se me comen las palabras o faltan caracteres en: 30 Diciembre 2021, 06:11 am
Buenas:

Al recibir datos por puerto serie, muchas veces se me come las palabras.

¿Hay alguna forma que no fallen las entradas de mensajes por puerto serie?

Dejo el código fuente aquí.

Código
  1. using System;
  2. using System.IO.Ports;
  3. using System.Text;
  4. using System.Threading;
  5. using System.Windows.Forms;
  6.  
  7. namespace Velocímetro_Arduino_Puerto_serie_01
  8. {
  9.    public partial class Form1 : Form
  10.    {
  11.        // Utilizaremos un string como buffer de recepción.
  12.        string recibidos;
  13.  
  14.        public Form1()
  15.        {
  16.            InitializeComponent();
  17.        }
  18.  
  19.        private void Form1_Load(object sender, EventArgs e)
  20.        {
  21.            // Añado los puertos disponible en el PC con SerialPort.GetPortNames() al comboBox_Puerto.
  22.            try
  23.            {
  24.                comboBox_Puerto.DataSource = SerialPort.GetPortNames();
  25.            }
  26.  
  27.            catch
  28.            {
  29.                MessageBox.Show("No encuentra ningún puerto físico ni virtual.", "Aviso:",
  30.                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
  31.            }
  32.  
  33.            // // Añade puertos disponibles físicos  y virtuales.
  34.            serialPort1.PortName = comboBox_Puerto.Text.ToString();
  35.        }
  36.  
  37.        #region Funciones.
  38.  
  39.        void UsbConectado()
  40.        {
  41.            byte[] miBuffer = Encoding.ASCII.GetBytes("USB_CONECTADO");
  42.            serialPort1.Write(miBuffer, 0, miBuffer.Length);
  43.        }
  44.  
  45.        void UsbDesconectado()
  46.        {
  47.            byte[] miBuffer = Encoding.ASCII.GetBytes("USB_DESCONECTADO");
  48.            serialPort1.Write(miBuffer, 0, miBuffer.Length);
  49.        }
  50.  
  51.        // Detecta USB o puerto serie virtual cuando lo conecta y desconecta del cable.
  52.        protected override void WndProc(ref Message USB)
  53.        {
  54.            if (USB.Msg == 0x219)
  55.            {
  56.                comboBox_Puerto.DataSource = SerialPort.GetPortNames();
  57.            }
  58.  
  59.            // Detecta si hay cambios en el usb y si los hay los refleja.
  60.            base.WndProc(ref USB);
  61.        }
  62.  
  63.        // Procesar los datos recibidos en el buffer y extraer las tramas completas.
  64.        void Actualizar(object sender, EventArgs e)
  65.        {
  66.            // Asignar el valor de la trama al label_Recibir_Km.
  67.            label_Recibir_Km.Text = recibidos;
  68.  
  69.            switch (recibidos)
  70.            {
  71.                case "OK":
  72.                    byte[] miBuffer = Encoding.ASCII.GetBytes("Conectado.      ");
  73.                    serialPort1.Write(miBuffer, 0, miBuffer.Length);
  74.                    label_Recibir_Km.Text = "Arduino conectado.";
  75.                    break;
  76.                default:
  77.                    break;
  78.            }
  79.  
  80.            // Limpiar.
  81.            recibidos = "";
  82.        }
  83.        #endregion
  84.  
  85.        #region Botones.
  86.        private void button_Conectar_Click(object sender, EventArgs e)
  87.        {
  88.            try
  89.            {
  90.                serialPort1.PortName = comboBox_Puerto.Text.ToString(); // Puerto seleccionado previamente.
  91.                serialPort1.Open(); // Abrir puerto.
  92.                UsbConectado();
  93.                comboBox_Puerto.Enabled = false;
  94.                comboBox_Baudios.Enabled = false;
  95.                button_Conectar.Enabled = false;
  96.                button_Desconectar.Enabled = true;
  97.                button_Enviar.Enabled = true;
  98.            }
  99.  
  100.            catch
  101.            {
  102.                MessageBox.Show("El puerto no existe.", "Aviso:",
  103.                MessageBoxButtons.OK, MessageBoxIcon.Warning);
  104.            }
  105.        }
  106.  
  107.        private void button_Desconectar_Click(object sender, EventArgs e)
  108.        {
  109.            UsbDesconectado();
  110.            serialPort1.Close(); // Cerrar puerto.
  111.            comboBox_Puerto.Enabled = true;
  112.            comboBox_Baudios.Enabled = true;
  113.            button_Conectar.Enabled = true;
  114.            button_Desconectar.Enabled = false;
  115.            button_Enviar.Enabled = false;
  116.        }
  117.  
  118.        private void button_Enviar_Click(object sender, EventArgs e)
  119.        {
  120.            byte[] miBuffer = Encoding.ASCII.GetBytes("KM" + textBox_Km.Text);
  121.            serialPort1.Write(miBuffer, 0, miBuffer.Length);
  122.        }
  123.        #endregion
  124.  
  125.        // Al cerrar el formulario, cierra el puerto si está abierto.
  126.        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
  127.        {
  128.            try
  129.            {
  130.                // Al cerrar este programa, indica a Arduino cerrado.
  131.                // Arduino sigue con su rutina al detectar CERRADO.
  132.                byte[] miBuffer = Encoding.ASCII.GetBytes("C#_CERRADO");
  133.                serialPort1.Write(miBuffer, 0, miBuffer.Length);
  134.  
  135.                // Cerrar puerto.
  136.                serialPort1.Close();
  137.            }
  138.  
  139.            catch (Exception error)
  140.            {
  141.                MessageBox.Show(error.Message, "Aviso:",
  142.                MessageBoxButtons.OK, MessageBoxIcon.Warning);
  143.            }
  144.        }
  145.  
  146.        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
  147.        {
  148.            // Acumula los caracteres recibidos a nuestro "buffer" string.
  149.            recibidos += serialPort1.ReadExisting();
  150.  
  151.            // Invocar o llamar al proceso de tramas.
  152.            Invoke(new EventHandler(Actualizar));
  153.        }
  154.    }
  155. }
  156.  
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ... 255
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines