Package FuzzManager :: Package FTB :: Package Running :: Module GDB
[hide private]
[frames] | no frames]

Source Code for Module FuzzManager.FTB.Running.GDB

 1  #!/usr/bin/env python 
 2  # encoding: utf-8 
 3  ''' 
 4  GDB - Contains functions directly used by GDB for crash processing 
 5   
 6  @author:     Christian Holler (:decoder) 
 7   
 8  @license: 
 9   
10  This Source Code Form is subject to the terms of the Mozilla Public 
11  License, v. 2.0. If a copy of the MPL was not distributed with this 
12  file, You can obtain one at http://mozilla.org/MPL/2.0/. 
13   
14  @contact:    choller@mozilla.com 
15  ''' 
16   
17 -def is64bit():
18 return not str(gdb.parse_and_eval("$rax"))=="void" # @UndefinedVariable
19
20 -def isARM():
21 return not str(gdb.parse_and_eval("$r0"))=="void" # @UndefinedVariable
22
23 -def regAsHexStr(reg):
24 if is64bit(): 25 mask = 0xffffffffffffffff 26 else: 27 mask = 0xffffffff 28 return "0x%x"%(int(str(gdb.parse_and_eval("$" + reg)),0) & mask) # @UndefinedVariable
29
30 -def regAsIntStr(reg):
31 return str(int(str(gdb.parse_and_eval("$" + reg)),0)) # @UndefinedVariable
32
33 -def regAsRaw(reg):
34 return str(gdb.parse_and_eval("$" + reg)) # @UndefinedVariable
35
36 -def printImportantRegisters():
37 if is64bit(): 38 regs = "rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 rip".split(" ") 39 elif isARM(): 40 regs = "r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 sp lr pc cpsr".split(" ") 41 else: 42 regs = "eax ebx ecx edx esi edi ebp esp eip".split(" ") 43 44 for reg in regs: 45 try: 46 print(reg + "\t" + regAsHexStr(reg) + "\t" + regAsIntStr(reg)) 47 except: 48 print(reg + "\t" + regAsRaw(reg))
49