Quitar rastros

Iniciado por Meta, 3 Abril 2018, 22:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Meta

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.
CitarEquipo\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.exe

La 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.
Código (csharp) [Seleccionar]
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.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

MCKSys Argentina

Cita de: Meta en  3 Abril 2018, 22:40 PM
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?

El 1er resultado de google: http://www.robvanderwoude.com/regsearch.php

No significa que sea la única forma de hacerlo.

Cita de: Meta en  3 Abril 2018, 22:40 PM
Otra pregunta.
A parte de todo esto. ¿Hay algún sitio, sea archivo en las profundidades de Windwos que dejen rastros?

Un lugar posible: https://msdn.microsoft.com/en-us/library/windows/desktop/aa385780(v=vs.85).aspx

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."