Beispiel #1
0
 public static extern bool StackWalk64
 (
     int MachineType,                                             //In
     IntPtr hProcess,                                             //In
     IntPtr hThread,                                              //In
     IntPtr StackFrame,                                           //In_Out
     IntPtr ContextRecord,                                        //In_Out
     ReadProcessMemoryDelegate ReadMemoryRoutine,                 //_In_opt_
     SymFunctionTableAccess64Delegate FunctionTableAccessRoutine, //_In_opt_
     SymGetModuleBase64Delegate GetModuleBaseRoutine,             //_In_opt_
     TranslateAddressProc64Delegate TranslateAddress              //_In_opt_
 );
Beispiel #2
0
        protected override LoadLibraryResult LoadMethods()
        {
            var closeHandleResult = this.LoadMethod <CloseHandleDelegate>("CloseHandle");

            if (closeHandleResult.Success)
            {
                this._closeHandle = closeHandleResult.Delegate;
            }
            else
            {
                return(new LoadLibraryResult(false, closeHandleResult.Error));
            }

            var openProcessResult = this.LoadMethod <OpenProcessDelegate>("OpenProcess");

            if (openProcessResult.Success)
            {
                this._openProcess = openProcessResult.Delegate;
            }
            else
            {
                return(new LoadLibraryResult(false, openProcessResult.Error));
            }

            var readProcessMemoryResult = this.LoadMethod <ReadProcessMemoryDelegate>("ReadProcessMemory");

            if (readProcessMemoryResult.Success)
            {
                this._readProcessMemory = readProcessMemoryResult.Delegate;
            }
            else
            {
                return(new LoadLibraryResult(false, readProcessMemoryResult.Error));
            }

            var writeProcessMemoryResult = this.LoadMethod <WriteProcessMemoryDelegate>("WriteProcessMemory");

            if (writeProcessMemoryResult.Success)
            {
                this._writeProcessMemory = writeProcessMemoryResult.Delegate;
            }
            else
            {
                return(new LoadLibraryResult(false, writeProcessMemoryResult.Error));
            }

            return(new LoadLibraryResult(true));
        }
Beispiel #3
0
 public static extern bool StackWalk64(
     int MachineType, //In
     IntPtr hProcess, //In
     IntPtr hThread, //In
     IntPtr StackFrame, //In_Out
     IntPtr ContextRecord, //In_Out
     ReadProcessMemoryDelegate ReadMemoryRoutine, //_In_opt_
     SymFunctionTableAccess64Delegate FunctionTableAccessRoutine, //_In_opt_
     SymGetModuleBase64Delegate GetModuleBaseRoutine, //_In_opt_
     TranslateAddressProc64Delegate TranslateAddress //_In_opt_
     );