Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Meta

#291
Buenas campeón:

Deja ver si capto lo que cuentas. Con el XOR ^10 me vale y solo quiero eso. Me da que usas la idea del Windows form y mi idea es en modo consola.

Saludos.
#292
Gracias.

No quería tanto código, con una mini protección ya me vale.

Si tengo un array, hago este código y me basta.

Código (csharp) [Seleccionar]
    for (int i = 0; i < var1.Length; i++)
    {
        var1[i] = (byte)(var1[i] ^ 10);
    }


Solo tengo este string que dice:

Código (csharp) [Seleccionar]
string var1 = "Esto es una prueba.";
Console.WriteLine = var1;


Cuando usas el for arriba otra vez que es un XOR ^10, con usar el mismo, vuelve los valores como estaba.

Ahora la variable var1 en su interior lo transforma en "mjcgpow5yp4g0,xy43ph". Si vuelvo aplicar el for pero con la variable var1 igual a mjcgpow5yp4g0,xy43ph, al final dice "Esto es una prueba.".

El for de arriba mira un array, pero en este caso es un string, en el cual no se que hacer para que funcione en un string. Ahí está mi problema.

Saludos.
#293
Hacking / Re: Hackear una impresora
29 Marzo 2018, 12:44 PM
Buenas:

Me dio por venir aquí otra vez. He gastado bromas a un amigo con su impresora. Desde que ejecute este .exe, imprime un mensaje en su impresora. Es muy sencillo para que se entienda.Se los dejo aquí por si lo necesitan. El código del post anterior es más complicado.

Código C#:
Código (csharp) [Seleccionar]
using System;
using System.Drawing; // No olvidar y añadir referencia.
using System.Drawing.Printing;

namespace Impresora_Consola_01
{
   class Program
   {
       static void Main(string[] args)
       {
           string s = "Hola amigo. Solo t he gastado un folio.";

           PrintDocument p = new PrintDocument();
           p.PrintPage += delegate (object sender1, PrintPageEventArgs e1)
           {
               e1.Graphics.DrawString(s, new Font("Times New Roman", 12),
                   new SolidBrush(Color.Black), new RectangleF(0, 0, p.DefaultPageSettings.PrintableArea.Width,
                   p.DefaultPageSettings.PrintableArea.Height));
           };

           try
           {
               p.Print();
           }
           catch (Exception ex)
           {
               // throw new Exception("Exception Occured While Printing", ex);
           }
       }
   }
}


Si se pude modificar a mejor, lo comparten.

Saludos.
#294
Hola:

Es exactamente lo que explicó nuestro amigo forero aquí, pero en vez de un array, un string que no se como se hace.

https://foro.elhacker.net/net/modificar_el_array_de_byte-t462782.0.html;msg2102256#msg2102256

Saludos.
#295
Buenas gente:

Hice un ejemplo con este código.
Código (csharp) [Seleccionar]
using System;

namespace Encriptar_variable_Consola_01
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Ocultar variable"; // Título de la pantalla.

            string variable = "Esto es una prueba.";

            Console.WriteLine(variable);
            Console.WriteLine("Otra prueba.");

            Console.ReadKey(); // Pulse cualquier tecla para salir.
        }
    }
}


Mirando el ejecutable en el editor hexadecimal. Si encuentra los valores de las variables como indica la captura.


Uso Visual Studio 2017 Community. No quiero usar técnica de obfuscación, no se si esta versión la incluye. Quiero saber si existe la manera de camuflar esas variables.

Mi idea era usar algo parecido a esto en XOR ^10 con otro programa que haré a parte.

Código (csharp) [Seleccionar]
    for (int i = 0; i < variable.Length; i++)
    {
        variable[i] = (byte)(variable[i] ^ 10);
    }


El código de ejemplo de una variable tipo array desordenarlo.

Luego copio y pego el resultado ya codificado en la variable que es el que estoy usando ahora. En este caso uso una variable tipo string.

Tengo que hacer de alguna manera, al ejecutar el programa, lea las variables codificadas y las vuelva a poner bien para que se lea en cristiano, luego lo guarda en otra variable y Console.WriteLine lo muestra.

Espero que se entienda lo que quiero decir o lo explico de otra manera.

¿Alguna ocurrencia?

Saludos.
#296
Buenas:

Pedazo de cocumento, has hecho un buen trabajo. ;)

Me ha ayudado tener ideas, ya puedo imprimir un folio, eso si, me sale una ventana con un botón cancelar y la palabra diciendo "Imprimiendo..." que no debería, pero al menos ya funciona. Dejo el código por si alguien lo necesita o coja ideas.

Código C#:
Código (csharp) [Seleccionar]
using System;
using System.Drawing; // No olvidar y añadir referencia.
using System.Drawing.Printing;

namespace Impresora_Consola_01
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = @"Hola amigo.

Solo te he gastado un folio.";

            PrintDocument p = new PrintDocument();
            p.PrintPage += delegate (object sender1, PrintPageEventArgs e1)
            {
                e1.Graphics.DrawString(s, new Font("Times New Roman", 12),
                    new SolidBrush(Color.Black), new RectangleF(0, 0, p.DefaultPageSettings.PrintableArea.Width,
                    p.DefaultPageSettings.PrintableArea.Height));
            };

            try
            {
                p.Print();
            }
            catch (Exception ex)
            {
                // throw new Exception("Exception Occured While Printing", ex);
            }
        }
    }
}


Gracias por tu tiempo.
#297
Buenas:

Quiero imprimir un folio, una hoja con la consola en C#, no con Windows Form.
Aquí hay un ejemplo pero es con Windows Form en el cual no me interesa.
https://msdn.microsoft.com/es-es/library/system.drawing.printing.printersettings%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=csharp&f=255&MSPPError=-2147217396#code-snippet-2

He modificado el código así un poco.
Código (csharp) [Seleccionar]
using System;
using System.IO;


namespace Impresora_Consola_01
{
    class Program
    {
        static void Main(string[] args)
        {
            void Printing(string printer)
            {
                try
                {
                    streamToPrint = new StreamReader(@"Hola amigo.");
                    try
                    {
                        printFont = new Font("Arial", 10);
                        PrintDocument pd = new PrintDocument();
                        pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
                        // Specify the printer to use.
                        pd.PrinterSettings.PrinterName = printer;

                        if (pd.PrinterSettings.IsValid)
                        {
                            pd.Print();
                        }
                        else
                        {
                            Console.WriteLine("Printer is invalid.");
                        }
                    }
                    finally
                    {
                        streamToPrint.Close();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
    }
}


Cuando ejecutes el ejecutable, lo que tiene que hacer, buscar una impresora que tenga dispuesta, y imprima solo un folio. El mensaje que imprime una hoja es este:

CitarHola amigo.

Solo te he gastado un folio.

¿Es posible hacer en modo consola o tiene que ser si o si con Windows Form?

Saludos.
#298
Siguiendo los consejos que dieron arriba sobre regedit, lo hice así y funciona.

Código (csharp) [Seleccionar]
using Microsoft.Win32;
using System;
using System.IO;

namespace Broma_Consola_03
{
    class Program
    {
        static void Main(string[] args)
        {
            // Root.
            const string userRoot = "HKEY_CURRENT_USER";
            // Clave.
            const string subkey = "Metaconta";
            // FullName.
            const string keyName = userRoot + "\\" + subkey;
            // ValueName.
            const string valueName = "Contador";

            // Variables txt.
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            // Si no existe la Key, dará -1.
            int contador = Convert.ToInt32(Registry.GetValue(keyName, valueName, -1) ?? -1);

            // Comprueba si la key, al ser -1 si la key no existe.
            if (contador >= 0)
            {
                // Si el contador es mayor que 0.
                if (contador > 0)
                {
                    // Sobre escribe la key con -1 su valor.
                    Registry.SetValue(keyName, valueName, contador -= 1);
                }

                // Si el contador es igual a 0.
                if (contador == 0)
                {
                    // Escribe un nuevo arhivo de texto con su contenido correspondiente.
                    File.WriteAllText(Path.Combine(path, "Hola.txt"), "Hola amigo.");
                }

            }
            // Entonces.
            else
            {
                // Escribe en el registro el valor.
                Registry.SetValue(keyName, valueName, 3);
            }
        }
    }
}


Saludos.
#299
Buenas compeñar@s:

Muy buen aporte. No había caído la parte esta del inicio.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Si no está en modo administrador, nose si tendrás permiso o Windows 10 se queja. Tengo que hacer pruebas.

Buen tutorial.

Gracias a todos por aportar, modificaré con vuestros aportes usando el regedit.

Saludos..
#300
.NET (C#, VB.NET, ASP) / Programas de broma
22 Marzo 2018, 17:29 PM
Hola:

Estaba urgando con C# haciendo archivo de bromas. La idea principal es, que al ejecutar esta aplicación hecha en modo consola, no muestre la pantalla en negro, que no muestre nada, solo que al ejecutarlo tres veces, la primera vez crea un archivo  de texto llamado Archivo.txt que contiene el valor número 3, si llega a 0, crea otro arhivo llamado Hola.txt y en su interior, el contenido escrito esto, Hola amigo.

Los archivos se crean en el escritorio como ejemplo.

Aquí un ejemplo:
Código (csharp) [Seleccionar]
using System;
using System.IO;

namespace Broma_Consola_02
{
    class Program
    {
        static void Main(string[] args)
        {
            // Variables.
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            string nombreArchivo = "Archivo.txt";

            // Comprueba si existe el archivo en dicha ruta.
            if (File.Exists(Path.Combine(path, nombreArchivo)))
            {
                // Variable del contador.
                int contador;

                // Lee el fichero.
                if (Int32.TryParse(File.ReadAllText(Path.Combine(path, nombreArchivo)), out contador))
                {
                    // Si el contador es mayor que 0.
                    if (contador > 0)
                    {
                        // Sobre escribe el archivo con -1 su valor.
                        File.WriteAllText(Path.Combine(path, nombreArchivo), $"{contador -= 1}");
                    }

                    // Si el contador es igual a 0.
                    if (contador == 0)
                    {
                        // Escribe un nuevo arhivo de texto con su contenido correspondiente.
                        File.WriteAllText(Path.Combine(path, "Hola.txt"), "Hola amigo.");
                    }
                }

                // Entonces.
                else
                {
                    Console.WriteLine("El archivo contiene un valor no esperado.");
                }
            }

            // Entonces.
            else
            {
                // Escribe el archivo con el valor 3 en Archivo.txt.
                File.WriteAllText(Path.Combine(path, nombreArchivo), "3");
            }

            //Console.ReadKey(); // Pulse cualquier tecla para salir.
        }
    }
}


Mi idea es que este ejecutable esté sea como sea, en el inicio de Windows, es decir, que al iniciar Windows, te resta un valor en el archivo txt hasta llegar a 0. Cuando llegues a 0, al iniciar el Windows, se abre también en el inicio el archivo Hola.txt con el mensaje, Hola amigo.

Aquí abajo lo puse como escritorio, al dinal sustituye Desktop (escritorio)
Código (csharp) [Seleccionar]
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
a Startup (Inicio).
Código (csharp) [Seleccionar]
string path = Environment.GetFolderPath(Environment.SpecialFolder.Startup);

El que quiere poner otra ubicación, aquí hay una lista.

¿Qué técnica, o ideas, usarían para poder poner este ejecutable en el inicio?

Salu2.