Pin
Classes | Typedefs | Enumerations | Functions | Variables
LEVEL_CORE Namespace Reference

Classes

class  REGISTER_SET
 

Typedefs

typedef class REGISTER_SET< REG_FirstInRegset, REG_LastInRegsetREGSET
 

Enumerations

enum  IMG_TYPE {
  IMG_TYPE_INVALID,
  IMG_TYPE_STATIC,
  IMG_TYPE_SHARED,
  IMG_TYPE_SHAREDLIB,
  IMG_TYPE_RELOCATABLE,
  IMG_TYPE_DYNAMIC_CODE,
  IMG_TYPE_API_CREATED,
  IMG_TYPE_LAST
}
 
enum  IMG_PROPERTY {
  IMG_PROPERTY_INVALID,
  IMG_PROPERTY_SHSTK_ENABLED,
  IMG_PROPERTY_IBT_ENABLED,
  IMG_PROPERTY_LAST
}
 
enum  MEMORY_TYPE {
  MEMORY_TYPE_READ,
  MEMORY_TYPE_WRITE,
  MEMORY_TYPE_READ2
}
 
enum  SYSCALL_STANDARD {
  SYSCALL_STANDARD_INVALID,
  SYSCALL_STANDARD_IA32_LINUX,
  SYSCALL_STANDARD_IA32_LINUX_SYSENTER,
  SYSCALL_STANDARD_IA32E_LINUX,
  SYSCALL_STANDARD_IA32_MAC,
  SYSCALL_STANDARD_IA32E_MAC,
  SYSCALL_STANDARD_IA32_WINDOWS_FAST,
  SYSCALL_STANDARD_IA32E_WINDOWS_FAST,
  SYSCALL_STANDARD_IA32_WINDOWS_ALT,
  SYSCALL_STANDARD_WOW64,
  SYSCALL_STANDARD_WINDOWS_INT
}
 
enum  SEC_TYPE {
  SEC_TYPE_INVALID,
  SEC_TYPE_UNUSED,
  SEC_TYPE_REGREL,
  SEC_TYPE_DYNREL,
  SEC_TYPE_EXEC,
  SEC_TYPE_DATA,
  SEC_TYPE_DYNAMIC,
  SEC_TYPE_OPD,
  SEC_TYPE_GOT,
  SEC_TYPE_STACK,
  SEC_TYPE_PLTOFF,
  SEC_TYPE_HASH,
  SEC_TYPE_LSDA,
  SEC_TYPE_UNWIND,
  SEC_TYPE_UNWINDINFO,
  SEC_TYPE_REGSYM,
  SEC_TYPE_DYNSYM,
  SEC_TYPE_DEBUG,
  SEC_TYPE_BSS,
  SEC_TYPE_SYMSTR,
  SEC_TYPE_DYNSTR,
  SEC_TYPE_SECSTR,
  SEC_TYPE_COMMENT,
  SEC_TYPE_LOOS,
  SEC_TYPE_USER,
  SEC_TYPE_PROC,
  SEC_TYPE_LAST
}
 

Functions

VOID BBL_MoveAllAttributes (BBL fromBbl, BBL toBbl)
 
UINT32 BBL_NumIns (BBL bbl)
 
LOCALVAR KNOB_COMMENT KnobCheckFamily ("supported:check", "Self-checking done inside Pin")
 
LOCALVAR KNOB< UINT32 > KnobMaxIns (KNOB_MODE_WRITEONCE, "supported:debug", "max_ins", "16384", "Maximum number of INS allowed")
 
LOCALVAR KNOB< UINT32 > KnobMaxRtn (KNOB_MODE_WRITEONCE, "supported:debug", "max_rtn", "16384", "Maximum number of RTN allowed")
 
LOCALVAR KNOB< UINT32 > KnobMaxSym (KNOB_MODE_WRITEONCE, "supported:debug", "max_sym", "16384", "Maximum number of SYM allowed")
 
LOCALVAR KNOB< UINT32 > KnobMaxSec (KNOB_MODE_WRITEONCE, "supported:debug", "max_sec", "16384", "Maximum number of SEC allowed")
 
LOCALVAR KNOB< BOOL > KnobRecycle (KNOB_MODE_WRITEONCE, "supported:debug", "recycle", "1", "Reuse freed stripe elements")
 
LOCALVAR KNOB< BOOL > KnobRecycleRtn (KNOB_MODE_WRITEONCE, "supported:debug", "recycle_rtn", "1", "Reuse freed rtn")
 
BOOL INS_HasRealRep (INS ins)
 
BOOL INS_IsStandardMemop (INS ins)
 
BOOL INS_IsCacheLineFlush (INS ins)
 
INT32 INS_Category (const INS ins)
 
INT32 INS_Extension (const INS ins)
 
UINT32 INS_EffectiveAddressWidth (INS ins)
 
USIZE INS_MemoryOperandSize (INS ins, UINT32 memoryOp)
 
USIZE INS_MemoryWriteSize (INS ins)
 
USIZE INS_MemoryReadSize (INS ins)
 
PREDICATE INS_GetPredicate (INS ins)
 
BOOL INS_IsMemoryRead (INS ins)
 
BOOL INS_IsMemoryWrite (INS ins)
 
BOOL INS_HasMemoryRead2 (INS ins)
 
BOOL INS_HasFallThrough (INS ins)
 
BOOL INS_IsSysenter (INS ins)
 
BOOL INS_IsXbegin (INS ins)
 
BOOL INS_IsXend (INS ins)
 
BOOL INS_IsLea (INS ins)
 
BOOL INS_IsNop (INS ins)
 
std::string OPCODE_StringShort (UINT32 opcode)
 
std::string INS_Mnemonic (INS ins)
 
BOOL INS_IsBranch (INS ins)
 
BOOL INS_IsDirectBranch (INS ins)
 
BOOL INS_IsDirectCall (INS ins)
 
PIN_DEPRECATED_API BOOL INS_IsDirectBranchOrCall (INS ins)
 
BOOL INS_IsDirectControlFlow (INS ins)
 
BOOL INS_IsHalt (INS ins)
 
PIN_DEPRECATED_API BOOL INS_IsBranchOrCall (INS ins)
 
BOOL INS_Stutters (INS ins)
 
BOOL INS_IsPcMaterialization (INS ins)
 
BOOL INS_IsCall (INS ins)
 
BOOL INS_IsControlFlow (INS ins)
 
BOOL INS_IsFarCall (INS ins)
 
BOOL INS_IsFarJump (INS ins)
 
BOOL INS_IsDirectFarJump (INS ins)
 
BOOL INS_IsValidForIpointAfter (INS ins)
 
BOOL INS_IsValidForIpointTakenBranch (INS ins)
 
BOOL INS_IsVgather (INS ins)
 
BOOL INS_IsVscatter (INS ins)
 
BOOL INS_HasMemoryVector (INS ins)
 
VOID INS_GetFarPointer (INS ins, UINT16 &segment_selector, UINT32 &displacement)
 
BOOL INS_IsProcedureCall (INS ins)
 
BOOL INS_IsInterrupt (INS ins)
 
BOOL INS_IsRet (INS ins)
 
BOOL INS_IsSysret (INS ins)
 
BOOL INS_IsFarRet (INS ins)
 
BOOL INS_IsPrefetch (INS ins)
 
BOOL INS_IsSub (const INS ins)
 
BOOL INS_IsMov (const INS ins)
 
BOOL INS_IsMovFullRegRegSame (const INS ins)
 
BOOL INS_IsAtomicUpdate (const INS ins)
 
BOOL INS_IsRDTSC (const INS ins)
 
BOOL INS_IsMaskMov (const INS ins)
 
REG INS_RepCountRegister (INS ins)
 
PIN_DEPRECATED_API BOOL INS_IsIndirectBranchOrCall (INS ins)
 
BOOL INS_IsIndirectControlFlow (INS ins)
 
REG INS_SegmentRegPrefix (INS ins)
 
BOOL INS_HasExplicitMemoryReference (INS ins)
 
VOID PIN_SetSyntaxIntel ()
 
VOID PIN_SetSyntaxATT ()
 
VOID PIN_SetSyntaxXED ()
 
REG INS_RegR (INS x, UINT32 k)
 
REG INS_RegW (INS x, UINT32 k)
 
OPCODE INS_Opcode (INS ins)
 
std::string CATEGORY_StringShort (UINT32 num)
 
std::string EXTENSION_StringShort (UINT32 num)
 
BOOL INS_SegPrefixIsMemoryRead (INS ins)
 
BOOL INS_SegPrefixIsMemoryWrite (INS ins)
 
BOOL INS_AddressSizePrefix (INS ins)
 
BOOL INS_BranchNotTakenPrefix (INS ins)
 
BOOL INS_BranchTakenPrefix (INS ins)
 
BOOL INS_LockPrefix (INS ins)
 
BOOL INS_OperandSizePrefix (INS ins)
 
BOOL INS_RepPrefix (INS ins)
 
BOOL INS_RepnePrefix (INS ins)
 
BOOL INS_SegmentPrefix (INS ins)
 
BOOL INS_IsXchg (INS ins)
 
BOOL INS_IsStringop (INS ins)
 
BOOL INS_IsIRet (INS ins)
 
UINT32 INS_MaxNumRRegs (INS x)
 
UINT32 INS_MaxNumWRegs (INS x)
 
BOOL INS_RegRContain (const INS ins, const REG reg)
 
BOOL INS_RegWContain (const INS ins, const REG reg)
 
BOOL INS_FullRegRContain (const INS ins, const REG reg)
 
BOOL INS_FullRegWContain (const INS ins, const REG reg)
 
BOOL INS_IsStackRead (const INS ins)
 
BOOL INS_IsStackWrite (const INS ins)
 
BOOL INS_IsIpRelRead (const INS ins)
 
BOOL INS_IsIpRelWrite (const INS ins)
 
BOOL INS_IsPredicated (INS ins)
 
BOOL INS_IsOriginal (INS ins)
 
std::string INS_Disassemble (INS ins)
 
ADDRDELTA INS_MemoryDisplacement (INS ins)
 
REG INS_MemoryBaseReg (INS ins)
 
REG INS_MemoryIndexReg (INS ins)
 
UINT32 INS_MemoryScale (INS ins)
 
BOOL INS_hasKnownMemorySize (INS ins)
 
BOOL INS_ChangeReg (const INS ins, const REG old_reg, const REG new_reg, const BOOL as_read)
 
xed_decoded_inst_t * INS_XedDec (INS ins)
 
REG INS_XedExactMapToPinReg (xed_reg_enum_t xed_reg)
 
PIN_DEPRECATED_API REG INS_XedExactMapToPinReg (unsigned int r)
 
xed_reg_enum_t INS_XedExactMapFromPinReg (REG pin_reg)
 
UINT32 INS_OperandCount (INS ins)
 
UINT32 INS_OperandNameId (INS ins, UINT32 n)
 
BOOL INS_OperandIsMemory (INS ins, UINT32 n)
 
REG INS_OperandMemoryBaseReg (INS ins, UINT32 n)
 
REG INS_OperandMemoryIndexReg (INS ins, UINT32 n)
 
REG INS_OperandMemorySegmentReg (INS ins, UINT32 n)
 
UINT32 INS_OperandMemoryScale (INS ins, UINT32 n)
 
ADDRDELTA INS_OperandMemoryDisplacement (INS ins, UINT32 n)
 
BOOL INS_OperandIsFixedMemop (INS ins, UINT32 n)
 
VOID GetNumberAndSizeOfMemAccesses (INS ins, int *numAccesses, int *accessSize, int *indexSize)
 
UINT32 INS_MemoryOperandCount (INS ins)
 
BOOL INS_OperandIsAddressGenerator (INS ins, UINT32 n)
 
BOOL INS_OperandIsBranchDisplacement (INS ins, UINT32 n)
 
BOOL INS_MemoryOperandIsRead (INS ins, UINT32 memopIdx)
 
BOOL INS_MemoryOperandIsWritten (INS ins, UINT32 memopIdx)
 
UINT32 INS_MemoryOperandIndexToOperandIndex (INS ins, UINT32 memopIdx)
 
BOOL INS_OperandIsReg (INS ins, UINT32 n)
 
BOOL INS_OperandIsSegmentReg (INS ins, UINT32 n)
 
REG INS_OperandReg (INS ins, UINT32 n)
 
BOOL INS_OperandIsImmediate (INS ins, UINT32 n)
 
UINT64 INS_OperandImmediate (INS ins, UINT32 n)
 
BOOL INS_OperandIsImplicit (INS ins, UINT32 n)
 
BOOL INS_RegIsImplicit (INS ins, REG reg)
 
UINT32 INS_OperandWidth (INS ins, UINT32 n)
 
BOOL INS_OperandRead (INS ins, UINT32 n)
 
BOOL INS_OperandWritten (INS ins, UINT32 n)
 
BOOL INS_OperandReadOnly (INS ins, UINT32 n)
 
BOOL INS_OperandWrittenOnly (INS ins, UINT32 n)
 
BOOL INS_OperandReadAndWritten (INS ins, UINT32 n)
 
BOOL REGSET_Contains (const REGSET &regset, REG reg)
 
VOID REGSET_Insert (REGSET &regset, REG reg)
 
VOID REGSET_Remove (REGSET &regset, REG reg)
 
VOID REGSET_Clear (REGSET &regset)
 
VOID REGSET_AddAll (REGSET &regset)
 
REG REGSET_PopNext (REGSET &regset)
 
UINT32 REGSET_PopCount (const REGSET &regset)
 
BOOL REGSET_PopCountIsZero (const REGSET &regset)
 
std::string REGSET_StringShort (const REGSET &regset)
 
BOOL INS_IsSyscall (INS ins)
 
SYSCALL_STANDARD INS_SyscallStd (INS ins)
 

Variables

GLOBALCONST REG REG_FirstInRegset = REG_RBASE
 
GLOBALCONST REG REG_LastInRegset = REG(REG_LAST-1)
 

Detailed Description

This file contains APP primitives

This file contains BBL primitives

Calling standard information

control flow graph related stuff

This file contains CHUNK primitives

Manage comments that are attached to data structures for debugging

This file contains EDG primitives

This module contains all the EXT extension/attribute management fuctions.

This file contains IMG primitives

This file contains INS primitives

Physical register

Register value representation

x

This file contains REL primitives

This file contains RTN primitives

This file contains the action to modify SCT's

This file contains SEC and Mapping primitives

Manage stripes

This file contains SYM primitives

This file contains SEC and Mapping primitives

This file contains eflags-related stuff

this file contains functions visible in level_core it uses primitives from level_core_with_ia32_ins but does not leak out any IA32 stuff!

ELF specific stuff related to INS

This file contains the basic INS_Init* functions used thruout Pin to generate INSs, and the functions that use them. The basic INS_Init* functions are LOCALFUNS, so they do not expose the XED types thruout Pin. The GLOBALFUNs wrap them.

Contains the management of ins reuse - i.e. the reuse of already created inss when a new ins is generated. This functionality is used in the base INS_Init* functions in ins_initis_api_xed_ia32.cpp.

Intel(R) X86 Encoder Decoder low-level support routines.

This supports the other core_ia32 files and is the lowest level interface to Intel(R) XED encoding/decoding.

ia32 specific stuff related to OPERAND

Register value representation ia-32 specific

Syscall information for Unix/x86 systems