Загрузка...

SelfDeleteEx - Само удаление вашего зверька

Тема в разделе C# создана пользователем r3xq1 18 апр 2021. 296 просмотров

  1. r3xq1
    r3xq1 Автор темы 18 апр 2021 https://t.me/DarkSoft_Extra 119 27 июл 2018
    Создаём класс GlobalPaths.cs - В котором раним пути (можно и без него, просто так удобно)
    Код
    namespace SelfDeleteEx
    {
    using System;
    using System.IO;
    using System.Reflection;

    public static class GlobalPaths
    {
    public static string CurrDir => Environment.CurrentDirectory;
    public static string AssemblyPath => Assembly.GetExecutingAssembly().Location;
    public static string StartupPath => Path.GetDirectoryName(AssemblyPath);
    public static string GetFileName => Path.GetFileName(AppDomain.CurrentDomain.FriendlyName);
    public static string AppData => Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
    public static string SelfHelper => Path.Combine(AppData, "Self.bat");
    }
    }
    В классе SelfEx.cs - Наши функции по само удалению
    Код
    namespace SelfDeleteEx
    {
    using System;
    using System.Diagnostics;
    using System.IO;

    // Разработал: r3xq1

    public static class SelfEx
    {
    public static void CmdInit(string args, string commands)
    {
    try
    {
    var info = new ProcessStartInfo
    {
    FileName = commands,
    Arguments = args,
    WindowStyle = ProcessWindowStyle.Hidden,
    CreateNoWindow = true
    };
    using var process = new Process { StartInfo = info };
    process?.Start();
    process.Refresh();
    }
    catch { }
    }

    public static void BatInit(string pathFile, string localpath)
    {
    if (!string.IsNullOrWhiteSpace(pathFile) && pathFile.EndsWith(".bat", StringComparison.InvariantCultureIgnoreCase))
    {
    try
    {
    using var sw = new StreamWriter(pathFile, false);
    // sw.WriteLine($"@echo off\r\nchcp 1251 >NUL\r\ncls\r\n:loop\r\ndel \"{localpath}\"if Exist \"{localpath}\" GOTO loop del %0");
    sw.WriteLine("chcp 1251 >NUL");
    sw.WriteLine("cls");
    sw.WriteLine(":loop");
    sw.WriteLine($"del \"{localpath}\"");
    sw.WriteLine($"if Exist \"{localpath}\" GOTO loop");
    sw.WriteLine("del %0");
    sw.Flush();
    }
    catch { }
    try
    {
    var info = new ProcessStartInfo { FileName = pathFile, WindowStyle = ProcessWindowStyle.Hidden, CreateNoWindow = true };
    using var process = new Process { StartInfo = info }; process?.Start(); process.Refresh();
    }
    catch { }
    }
    CmdInit($"/C choice /C Y /N /D Y /T 0 &Del {GlobalPaths.AssemblyPath}", "cmd.exe");
    }
    }
    }
    Вызов:
    Код
    namespace SelfDeleteEx
    {
    using System;

    internal static class Program
    {
    [STAThread]
    public static void Main()
    {
    Console.Title = "SelfDeleteEx by r3xq1";
    Console.WriteLine("Нажмите любую кнопку для закрытия и само удаление программы");
    Console.ReadLine();
    SelfEx.CmdInit($"/C choice /C Y /N /D Y /T 0 &Del {GlobalPaths.AssemblyPath}", "cmd.exe");
    SelfEx.BatInit(GlobalPaths.SelfHelper, GlobalPaths.AssemblyPath);
    }
    }
    }
    Первый метод удаляет файл через командную строку по определённому времени ( 0 - это мгновенное )

    Код
    SelfEx.CmdInit($"/C choice /C Y /N /D Y /T 0 &Del {GlobalPaths.AssemblyPath}", "cmd.exe");
    Второй метод удаляет файл через батник, .bat файл спрятан в %AppData% от лишних глаз.

    Код
    SelfEx.BatInit(SelfHelper, AssemblyPath);
     
  2. SoketTCP
    SoketTCP 13 апр 2022 Заблокирован(а) 5 16 мар 2022
    бля, мне этот код не нравиться, можно проще без батников ебучих, просто запустив cmdшку под шарпом
     
    1. unnamed001
      SoketTCP, можно вызывать функции с винапи, а не срать говном
    2. SoketTCP
      unnamed001, так вызов winapi в бан отлетит на рантайме.
Загрузка...
Top