emu_track.c File Reference

#include <string.h>
#include "emu/emu.h"
#include "emu/emu_cpu.h"
#include "emu/emu_cpu_data.h"
#include "emu/emu_instruction.h"
#include "emu/emu_track.h"
#include "emu/emu_source.h"
#include "emu/emu_hashtable.h"
#include "emu/emu_graph.h"
#include "emu/emu_cpu_functions.h"
Include dependency graph for emu_track.c:

Functions

struct emu_track_and_sourceemu_track_and_source_new (void)
void emu_track_and_source_free (struct emu_track_and_source *et)
void debug_instruction (struct emu_instruction *i)
int32_t emu_track_instruction_check (struct emu *e, struct emu_track_and_source *et)
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 *etii)
void emu_source_and_track_instr_info_free_void (void *x)
void emu_tracking_info_diff (struct emu_tracking_info *a, struct emu_tracking_info *b, struct emu_tracking_info *result)
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_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

void debug_instruction ( struct emu_instruction i  ) 
void emu_source_and_track_instr_info_free ( struct emu_source_and_track_instr_info etii  ) 
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:

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:49:26 2011 for libemu by  doxygen 1.6.1