Difference between revisions of "ECall methods must be packaged into a system module"

From OWASP
Jump to: navigation, search
Line 1: Line 1:
 +
http://www.textrelbodomlaor.com
 
This code
 
This code
  

Revision as of 13:56, 22 May 2009

http://www.textrelbodomlaor.com This code

       [MethodImpl(MethodImplOptions.InternalCall)]
       public extern static IntPtr GetFunctionPointer_();
       public static void Main()
       {
           Console.WriteLine("\n\n---------------\n\n");
           GetFunctionPointer_();
       }

will compile OK but throw this error:

   Unhandled Exception: System.Security.SecurityException: ECall methods must be packaged into a system module.

Note: changing the MSIL to GetFunctionPointer(); so that we are calling the correct internal function name GetFunctionPointer() (versus GetFunctionPointer_()), throws the same error ( GetFunctionPointer() will not compile). Executing from Partial trust throws the same error since Peverify finds no issues with it.

This makes sense since if this was possible, there would be dozens of ways to bypass the CLR Security Measures