您好我在使用反射加载装配时遇到困难。有时,当有人做一个小程序并使用程序集加载许多防病毒程序会显示错误/肯定。 例如,在此代码中:
//Load the bytes as an assembly
Assembly exeAssembly = Assembly.Load(decryptedBuffer);
//Execute the assembly
object[] parameters = new object[1];
exeAssembly.EntryPoint.Invoke(null, parameters);
所以我只尝试使用这样的反射:
typeof(Assembly).GetMethod("Load").Invoke(null,new object[] {decryptedBuffer});
但是,我不知道原因,但是这引起了我的异常,给我回复了以下错误:
typeof(Assembly).GetMethod("Load").Invoke(null,new object[] {decryptedBuffer});
Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: Proof.exe
Problem Signature 02: 1.0.0.0
Problem Signature 03: 591f941f
Problem Signature 04: mscorlib
Problem Signature 05: 4.6.1590.0
Problem Signature 06: 5787ed44
Problem Signature 07: 1037
Problem Signature 08: 60
Problem Signature 09: System.Reflection.AmbiguousMatch
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 3082
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
我的问题是,当我使用装配加载时,我如何使用反射来避免误/正面。目前我检查但是一切似乎都没用。
答案 0 :(得分:0)
我认为按照错误。
问题签名09:System.Reflection.AmbiguousMatch
所以在Assembly.Load中有多个重载。因此,当您传递object [] {decryptedBuffer}时,会混淆使用哪一个。像String重载或Byte [] Overload。
使用以下方式解决您的问题。
typeof(Assembly).GetMethod("Load", new Type[] { typeof(byte[])}).Invoke(null,new object[] {decryptedBuffer});