#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"
| void debug_instruction | ( | struct emu_instruction * | i | ) |
References emu_instruction::cond_pos, emu_instruction::cpu, emu_cpu_instruction::disp, emu_cpu_instruction::ea, ebp, eflagm, emu_tracking_info::eflags, emu_cpu_instruction_info::format, emu_instruction::has_cond_pos, II_MOD_REG_RM, II_MOD_YYY_RM, ii_onebyte, ii_twobyte, II_XX_REG1_REG2, II_XX_YYY_REG, emu_cpu_instruction_info::imm_data, emu_instruction::init, emu_instruction::is_fpu, emu_cpu_instruction::mod, emu_cpu_instruction::modrm, emu_cpu_instruction_info::modrm_byte, emu_cpu_instruction_info::name, emu_instruction::need, emu_instruction::norm_pos, emu_cpu_instruction::opc, emu_cpu_instruction::opc_2nd, emu_tracking_info::reg, emu_cpu_instruction::reg, emu_cpu_instruction::reg1, emu_cpu_instruction::reg2, regm, emu_cpu_instruction::rm, scalem, emu_cpu_instruction::sib, emu_instruction::source, and emu_instruction::track.
Referenced by emu_cpu_step().
| void emu_source_and_track_instr_info_free | ( | struct emu_source_and_track_instr_info * | etii | ) |
References emu_source_and_track_instr_info::instrstring.
Referenced by emu_source_and_track_instr_info_free_void().
| 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().

| struct emu_source_and_track_instr_info* emu_source_and_track_instr_info_new | ( | struct emu_cpu * | cpu, | |
| uint32_t | eip_before_instruction | |||
| ) | [read] |
References emu_instruction::cond_pos, emu_source_and_track_instr_info::cond_pos, CPU_DEBUG_FLAG_ISSET, emu_tracking_info::eflags, emu_source_and_track_instr_info::eip, emu_tracking_info::fpu, emu_instruction::has_cond_pos, emu_source_and_track_instr_info::has_cond_pos, emu_instruction::init, emu_source_and_track_instr_info::init, emu_cpu::instr, emu_cpu::instr_string, emu_source_and_track_instr_info::instrstring, instruction_size, instruction_string, emu_instruction::is_fpu, emu_instruction::need, emu_source_and_track_instr_info::need, emu_instruction::norm_pos, emu_source_and_track_instr_info::norm_pos, emu_tracking_info::reg, emu_instruction::source, emu_source_and_track_instr_info::source, emu_instruction::track, and emu_source_and_track_instr_info::track.
Referenced by emu_source_instruction_graph_create().
| void emu_track_and_source_free | ( | struct emu_track_and_source * | et | ) |
References emu_graph_free(), emu_hashtable_free(), emu_track_and_source::run_instr_graph, emu_track_and_source::run_instr_table, emu_track_and_source::static_instr_graph, and emu_track_and_source::static_instr_table.
Referenced by emu_shellcode_test().

| struct emu_track_and_source* emu_track_and_source_new | ( | void | ) | [read] |
References esp, emu_tracking_info::reg, and emu_track_and_source::track.
Referenced by emu_shellcode_test().
| int32_t emu_track_instruction_check | ( | struct emu * | e, | |
| struct emu_track_and_source * | et | |||
| ) |
References emu_tracking_info::eflags, emu_cpu_get(), esp, emu_tracking_info::fpu, emu_instruction::init, emu_cpu::instr, emu_instruction::is_fpu, emu_instruction::need, emu_tracking_info::reg, emu_track_and_source::track, and emu_instruction::track.
Referenced by emu_shellcode_run_and_track().

| 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.
| a | ||
| b |
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.
| 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 | ) |
Referenced by emu_shellcode_run_and_track().
| struct emu_tracking_info* emu_tracking_info_new | ( | void | ) | [read] |
References esp, and emu_tracking_info::reg.
Referenced by emu_shellcode_run_and_track().
1.6.1