我在这方面度过了最艰难的时期。我已经用谷歌搜索了几个小时,并且在这里遇到了许多不同的问题,但我就是无法理解。
static void Main(string[] args)
{
AppDomainSetup domainSetup = new AppDomainSetup { PrivateBinPath = typeof(Program).Assembly.Location };
AppDomain domain = AppDomain.CreateDomain("TempDomain", null, domainSetup);
InstanceProxy proxy = domain.CreateInstanceFromAndUnwrap(typeof(Program).Assembly.Location, typeof(InstanceProxy).ToString()) as InstanceProxy;
if (proxy != null)
{
proxy.LoadAssembly(Properties.Resources.mfX3DAu);
}
AppDomain.Unload(domain);
Console.Read();
}
public class InstanceProxy : MarshalByRefObject
{
public void LoadAssembly(byte[] buffer)
{
Assembly asm = Assembly.Load(buffer);
asm.EntryPoint.Invoke(null, null);
}
}
资源“mfX3DAu”是一个使用 Confuser 混淆的 .Net 程序集。
它加载得很好,它在新的 AppDomain 中,但是每次我尝试调用它时,我都会得到
发生“System.ExecutionEngineException”类型的未处理异常
我之前与之交谈过的人说他们可以使用这个特定的程序集,所以它一定是可能的。