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.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.
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 (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 (https://msdn.microsoft.com/en-us/library/windows/desktop/aa385780(v=vs.85).aspx)
Saludos!