Загрузка исполняемого файла C# из памятиC#

Место общения программистов C#
Ответить
Anonymous
 Загрузка исполняемого файла C# из памяти

Сообщение Anonymous »

У меня возникли проблемы с запуском исполняемого файла C# из памяти. Я видел ряд вопросов и статей, посвященных этой проблеме, однако мне не удалось заставить эти решения работать, и ни одно из них, похоже, не сталкивается с той же ошибкой, что и я.
Ссылка 1

Ссылка 2

Ссылка 3

Ссылка 4
Загрузчик:

Код: Выделить всё

using System;
using System.Reflection;

namespace MyApp
{
internal class Program
{
static async Task Main(string[] args)
{
String filepath = "C:\\Users\\Bob\\source\\repos\\ConsoleApp1\\bin\\Debug\\net8.0\\ConsoleApp1.exe";
FileStream fs = new FileStream(filepath, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
br.Close();

Assembly a = Assembly.Load(bin);
Console.WriteLine("A.entrypoint = {0}", a.EntryPoint); //Crashes here
//I have tried to print the entrypoint here as an example but anything you do with the assembly crashes here.
}
}
}
Загружаемое приложение представляет собой шаблон по умолчанию, который вы получаете при запуске консольного проекта C#. Если я запускаю эту программу изолированно, она работает нормально.

Код: Выделить всё

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
У меня происходит сбой:

Код: Выделить всё

Unhandled exception. System.BadImageFormatException: Bad IL format.
Поэтому я предполагаю, что где-то в процессе двоичный файл изменяется, и тот, который пытались выполнить, отличается от того, что загружается.

Подробнее здесь: https://stackoverflow.com/questions/787 ... rom-memory
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»