コード例 #1
0
 private unsafe void PopulateDebugMessengerCreateInfo(ref DebugUtilsMessengerCreateInfoEXT createInfo)
 {
     createInfo.SType           = StructureType.DebugUtilsMessengerCreateInfoExt;
     createInfo.MessageSeverity = DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityVerboseBitExt
                                  | DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityWarningBitExt
                                  | DebugUtilsMessageSeverityFlagsEXT.DebugUtilsMessageSeverityErrorBitExt;
     createInfo.MessageType = DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypeGeneralBitExt
                              | DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypePerformanceBitExt
                              | DebugUtilsMessageTypeFlagsEXT.DebugUtilsMessageTypeValidationBitExt;
     createInfo.PfnUserCallback = FuncPtr.Of <DebugUtilsMessengerCallbackFunctionEXT>(DebugCallback);
 }
コード例 #2
0
    void Awake()
    {
        // MessageBoxA(NULL, "hello!", "hello!", 0); を呼ぶ shellcode。元ソースは
        // https://github.com/i-saint/scribble/blob/master/shellcode.cpp

        byte[]  shellcode = new byte[] { 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x34, 0x53, 0x56, 0x57, 0xC7, 0x45, 0xD8, 0x75, 0x73, 0x65, 0x72, 0xC7, 0x45, 0xDC, 0x33, 0x32, 0x2E, 0x64, 0xC7, 0x45, 0xE0, 0x6C, 0x6C, 0x00, 0x00, 0xC7, 0x45, 0xCC, 0x4D, 0x65, 0x73, 0x73, 0xC7, 0x45, 0xD0, 0x61, 0x67, 0x65, 0x42, 0xC7, 0x45, 0xD4, 0x6F, 0x78, 0x41, 0x00, 0xC7, 0x45, 0xE4, 0x68, 0x65, 0x6C, 0x6C, 0xC7, 0x45, 0xE8, 0x6F, 0x21, 0x00, 0x00, 0x33, 0xC9, 0x64, 0x8B, 0x35, 0x30, 0x00, 0x00, 0x00, 0x8B, 0x76, 0x0C, 0x8B, 0x76, 0x1C, 0x8B, 0x46, 0x08, 0x8B, 0x7E, 0x20, 0x8B, 0x36, 0x38, 0x4F, 0x18, 0x75, 0xF3, 0x89, 0x45, 0xF8, 0x8B, 0x55, 0xF8, 0x8B, 0x42, 0x3C, 0x8B, 0x44, 0x10, 0x78, 0x83, 0x65, 0xFC, 0x00, 0x03, 0xC2, 0x8B, 0x70, 0x20, 0x8B, 0x78, 0x24, 0x8B, 0x58, 0x1C, 0x8B, 0x40, 0x14, 0x03, 0xF2, 0x03, 0xFA, 0x03, 0xDA, 0x89, 0x45, 0xF4, 0x85, 0xC0, 0x74, 0x36, 0x8B, 0x45, 0xFC, 0x8B, 0x0C, 0x86, 0x0F, 0xB7, 0x04, 0x47, 0x8B, 0x04, 0x83, 0x03, 0xC2, 0x81, 0x7C, 0x11, 0x08, 0x61, 0x72, 0x79, 0x41, 0x75, 0x05, 0x89, 0x45, 0xF0, 0xEB, 0x0D, 0x81, 0x7C, 0x11, 0x04, 0x72, 0x6F, 0x63, 0x41, 0x75, 0x03, 0x89, 0x45, 0xEC, 0xFF, 0x45, 0xFC, 0x8B, 0x45, 0xFC, 0x3B, 0x45, 0xF4, 0x72, 0xCA, 0x8D, 0x45, 0xD8, 0x50, 0xFF, 0x55, 0xF0, 0x8D, 0x4D, 0xCC, 0x51, 0x50, 0xFF, 0x55, 0xEC, 0x6A, 0x00, 0x8D, 0x4D, 0xE4, 0x51, 0x51, 0x6A, 0x00, 0xFF, 0xD0, 0x5F, 0x5E, 0x5B, 0xC9, 0xC3 };
        IntPtr  mem       = Marshal.UnsafeAddrOfPinnedArrayElement(shellcode, 0);
        FuncPtr func      = (FuncPtr)Marshal.GetDelegateForFunctionPointer(mem, typeof(FuncPtr));

        func();
    }
コード例 #3
0
 public DebugReportCallbackCreateInfoEXT
 (
     StructureType sType       = StructureType.DebugReportCallbackCreateInfoExt,
     void *pNext               = default,
     DebugReportFlagsEXT flags = default,
     FuncPtr pfnCallback       = default,
     void *pUserData           = default
 )
 {
     SType       = sType;
     PNext       = pNext;
     Flags       = flags;
     PfnCallback = pfnCallback;
     PUserData   = pUserData;
 }
コード例 #4
0
 public AllocationCallbacks
 (
     void *pUserData               = default,
     FuncPtr pfnAllocation         = default,
     FuncPtr pfnReallocation       = default,
     FuncPtr pfnFree               = default,
     FuncPtr pfnInternalAllocation = default,
     FuncPtr pfnInternalFree       = default
 )
 {
     PUserData             = pUserData;
     PfnAllocation         = pfnAllocation;
     PfnReallocation       = pfnReallocation;
     PfnFree               = pfnFree;
     PfnInternalAllocation = pfnInternalAllocation;
     PfnInternalFree       = pfnInternalFree;
 }
コード例 #5
0
 public DebugUtilsMessengerCreateInfoEXT
 (
     StructureType sType = StructureType.DebugUtilsMessengerCreateInfoExt,
     void *pNext         = default,
     uint flags          = default,
     DebugUtilsMessageSeverityFlagsEXT messageSeverity = default,
     DebugUtilsMessageTypeFlagsEXT messageType         = default,
     FuncPtr pfnUserCallback = default,
     void *pUserData         = default
 )
 {
     SType           = sType;
     PNext           = pNext;
     Flags           = flags;
     MessageSeverity = messageSeverity;
     MessageType     = messageType;
     PfnUserCallback = pfnUserCallback;
     PUserData       = pUserData;
 }
コード例 #6
0
 public Token()
 {
     funcPtr = null;
     value   = 0;
 }
コード例 #7
0
 public Token(Token_Type tp, string le, double d, FuncPtr fp)
 {
     type = tp; lexico = le; value = d; funcPtr = fp;
 }
コード例 #8
0
 public void DoOperation(Voxel node, FuncPtr func)
 {
     func(node);
 }