|
431
|
Programación / .NET (C#, VB.NET, ASP) / Quitar rastros
|
en: 3 Abril 2018, 22:40 pm
|
Hola: Hice una aplicación de C# que se ejecuta en el inico de Windows. Como no se puede borrar así mismo el propio ejecutable, crea un archivo bat o cmd a su lado, luego borra los dos archivos. Precisamente hace esto: 1. Ejecutar C#. 2. C# crea un archivo bat o cmd. 3. C# ejecuta el bat. 4. Bat tiene tiempo de retardo de 1 segundo. 5. C# después de crear el archivo bat, se cierra así mismo o se acaba el programa. 6. Después de pasar 1 segundo, borra el .exe y el bat .cmd así mismo. 7. No hay ningún rastro de archivos. Si lo hay en el editor de registtro el ejecutable, lo he encontrado en estas direcciones y en la misma lo puede nombrar dos veces. Equipo\HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
Equipo\HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
Equipo\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store
Equipo\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\bam\UserSettings\S-1-5-21-1318602974-3718958170-1399798190-1001
Equipo\HKEY_USERS\S-1-5-21-1318602974-3718958170-1399798190-1001\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
Equipo\HKEY_USERS\S-1-5-21-1318602974-3718958170-1399798190-1001\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store
Equipo\HKEY_USERS\S-1-5-21-1318602974-3718958170-1399798190-1001_Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache Por ejemplo, en esta ruta: Equipo\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store Se encuentra el ejecutable llamado: C:\Users\Usuario\Desktop\ Bat_desde_CS_Consola_02.exeLa ruta completa hay que borrarlo. Eso si, debo crear un programa que permita localizar dentro del editor de registro el nombre del ejecutable y borrarlo. ¿Alguna idea como se hace? Si les pica la curiosidad, el programa básico de lo que hace es este. using System; using System.ComponentModel; using System.Diagnostics; using System.IO; namespace Bat_desde_CS_Consola_02 { class Program { static void Main(string[] args) { try { // Variables. string strFileFullName = @"archivo.cmd"; // Nombre del archivo. string ruta = Environment.GetFolderPath(Environment.SpecialFolder.Startup); // Ruta en Inico de Windwos. //string ruta = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // Ruta en el escritorio. string ficheroAGrabar = Path.Combine(ruta, strFileFullName); // Concatenar ruta. // Muestra la ruta en pantalla. Console.WriteLine(ruta); // C:\Users\Usuario\Desktop // Si no existe el archivo. if (!File.Exists(ficheroAGrabar)) { // Crea el contenido al archivo de texto. File.WriteAllText(ficheroAGrabar, @"@echo off TIMEOUT /T 1 DEL /S Bat_desde_CS_Consola_02.exe DEL /S archivo.cmd EXIT"); } else // Si existe... { // Codigo a ejecutar si existe... Console.WriteLine("El archivo existe, así que no se sustituirá."); } // Ejecutar archivo.cmd. ProcessStartInfo psi = new ProcessStartInfo (); psi.UseShellExecute = false; psi.CreateNoWindow = true; psi.WindowStyle = ProcessWindowStyle.Hidden; psi.FileName = strFileFullName; // archivo.cmd. Process.Start(psi); // Cerrar aplicación C#. Environment.Exit(-1); } catch (Win32Exception) { // No mostrar nada. // Cerrar aplicación C#. Environment.Exit(-1); } } } }
No olvidar, en las propiedades, para que no muestre la ventana en ningún momento. Hasta el cmd también debe estar oculta, y lo logra con C#. Otra pregunta. A parte de todo esto. ¿Hay algún sitio, sea archivo en las profundidades de Windwos que dejen rastros? Saludos.
|
|
|
433
|
Programación / Programación General / Re: Programacion play2
|
en: 1 Abril 2018, 22:30 pm
|
Buenas: No sabía a estas alturas el YaBasic para la PSP. En fin, ¿de PS3 y PS4 nada de nada? Con la 360 y la One está con el Visual Studio incluido. Al menos viene, pero Sony se la repamplimfla. Ya que encontré la demo de PS2 con el YaBasic, la verdad que martirio usarlo con el mando. Si ha alguien se le da bien programando así, quiero lograr hacer un mini menú con YaBasic, muy básico como se puede hacer con C#. Dejo un ejemplo por si algún avispado sabe adaptar el C# a YaBasic, aunque parezca mentira, todavía se actuaiza YaBasic y con Windows 10. YaBasic: http://www.yabasic.de/Código C#:using System; namespace Menu_y_opciones_consola { class Program { static void Main(string[] args) { // Título de la ventana. Console.Title = "Menú y opciones C# 2017"; // Tamaño ventana consola. Console.WindowWidth = 30; // X. Ancho. Console.WindowHeight = 10; // Y. Alto. // Cursor invisible. Console.CursorVisible = false; // Posición del mansaje en la ventana. Console.SetCursorPosition(0, 0); Console.Write(@"Elija una opción: 1- Opción A. 2- Opción B. 3- Opción C. Escape- Salir. ==========================="); ConsoleKey key; do { // Cursor invisible Console.CursorVisible = false; // Lee cualquier tecla. key = Console.ReadKey(true).Key; // Variable de mensaje vacío. string mensaje = string.Empty; // Leer tecla selecconada por el usuario. switch (key) { case ConsoleKey.D1: // Tecla principal 1. case ConsoleKey.NumPad1: // Tecla extendida 1. Console.SetCursorPosition(0, 8); mensaje = "OPCIÓN A."; // Mostrar mensaje en pantalla. break; case ConsoleKey.D2: case ConsoleKey.NumPad2: mensaje = "OPCIÓN B."; break; case ConsoleKey.D3: case ConsoleKey.NumPad3: mensaje = "OPCIÓN C."; break; } // Posición de los mensajes. Console.SetCursorPosition(0, 8); Console.Write(" "); // 13 espacios. Console.SetCursorPosition(0, 8); Console.Write(mensaje); } // Salir de la plicación al pulsar la tecla Escape o número 4. while (key != ConsoleKey.Escape); } } }
Saludos amigos. PD: Perdón por el gran reflote del año.
|
|
|
435
|
Programación / .NET (C#, VB.NET, ASP) / Re: Cifrar variables o textos de forma sencilla.
|
en: 1 Abril 2018, 04:36 am
|
Buenas: Lo he probado. Funciona de maravilla. Tarda mucho en darle F11 todo el rato, pero se entiende. Lo que quería hacer era más sencillo, menos protección pero sencillo. Programa A, el original, programa B el que hace el XOR ^10. Los dos hacen XOR ^10. El tipo de varibale como ejemplo es el Byte[]. byte[] rawData = { 0xF5, 0xD2, 0xF5, 0xEA, 0x0A, 0x1A, 0x40, 0x4C, 0x43, 0x4C, 0x0A, 0x0B, 0x0B, 0x0B, 0x0A, 0x42, 0x0A, 0x42, 0x0A, 0x0A, 0xF5, 0xD1, 0x0A, 0x49}
Usamos el XOR ^10. for (int i = 0; i < rawData.Length; i++) { rawData[i] = (byte)(rawData[i] ^ 10); }
El problema que tengo ahora, es que no uso Byte[], sino string. Por eso estoy para arriba y para abajo. En vez de usar como ejemplo de arriba que puse Byte[], pongo un string en cristiano. No en códigos hexadecimales. ¿Hay alguna solución sobre lo que busco? Salu2.
|
|
|
437
|
Programación / .NET (C#, VB.NET, ASP) / Re: Cifrar variables o textos de forma sencilla.
|
en: 29 Marzo 2018, 16:10 pm
|
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. for (int i = 0; i < var1.Length; i++) { var1[i] = (byte)(var1[i] ^ 10); }
Solo tengo este string que dice: 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.
|
|
|
438
|
Seguridad Informática / Hacking / Re: Hackear una impresora
|
en: 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#: 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.
|
|
|
440
|
Programación / .NET (C#, VB.NET, ASP) / Cifrar variables o textos de forma sencilla.
|
en: 29 Marzo 2018, 08:47 am
|
Buenas gente: Hice un ejemplo con este código. 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. 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.
|
|
|
|
|
|
|