Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/HexRaysSA/goomba
/ functions
Functions
214 in github.com/HexRaysSA/goomba
⨍
Functions
214
◇
Types & classes
40
↓ 13 callers
Method
minsn_value
-------------------------------------------------------------------------
mcode_emu.hpp:260
↓ 11 callers
Method
lookup
-------------------------------------------------------------------------
heuristics.hpp:83
↓ 9 callers
Method
dstr
-------------------------------------------------------------------------- The following functions are only place holders.
nonlin_expr.hpp:987
↓ 9 callers
Method
signed_val
-------------------------------------------------------------------------
mcode_emu.hpp:37
↓ 8 callers
Method
find
-------------------------------------------------------------------------
equiv_class.hpp:198
↓ 7 callers
Function
curtime
------------------------------------------------------------------------- In fact this function is not really needed. The user can simply turn on the
file.cpp:21
↓ 7 callers
Method
dstr
-------------------------------------------------------------------------
linear_exprs.cpp:13
↓ 7 callers
Function
make_bin
minsn_template.hpp:132
↓ 6 callers
Function
resize_mop
------------------------------------------------------------------------- resize_mop generates a minsn that resizes the source operand (truncates or e
linear_exprs.hpp:27
↓ 4 callers
Function
add_candidate
--------------------------------------------------------------------------
optimizer.cpp:143
↓ 4 callers
Method
minsn_to_expr
--------------------------------------------------------------------------
smt_convert.cpp:53
↓ 4 callers
Function
score_complexity
------------------------------------------------------------------------- estimates the "complexity" of a given instruction
heuristics.cpp:137
↓ 3 callers
Method
to_minsn
-------------------------------------------------------------------------
linear_exprs.cpp:111
↓ 2 callers
Method
dump
-------------------------------------------------------------------------- dump the elements in a set of mop_t
nonlin_expr.hpp:939
↓ 2 callers
Function
get_input_mops
heuristics.hpp:153
↓ 2 callers
Method
intval64_to_expr
-------------------------------------------------------------------------
smt_convert.hpp:84
↓ 2 callers
Function
make_un
minsn_template.hpp:125
↓ 2 callers
Function
probably_equivalent
------------------------------------------------------------------------- runs a battery of random test cases against both expressions to see if they
heuristics.cpp:103
↓ 2 callers
Function
set_cmt
--------------------------------------------------------------------------
optimizer.cpp:22
↓ 2 callers
Method
synthesize
minsn_template.hpp:100
↓ 1 callers
Function
always_on
-------------------------------------------------------------------------- returns true if the environment variables indicate the plugin should always
goomba.cpp:25
↓ 1 callers
Method
bv_resize_to_len
-------------------------------------------------------------------------
smt_convert.hpp:70
↓ 1 callers
Function
bv_sz_on_disk
-------------------------------------------------------------------------
file.cpp:115
↓ 1 callers
Function
bvset_sz_on_disk
-------------------------------------------------------------------------
file.cpp:129
↓ 1 callers
Function
check_and_substitute
--------------------------------------------------------------------------
optimizer.cpp:29
↓ 1 callers
Function
compare_mops
------------------------------------------------------------
goomba.cpp:182
↓ 1 callers
Function
compute_fingerprint_from_outputs
------------------------------------------------------------------------- output behavior is summarized as a list of uint64's, each corresponding to a
equiv_class.hpp:30
↓ 1 callers
Method
compute_fingerprint_from_serialization
-------------------------------------------------------------------------
equiv_class.hpp:111
↓ 1 callers
Function
create_minsns_file
-------------------------------------------------------------------------
file.cpp:57
↓ 1 callers
Function
create_oracle_file
-------------------------------------------------------------------------
file.cpp:147
↓ 1 callers
Function
create_var_mapping
-------------------------------------------------------------------------
equiv_class.cpp:57
↓ 1 callers
Method
dstr
-------------------------------------------------------------------------
lin_conj_exprs.hpp:27
↓ 1 callers
Method
evaluate
-------------------------------------------------------------------------
linear_exprs.cpp:71
↓ 1 callers
Function
find_and_print_overlapped_operands
-------------------------------------------------------------------------- To satisfy our curiosity: find and print overlapping operands
goomba.cpp:176
↓ 1 callers
Method
find_candidates
-------------------------------------------------------------------------
equiv_class.cpp:64
↓ 1 callers
Function
gen_rand_byte
-------------------------------------------------------------------------
heuristics.cpp:36
↓ 1 callers
Function
gen_rand_mcode_val
-------------------------------------------------------------------------
heuristics.cpp:21
↓ 1 callers
Function
gen_testcase
-------------------------------------------------------------------------
equiv_class.hpp:45
↓ 1 callers
Function
get_binop
-------------------------------------------------------------------------
msynth_parser.hpp:32
↓ 1 callers
Method
get_mop_value
heuristics.hpp:120
↓ 1 callers
Method
high
-------------------------------------------------------------------------
mcode_emu.hpp:64
↓ 1 callers
Method
init_oracle
--------------------------------------------------------------------------
goomba.cpp:64
↓ 1 callers
Function
is_linear
-------------------------------------------------------------------------
file.cpp:34
↓ 1 callers
Function
is_mba
------------------------------------------------------------------------- guesses whether or not the instruction is MBA
heuristics.cpp:52
↓ 1 callers
Method
low
-------------------------------------------------------------------------
mcode_emu.hpp:57
↓ 1 callers
Function
make_concrete_minsn
------------------------------------------------------------------------- replaces all references to abstract mop_l's with variables from new_vars
equiv_class.cpp:16
↓ 1 callers
Method
mop_to_expr
--------------------------------------------------------------------------
smt_convert.cpp:20
↓ 1 callers
Function
mops_overlap
------------------------------------------------------------ 0-no overlap, 1-op1 includes op2, -1-op2 includes op1, 2-partial overlap
goomba.cpp:211
↓ 1 callers
Method
new_minsn
-------------------------------------------------------------------------- Six overloaded functions for creating new minsn from mop or sub-minsn. Four
nonlin_expr.hpp:583
↓ 1 callers
Method
optimize_insn
--------------------------------------------------------------------------
optimizer.cpp:151
↓ 1 callers
Method
optimize_insn_recurse
--------------------------------------------------------------------------
optimizer.cpp:114
↓ 1 callers
Method
parse_next_expr
msynth_parser.cpp:15
↓ 1 callers
Method
print
--------------------------------------------------------------------------
nonlin_expr.hpp:191
↓ 1 callers
Function
rand64
-------------------------------------------------------------------------
heuristics.cpp:13
↓ 1 callers
Method
read_from_file
-------------------------------------------------------------------------
equiv_class.hpp:184
↓ 1 callers
Method
sar
-------------------------------------------------------------------------
mcode_emu.hpp:184
↓ 1 callers
Method
sdiv
-------------------------------------------------------------------------
mcode_emu.hpp:121
↓ 1 callers
Method
sext
-------------------------------------------------------------------------
mcode_emu.hpp:43
↓ 1 callers
Function
skip_proofs
-------------------------------------------------------------------------- check whether or not we should skip the proving step of optimization
optimizer.cpp:16
↓ 1 callers
Method
smod
-------------------------------------------------------------------------
mcode_emu.hpp:151
↓ 1 callers
Function
substitute
--------------------------------------------------------------------------
optimizer.hpp:19
↓ 1 callers
Method
success
nonlin_expr.hpp:284
↓ 1 callers
Method
to_mop
--------------------------------------------------------------------------
nonlin_expr.hpp:170
↓ 1 callers
Function
trunc
------------------------------------------------------------------------- truncate v to w bytes
mcode_emu.hpp:15
↓ 1 callers
Function
write_bv_to_disk
-------------------------------------------------------------------------
file.cpp:121
↓ 1 callers
Function
write_bvset_to_disk
-------------------------------------------------------------------------
file.cpp:138
↓ 1 callers
Method
zext
-------------------------------------------------------------------------
mcode_emu.hpp:50
Method
activate
--------------------------------------------------------------------------
goomba.cpp:162
Method
add_abstract_minsn
------------------------------------------------------------------------- computes the fingerprint of the abstract minsn and adds it to the index
equiv_class.hpp:129
Method
apply_assignment
------------------------------------------------------------------------- each boolean assignment is represented as a uint32, where the nth bit repres
lin_conj_exprs.hpp:67
Method
apply_rm_par
-------------------------------------------------------------------------- Apply rm_par on all sub-expressions of ins. The result is somehow like a le
nonlin_expr.hpp:683
Method
assn_to_minsn
------------------------------------------------------------------------- converts an assignment to the corresponding conjunction. e.g. 0b1101 => x0 &
lin_conj_exprs.hpp:187
Method
bool_to_bv
-------------------------------------------------------------------------
smt_convert.hpp:46
Method
build_new_varname
smt_convert.hpp:18
Method
build_normal_mba
--------------------------------------------------------------------------
nonlin_expr.hpp:855
Method
build_op_set
-------------------------------------------------------------------------- Recursively collect all variables in the sub-instructions of an operand op,
nonlin_expr.hpp:783
Method
build_product
--------------------------------------------------------------------------
nonlin_expr.hpp:805
Method
bv2mcode_val
------------------------------------------------------------------------- build a mcode_val from a byte qvector
heuristics.hpp:44
Method
bv_sext_to_len
-------------------------------------------------------------------------
smt_convert.hpp:61
Method
bv_zext_to_len
-------------------------------------------------------------------------
smt_convert.hpp:52
Method
bw_expr_tbl_t
bitwise_expr_lookup_tbl.cpp:14
Function
callback
-------------------------------------------------------------------------- This callback handles various hexrays events.
goomba.cpp:306
Method
can_eliminate_variable
------------------------------------------------------------------------- returns true if the variable can be eliminated safely i.e. all terms contain
lin_conj_exprs.hpp:263
Method
check_size_equal
-------------------------------------------------------------------------
mcode_emu.hpp:28
Method
compute_coeffs
------------------------------------------------------------------------- the i'th index in output_vals contains the output value corresponding to the
lin_conj_exprs.hpp:85
Method
compute_fingerprint
------------------------------------------------------------------------- mapping = nullptr means the instruction is abstract (all terminal mops have
equiv_class.hpp:96
Method
create_new_z3_var
--------------------------------------------------------------------------
smt_convert.cpp:13
Method
default_mops_t
minsn_template.hpp:28
Method
dstr
--------------------------------------------------------------------------
nonlin_expr.hpp:90
Method
dstr
-------------------------------------------------------------------------
simp_lin_conj_exprs.hpp:75
Method
dstr
minsn_template.hpp:50
Method
dump
-------------------------------------------------------------------------- dump a normal mba expression as terms
nonlin_expr.hpp:221
Method
eliminate_variable
------------------------------------------------------------------------- removes the variable from the expression make sure to check can_eliminate_va
lin_conj_exprs.hpp:276
Method
eliminate_variables
------------------------------------------------------------------------- eliminates all variables that are not needed in the expression
lin_conj_exprs.hpp:129
Method
eq_mba_product
-------------------------------------------------------------------------- Check whether two mba products are equivalent. It is used for getting the l
nonlin_expr.hpp:837
Method
equiv_class_finder_lazy_t
------------------------------------------------------------------------- lint -sem(equiv_class_finder_lazy_t::equiv_class_finder_lazy_t, custodial(1)
equiv_class.hpp:223
Method
equiv_class_finder_t
-------------------------------------------------------------------------
equiv_class.hpp:86
Method
eval_trace_to_bit_trace
------------------------------------------------------------------------- returns a bitfield where the i'th bit indicates whether the i'th evaluation
simp_lin_conj_exprs.hpp:41
Method
evaluate
--------------------------------------------------------------------------
nonlin_expr.hpp:995
Method
evaluate
-------------------------------------------------------------------------
lin_conj_exprs.hpp:119
next →
1–100 of 214, ranked by callers