Pin
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Enumerations | Functions
img.cpp File Reference
#include "level_base.H"
#include "level_core.H"
#include "pin_mmap.H"
#include <stdlib.h>
#include "container.H"

Enumerations

enum  LEVEL_CORE::IMG_TYPE {
  IMG_TYPE_INVALID,
  LEVEL_CORE::IMG_TYPE_STATIC,
  LEVEL_CORE::IMG_TYPE_SHARED,
  LEVEL_CORE::IMG_TYPE_SHAREDLIB,
  LEVEL_CORE::IMG_TYPE_RELOCATABLE,
  LEVEL_CORE::IMG_TYPE_DYNAMIC_CODE,
  IMG_TYPE_LAST
}
 
enum  IMG_STATE {
  IMG_STATE_INVALID,
  IMG_STATE_LAST
}
 
enum  IMG_BUILDER {
  IMG_BUILDER_INVALID,
  IMG_BUILDER_UNKNOWN,
  IMG_BUILDER_GNU3,
  IMG_BUILDER_ELECTRON_OLD,
  IMG_BUILDER_ELECTRON,
  IMG_BUILDER_LAST = IMG_BUILDER_ELECTRON
}
 

Functions

ARRAYBASE LEVEL_CORE::ImgArrayBase ("img pool", 1024)
 
STRIPE< IMG_STRUCT_BASE > LEVEL_CORE::ImgStripeBase ("img stripe base","core",&ImgArrayBase)
 
IMG LEVEL_CORE::IMG_INVALID ()
 
INT32 LEVEL_CORE::IMG_no (IMG x)
 
IMG_BUILDER LEVEL_CORE::IMG_builder (IMG x)
 
void LEVEL_CORE::IMG_builder_set (IMG x, IMG_BUILDER t)
 
IMG_TYPE LEVEL_CORE::IMG_type (IMG x)
 
void LEVEL_CORE::IMG_type_set (IMG x, IMG_TYPE y)
 
BOOL LEVEL_CORE::IMG_valid (IMG x)
 
IMG LEVEL_CORE::IMG_next (IMG x)
 
VOID LEVEL_CORE::IMG_next_set (IMG x, IMG y)
 
IMG LEVEL_CORE::IMG_prev (IMG x)
 
VOID LEVEL_CORE::IMG_prev_set (IMG x, IMG y)
 
SEC LEVEL_CORE::IMG_first_original_sec (IMG x)
 
VOID LEVEL_CORE::IMG_first_original_sec_set (IMG x, SEC y)
 
SEC LEVEL_CORE::IMG_sec_head (IMG x)
 
VOID LEVEL_CORE::IMG_sec_head_set (IMG x, SEC y)
 
SEC LEVEL_CORE::IMG_sec_tail (IMG x)
 
VOID LEVEL_CORE::IMG_sec_tail_set (IMG x, SEC y)
 
SYM LEVEL_CORE::IMG_first_original_symtab (IMG x)
 
VOID LEVEL_CORE::IMG_first_original_symtab_set (IMG x, SYM y)
 
SYM LEVEL_CORE::IMG_regsym_head (IMG x)
 
VOID LEVEL_CORE::IMG_regsym_head_set (IMG x, SYM y)
 
SYM LEVEL_CORE::IMG_regsym_tail (IMG x)
 
VOID LEVEL_CORE::IMG_regsym_tail_set (IMG x, SYM y)
 
SYM LEVEL_CORE::IMG_first_original_dynsym (IMG x)
 
VOID LEVEL_CORE::IMG_first_original_dynsym_set (IMG x, SYM y)
 
SYM LEVEL_CORE::IMG_dynsym_head (IMG x)
 
VOID LEVEL_CORE::IMG_dynsym_head_set (IMG x, SYM y)
 
SYM LEVEL_CORE::IMG_dynsym_tail (IMG x)
 
VOID LEVEL_CORE::IMG_dynsym_tail_set (IMG x, SYM y)
 
BBL LEVEL_CORE::IMG_entry (IMG x)
 
VOID LEVEL_CORE::IMG_entry_set (IMG x, BBL y)
 
const string & LEVEL_CORE::IMG_filename_i (IMG x)
 
VOID LEVEL_CORE::IMG_filename_i_set (IMG x, const string *y)
 
const VOID * LEVEL_CORE::IMG_data_i (IMG x)
 
VOID LEVEL_CORE::IMG_data_i_set (IMG x, const VOID *y)
 
USIZE LEVEL_CORE::IMG_size_i (IMG x)
 
VOID LEVEL_CORE::IMG_size_i_set (IMG x, UINT32 y)
 
UINT32 LEVEL_CORE::IMG_numpltoffentries (IMG x)
 
VOID LEVEL_CORE::IMG_numpltoffentries_set (IMG x, UINT32 y)
 
UINT64 LEVEL_CORE::IMG_pv_delta (IMG x)
 
VOID LEVEL_CORE::IMG_pv_delta_set (IMG x, UINT64 y)
 
IADDR LEVEL_CORE::IMG_gp_i (IMG x)
 
VOID LEVEL_CORE::IMG_gp_i_set (IMG x, IADDR y)
 
IADDR LEVEL_CORE::IMG_init (IMG x)
 
VOID LEVEL_CORE::IMG_init_set (IMG x, IADDR y)
 
IADDR LEVEL_CORE::IMG_seg_text_vaddr_i (IMG x)
 
IADDR LEVEL_CORE::IMG_seg_data_vaddr_i (IMG x)
 
OADDR LEVEL_CORE::IMG_seg_text_vaddr_o (IMG x)
 
OADDR LEVEL_CORE::IMG_seg_data_vaddr_o (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_text_vsize_i (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_data_vsize_i (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_text_vsize_o (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_data_vsize_o (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_text_fsize_i (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_data_fsize_i (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_text_fsize_o (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_data_fsize_o (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_text_foffset_i (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_data_foffset_i (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_text_foffset_o (IMG x)
 
USIZE LEVEL_CORE::IMG_seg_data_foffset_o (IMG x)
 
VOID LEVEL_CORE::IMG_seg_text_vaddr_i_set (IMG x, IADDR y)
 
VOID LEVEL_CORE::IMG_seg_data_vaddr_i_set (IMG x, IADDR y)
 
VOID LEVEL_CORE::IMG_seg_text_vaddr_o_set (IMG x, OADDR y)
 
VOID LEVEL_CORE::IMG_seg_data_vaddr_o_set (IMG x, OADDR y)
 
VOID LEVEL_CORE::IMG_seg_text_vsize_i_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_data_vsize_i_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_text_vsize_o_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_data_vsize_o_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_text_fsize_i_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_data_fsize_i_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_text_fsize_o_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_data_fsize_o_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_text_foffset_i_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_data_foffset_i_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_text_foffset_o_set (IMG x, USIZE y)
 
VOID LEVEL_CORE::IMG_seg_data_foffset_o_set (IMG x, USIZE y)
 
OADDR LEVEL_CORE::IMG_gp_o (IMG x)
 
VOID LEVEL_CORE::IMG_gp_o_set (IMG x, OADDR y)
 
const VOID * LEVEL_CORE::IMG_fileheader_i (IMG x)
 
const VOID * LEVEL_CORE::IMG_progheaders_i (IMG x)
 
string LEVEL_CORE::str (IMG img)
 
ADDRINT LEVEL_CORE::IMG_load_offset (IMG x)
 
VOID LEVEL_CORE::IMG_load_offset_set (IMG x, ADDRINT y)
 
ADDRINT LEVEL_CORE::IMG_low_address (IMG x)
 
VOID LEVEL_CORE::IMG_low_address_set (IMG x, ADDRINT y)
 
ADDRINT LEVEL_CORE::IMG_high_address (IMG x)
 
VOID LEVEL_CORE::IMG_high_address_set (IMG x, ADDRINT y)
 
BOOL LEVEL_CORE::IMG_runtime (IMG x)
 
VOID LEVEL_CORE::IMG_runtime_set (IMG x, BOOL y)
 
BOOL LEVEL_CORE::IMG_text_from_image (IMG x)
 
VOID LEVEL_CORE::IMG_text_from_image_set (IMG x, BOOL y)
 
UINT32 LEVEL_CORE::IMG_unique_id (IMG x)
 
VOID LEVEL_CORE::IMG_unique_id_set (IMG x, UINT32 y)
 
IADDR LEVEL_CORE::IMG_entry_addr_i (IMG x)
 
VOID LEVEL_CORE::IMG_entry_addr_i_set (IMG x, IADDR y)
 
BOOL LEVEL_CORE::IMG_is_main_executable (IMG x)
 
VOID LEVEL_CORE::IMG_is_main_executable_set (IMG x, BOOL y)
 
VOID LEVEL_CORE::IMG_elf_object_set (IMG x, VOID *obj)
 
VOID * LEVEL_CORE::IMG_elf_object (IMG x)
 
BOOL LEVEL_CORE::IMG_found_in_memory (IMG x)
 
VOID LEVEL_CORE::IMG_found_in_memory_set (IMG x, BOOL y)
 
BOOL LEVEL_CORE::IMG_allocated (IMG x)
 
UINT32 LEVEL_CORE::IMG_num_regions (IMG x)
 
VOID LEVEL_CORE::IMG_num_regions_set (IMG x, UINT32 y)
 
IMG_REGION * LEVEL_CORE::IMG_regions (IMG x)
 
VOID LEVEL_CORE::IMG_regions_set (IMG x, IMG_REGION *y)
 
LOCALINLINE VOID LEVEL_CORE::IMG_allocated_set (IMG x, BOOL y)
 
LOCALINLINE VOID LEVEL_CORE::IMG_app_set (IMG x, APP y)
 
LOCALINLINE APP LEVEL_CORE::IMG_app (IMG x)
 
VOID LEVEL_CORE::IMG_GarbageCollect ()
 
IMG LEVEL_CORE::IMG_Alloc ()
 
SEC LEVEL_CORE::IMG_FindSecByName (IMG img, const string &name)
 
SEC LEVEL_CORE::IMG_FindSecByNameWithType (IMG img, const string &name, SEC_TYPE type)
 
SYM LEVEL_CORE::IMG_FindRegsymByOriginalIndex (IMG img, UINT32 index)
 
SYM LEVEL_CORE::IMG_FindDynsymByOriginalIndex (IMG img, UINT32 index)
 
SEC LEVEL_CORE::IMG_FindSecByOriginalIndex (IMG img, UINT32 index)
 
SEC LEVEL_CORE::IMG_FindSecByIaddrEndInclusive (IMG img, IADDR iaddr)
 
SEC LEVEL_CORE::IMG_FindSecByIaddr (IMG img, IADDR iaddr)
 
SEC LEVEL_CORE::IMG_FindSecByOaddrEndInclusive (IMG img, OADDR oaddr)
 
SEC LEVEL_CORE::IMG_FindSecByOaddr (IMG img, OADDR oaddr)
 
UINT32 LEVEL_CORE::IMG_NumSec (IMG img)
 
UINT32 LEVEL_CORE::IMG_NumRegsym (IMG img)
 
SYM LEVEL_CORE::IMG_FindRegsymByName (IMG img, const CHAR *name)
 
UINT32 LEVEL_CORE::IMG_NumDynsym (IMG img)
 
LOCALFUN int LEVEL_CORE::cmp_secs_foffset (const void *p1, const void *p2)
 
VOID LEVEL_CORE::IMG_SortSecsByVaddr (IMG img)
 
VOID LEVEL_CORE::IMG_ComputeNewSecSizeUncooked (IMG img)
 
VOID LEVEL_CORE::IMG_InitOriginalImg (IMG img, const string &filename, const void *start, USIZE size)
 
VOID LEVEL_CORE::IMG_ComputeNewSecDataUncooked (IMG img)
 
string LEVEL_CORE::IMG_StringLong (IMG img)
 
VOID LEVEL_CORE::IMG_Check (IMG img)
 
VOID LEVEL_CORE::IMG_Free (IMG img)
 
VOID LEVEL_CORE::IMG_CookExecutableSections (IMG img)
 
VOID LEVEL_CORE::IMG_Append (IMG img, APP parent)
 
VOID LEVEL_CORE::IMG_Unlink (IMG img)
 
VOID LEVEL_CORE::IMG_InsertAfter (IMG img, IMG after, APP parent)
 
VOID LEVEL_CORE::IMG_InsertBefore (IMG img, IMG before, APP parent)
 
BOOL LEVEL_CORE::IMG_IsMainImage (IMG img)
 

Detailed Description

This file contains IMG primitives