Загрузка...

Загрузка файла в памяти с любыми аргументами

Тема в разделе C# создана пользователем r3xq1 14 июл 2021. 597 просмотров

  1. r3xq1
    r3xq1 Автор темы 14 июл 2021 https://t.me/DarkSoft_Extra 119 27 июл 2018
    Из этой темы (Загрузка данных в память и запуск из памяти) добавим чтобы принимал любые аргументы
    Код
    namespace LoaderInMemory
    {
    using System;
    using System.IO;
    using System.Reflection;
    using System.Threading;

    public static class MemoryUtils
    {
    public static object ExecuteModule(byte[] assemblyBytes)
    {
    try
    {
    //using var ms = new MemoryStream(assemblyBytes);
    // var assembly = Assembly.Load(ms?.ToArray()); // Загрузка файла

    var assembly = Assembly.Load(assemblyBytes); // Загрузка файла
    MethodInfo method = assembly?.EntryPoint; // Переход в точку входа приложения
    if (method != null) // Проверка точки входа у приложения
    {
    object main = assembly.CreateInstance(method.Name); // Экземпляр класса Main()
    object execute = method?.Invoke(main, new object[(int)(method?.GetParameters().Length)]); // Вызов метода с передачей параметров, так же можно добавить ?? null
    return execute;
    }
    }
    catch (Exception ex) { Console.WriteLine(ex.Message); }
    return null;
    }
    }
    }
    За кол-во аргументов отвечает строчка:
    Код
    new object[(int)(method?.GetParameters().Length)]
    Ну и использовать можно так:
    Код
    namespace LoaderInMemory
    {
    using System;
    using System.IO;

    public static class Program
    {
    [STAThread] // - ОБЯЗАТЕЛЬНО!
    public static void Main()
    {
    Console.Title = "Loader In Memory"; // Заголовок консоли

    byte[] data = File.ReadAllBytes("FastFoundData.exe"); // Файл для загрузки
    MemoryUtils.ExecuteModule(data); // Можно вызвать в отдельном потоке/задаче.
    Console.Read(); // Ожидание
    }
    }
    }
     
  2. IGhanna
    IGhanna 14 июл 2021 14 8 июл 2021
    Годно, спасибо!
     
  3. EBX
    EBX 16 июл 2021 34 1 июн 2021
    а в чем смысл если это онли дотнет
     
    1. Посмотреть предыдущие комментарии (1)
    2. EBX
      @CoderVir, ого, а давайте лоадер с ShellExecuteA сделаем и назовем это фуд крипт :peka:
    3. CoderVir
      EBX, так они ещё на этом мани делают. Если хочешь, чтобы и то и то в памяти можно было запустить, то делай на плюсах LoadPE (лоад загрузчик). Там можно и натив и дотнет запускать.
    4. EBX
      @CoderVir, бленб ты мне глаза раскрыл ато я незнал
  4. CoderVir
    Ещё можно спомощью Visual Basic. Фуд дольше будет. ННам не сливаю.
     
    1. Посмотреть предыдущие комментарии (2)
    2. VohanVLY
      @CoderVir, Способ с модулем ?
    3. VohanVLY
      @CoderVir, Можно глянуть ?
Загрузка...
Top