emu_track.h File Reference

#include <stdint.h>
#include <stdbool.h>
Include dependency graph for emu_track.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  emu_tracking_info
struct  emu_source_and_track_instr_info
struct  emu_track_and_source

Functions

struct
emu_source_and_track_instr_info
emu_source_and_track_instr_info_new (struct emu_cpu *cpu, uint32_t eip_before_instruction)
void emu_source_and_track_instr_info_free (struct emu_source_and_track_instr_info *esantii)
void emu_source_and_track_instr_info_free_void (void *x)
bool emu_source_and_track_instr_info_cmp (void *a, void *b)
uint32_t emu_source_and_track_instr_info_hash (void *key)
struct emu_track_and_sourceemu_track_and_source_new (void)
void emu_track_and_source_free (struct emu_track_and_source *et)
int32_t emu_track_instruction_check (struct emu *e, struct emu_track_and_source *et)
struct emu_tracking_infoemu_tracking_info_new (void)
void emu_tracking_info_free (struct emu_tracking_info *eti)
void emu_tracking_info_clear (struct emu_tracking_info *eti)
void emu_tracking_info_diff (struct emu_tracking_info *a, struct emu_tracking_info *b, struct emu_tracking_info *result)
void emu_tracking_info_copy (struct emu_tracking_info *from, struct emu_tracking_info *to)
bool emu_tracking_info_covers (struct emu_tracking_info *a, struct emu_tracking_info *b)
void emu_tracking_info_debug_print (struct emu_tracking_info *a)

Function Documentation

bool emu_source_and_track_instr_info_cmp ( void *  a,
void *  b 
)
void emu_source_and_track_instr_info_free ( struct emu_source_and_track_instr_info esantii  ) 
void emu_source_and_track_instr_info_free_void ( void *  x  ) 

References emu_source_and_track_instr_info_free().

Referenced by emu_source_instruction_graph_create().

Here is the call graph for this function:

uint32_t emu_source_and_track_instr_info_hash ( void *  key  ) 
struct emu_source_and_track_instr_info* emu_source_and_track_instr_info_new ( struct emu_cpu cpu,
uint32_t  eip_before_instruction 
) [read]
void emu_track_and_source_free ( struct emu_track_and_source et  ) 
struct emu_track_and_source* emu_track_and_source_new ( void   )  [read]
int32_t emu_track_instruction_check ( struct emu e,
struct emu_track_and_source et 
)
void emu_tracking_info_clear ( struct emu_tracking_info eti  ) 

References esp, and emu_tracking_info::reg.

Referenced by emu_shellcode_run_and_track().

void emu_tracking_info_copy ( struct emu_tracking_info from,
struct emu_tracking_info to 
)
bool emu_tracking_info_covers ( struct emu_tracking_info a,
struct emu_tracking_info b 
)

Check if a instruction can satisfy the requirements of another instruction.

Parameters:
a 
b 
Returns:
returns true if a covers the requirements of b else false

References emu_tracking_info::eflags, esp, emu_tracking_info::fpu, and emu_tracking_info::reg.

Referenced by emu_shellcode_run_and_track().

void emu_tracking_info_debug_print ( struct emu_tracking_info a  ) 

References eflagm.

Referenced by emu_shellcode_run_and_track().

void emu_tracking_info_diff ( struct emu_tracking_info a,
struct emu_tracking_info b,
struct emu_tracking_info result 
)

Calculate the logic difference between two instruction_infos and store the result.

Parameters:
a 
b 
result 

References emu_tracking_info::eflags, emu_tracking_info::fpu, and emu_tracking_info::reg.

Referenced by emu_shellcode_run_and_track().

void emu_tracking_info_free ( struct emu_tracking_info eti  ) 
struct emu_tracking_info* emu_tracking_info_new ( void   )  [read]

References esp, and emu_tracking_info::reg.

Referenced by emu_shellcode_run_and_track().


Generated on Sun Jan 9 16:48:26 2011 for libemu by  doxygen 1.6.1