diff options
Diffstat (limited to 'externals/breakpad/src/processor/exploitability_linux.h')
| -rw-r--r-- | externals/breakpad/src/processor/exploitability_linux.h | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/externals/breakpad/src/processor/exploitability_linux.h b/externals/breakpad/src/processor/exploitability_linux.h deleted file mode 100644 index 7603e45655..0000000000 --- a/externals/breakpad/src/processor/exploitability_linux.h +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2013 Google LLC -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google LLC nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// exploitability_linux.h: Linux specific exploitability engine. -// -// Provides a guess at the exploitability of the crash for the Linux -// platform given a minidump and process_state. -// -// Author: Matthew Riley - -#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_ -#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_ - -#include "google_breakpad/common/breakpad_types.h" -#include "google_breakpad/processor/exploitability.h" - -namespace google_breakpad { - -class ExploitabilityLinux : public Exploitability { - public: - ExploitabilityLinux(Minidump* dump, - ProcessState* process_state); - - // Parameters are the minidump to analyze, the object representing process - // state, and whether to enable objdump disassembly. - // Enabling objdump will allow exploitability analysis to call out to - // objdump for diassembly. It is used to check the identity of the - // instruction that caused the program to crash. If there are any - // portability concerns, this should not be enabled. - ExploitabilityLinux(Minidump* dump, - ProcessState* process_state, - bool enable_objdump); - - virtual ExploitabilityRating CheckPlatformExploitability(); - - private: - friend class ExploitabilityLinuxTest; - - // Takes the address of the instruction pointer and returns - // whether the instruction pointer lies in a valid instruction region. - bool InstructionPointerInCode(uint64_t instruction_ptr); - - // Checks the exception that triggered the creation of the - // minidump and reports whether the exception suggests no exploitability. - bool BenignCrashTrigger(const MDRawExceptionStream* raw_exception_stream); - - // This method checks if the crash occurred during a write to read-only or - // invalid memory. It does so by checking if the instruction at the - // instruction pointer is a write instruction, and if the target of the - // instruction is at a spot in memory that prohibits writes. - bool EndedOnIllegalWrite(uint64_t instruction_ptr); - - // Checks if the stack pointer points to a memory mapping that is not - // labelled as the stack. - bool StackPointerOffStack(uint64_t stack_ptr); - - // Checks if the stack or heap are marked executable according - // to the memory mappings. - bool ExecutableStackOrHeap(); - - // Whether this exploitability engine is permitted to shell out to objdump - // to disassemble raw bytes. - bool enable_objdump_; -}; - -} // namespace google_breakpad - -#endif // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_ |
