SYMBOL INDEX (313 symbols across 12 files) FILE: .github/workflows/rules/common/inlineTokenChildren.js class InlineTokenChildren (line 1) | class InlineTokenChildren { method constructor (line 2) | constructor(token) { method [Symbol.iterator] (line 12) | *[Symbol.iterator]() { FILE: .github/workflows/rules/common/wordPattern.js class WordPattern (line 1) | class WordPattern { method constructor (line 2) | constructor(pattern, parameters) { method test (line 12) | test(line) { class Match (line 17) | class Match { method constructor (line 18) | constructor(match) { method range (line 22) | range() { method toString (line 35) | toString() { FILE: helpers/extract_sandbox_data.py function binary_get_word_size (line 13) | def binary_get_word_size(binary: lief.MachO.Binary): function unpack (line 35) | def unpack(bytes_list): function binary_get_string_from_address (line 54) | def binary_get_string_from_address(binary: lief.MachO.Binary, vaddr: int): function untag_pointer (line 95) | def untag_pointer(tagged_pointer): function get_section_from_segment (line 117) | def get_section_from_segment(binary: lief.MachO.FatBinary, function get_xref (line 151) | def get_xref(binary: lief.MachO.Binary, vaddr: int): function get_tables_section (line 182) | def get_tables_section(binary: lief.MachO.Binary): function is_vaddr_in_section (line 217) | def is_vaddr_in_section(vaddr, section): function unpack_pointer (line 233) | def unpack_pointer(addr_size, binary, vaddr): function extract_data_tables_from_section (line 252) | def extract_data_tables_from_section(binary: lief.MachO.Binary, to_data,... function extract_string_tables (line 301) | def extract_string_tables(binary: lief.MachO.Binary): function extract_separated_profiles (line 316) | def extract_separated_profiles(binary, string_tables): function extract_sbops (line 406) | def extract_sbops(string_tables): function get_ios_major_version (line 457) | def get_ios_major_version(version: str): function findall (line 470) | def findall(searching, pattern): function check_regex (line 487) | def check_regex(data: bytes, base_index: int, ios_version: int): function unpack_for_newer_ios (line 525) | def unpack_for_newer_ios(base_index, count, data): function check_bundle (line 550) | def check_bundle(data: bytes, base_index: int, ios_version: int): function extract_bundle_profiles (line 607) | def extract_bundle_profiles(binary: lief.MachO.Binary, ios_version: int): function main (line 633) | def main(args): FILE: reverse-sandbox/filters.py function read_filters (line 3) | def read_filters(file_path): class Filters (line 15) | class Filters(object): method get_filters (line 26) | def get_filters(ios_major_version): method exists (line 42) | def exists(ios_major_version, id): method get (line 46) | def get(ios_major_version, id): FILE: reverse-sandbox/operation_node.py class TerminalNode (line 12) | class TerminalNode(): method __eq__ (line 25) | def __eq__(self, other): method __str__ (line 28) | def __str__(self): method is_allow (line 36) | def is_allow(self): method is_deny (line 39) | def is_deny(self): class NonTerminalNode (line 43) | class NonTerminalNode(): method __eq__ (line 62) | def __eq__(self, other): method simplify_list (line 65) | def simplify_list(self, arg_list): method str_debug (line 87) | def str_debug(self): method __str__ (line 155) | def __str__(self): method str_not (line 223) | def str_not(self): method values (line 291) | def values(self): method is_entitlement_start (line 296) | def is_entitlement_start(self): method is_entitlement (line 299) | def is_entitlement(self): method is_last_regular_expression (line 302) | def is_last_regular_expression(self): method convert_filter (line 305) | def convert_filter(self, convert_fn, f, regex_list, ios_major_version, method is_non_terminal_deny (line 311) | def is_non_terminal_deny(self): method is_non_terminal_allow (line 315) | def is_non_terminal_allow(self): method is_non_terminal_non_terminal (line 319) | def is_non_terminal_non_terminal(self): method is_allow_non_terminal (line 322) | def is_allow_non_terminal(self): method is_deny_non_terminal (line 326) | def is_deny_non_terminal(self): method is_deny_allow (line 330) | def is_deny_allow(self): method is_allow_deny (line 334) | def is_allow_deny(self): class OperationNode (line 339) | class OperationNode(): method __init__ (line 355) | def __init__(self, offset): method is_terminal (line 358) | def is_terminal(self): method is_non_terminal (line 361) | def is_non_terminal(self): method parse_terminal (line 364) | def parse_terminal(self, ios_major_version): method parse_non_terminal (line 372) | def parse_non_terminal(self): method parse_raw (line 380) | def parse_raw(self, ios_major_version): method convert_filter (line 387) | def convert_filter(self, convert_fn, f, regex_list, ios_major_version, method str_debug (line 393) | def str_debug(self): method __str__ (line 403) | def __str__(self): method str_not (line 411) | def str_not(self): method values (line 419) | def values(self): method __eq__ (line 425) | def __eq__(self, other): method __hash__ (line 428) | def __hash__(self): function has_been_processed (line 442) | def has_been_processed(node): function build_operation_node (line 447) | def build_operation_node(raw, offset, ios_major_version): function build_operation_nodes (line 455) | def build_operation_nodes(f, num_operation_nodes, ios_major_version): function find_operation_node_by_offset (line 481) | def find_operation_node_by_offset(operation_nodes, offset): function ong_mark_not (line 488) | def ong_mark_not(g, node, parent_node, nodes_to_process): function ong_end_path (line 498) | def ong_end_path(g, node, parent_node, nodes_to_process): function ong_add_to_path (line 503) | def ong_add_to_path(g, node, parent_node, nodes_to_process): function ong_add_to_parent_path (line 509) | def ong_add_to_parent_path(g, node, parent_node, nodes_to_process): function build_operation_node_graph (line 516) | def build_operation_node_graph(node, default_node): function print_operation_node_graph (line 609) | def print_operation_node_graph(g): function remove_edge_in_operation_node_graph (line 621) | def remove_edge_in_operation_node_graph(g, node_start, node_end): function remove_node_in_operation_node_graph (line 627) | def remove_node_in_operation_node_graph(g, node_to_remove): function _get_operation_node_graph_paths (line 642) | def _get_operation_node_graph_paths(g, node): function get_operation_node_graph_paths (line 660) | def get_operation_node_graph_paths(g, start_node): function _remove_duplicate_node_edges (line 669) | def _remove_duplicate_node_edges(g, node, start_list): function remove_duplicate_node_edges (line 682) | def remove_duplicate_node_edges(g, start_list): function clean_edges_in_operation_node_graph (line 688) | def clean_edges_in_operation_node_graph(g): function clean_nodes_in_operation_node_graph (line 762) | def clean_nodes_in_operation_node_graph(g): class ReducedVertice (line 778) | class ReducedVertice(): method __init__ (line 789) | def __init__(self, type=TYPE_SINGLE, value=None, decision=None, is_not... method set_value (line 795) | def set_value(self, value): method set_type (line 798) | def set_type(self, type): method _replace_in_list (line 801) | def _replace_in_list(self, lst, old, new): method replace_in_list (line 813) | def replace_in_list(self, old, new): method _replace_sublist_in_list (line 817) | def _replace_sublist_in_list(self, lst, old, new): method replace_sublist_in_list (line 837) | def replace_sublist_in_list(self, old, new): method set_decision (line 841) | def set_decision(self, decision): method set_type_single (line 844) | def set_type_single(self): method set_type_start (line 847) | def set_type_start(self): method set_type_require_entitlement (line 850) | def set_type_require_entitlement(self): method set_type_require_any (line 853) | def set_type_require_any(self): method set_type_require_all (line 856) | def set_type_require_all(self): method set_integrated_vertice (line 859) | def set_integrated_vertice(self, integrated_vertice): method is_type_single (line 863) | def is_type_single(self): method is_type_start (line 866) | def is_type_start(self): method is_type_require_entitlement (line 869) | def is_type_require_entitlement(self): method is_type_require_all (line 872) | def is_type_require_all(self): method is_type_require_any (line 875) | def is_type_require_any(self): method recursive_str (line 878) | def recursive_str(self, level, recursive_is_not): method recursive_str_debug (line 915) | def recursive_str_debug(self, level, recursive_is_not): method recursive_xml_str (line 948) | def recursive_xml_str(self, level, recursive_is_not): method __str__ (line 991) | def __str__(self): method str_debug (line 994) | def str_debug(self): method str_simple (line 997) | def str_simple(self): method str_print_debug (line 1011) | def str_print_debug(self): method str_print (line 1025) | def str_print(self): method str_print_not (line 1039) | def str_print_not(self): method xml_str (line 1050) | def xml_str(self): class ReducedEdge (line 1054) | class ReducedEdge(): method __init__ (line 1058) | def __init__(self, start=None, end=None): method str_debug (line 1062) | def str_debug(self): method str_simple (line 1065) | def str_simple(self): method __str__ (line 1070) | def __str__(self): class ReducedGraph (line 1074) | class ReducedGraph(): method __init__ (line 1080) | def __init__(self): method add_vertice (line 1086) | def add_vertice(self, v): method add_edge (line 1089) | def add_edge(self, e): method add_edge_by_vertices (line 1092) | def add_edge_by_vertices(self, v_start, v_end): method set_final_vertices (line 1096) | def set_final_vertices(self): method contains_vertice (line 1107) | def contains_vertice(self, v): method contains_edge (line 1110) | def contains_edge(self, e): method contains_edge_by_vertices (line 1113) | def contains_edge_by_vertices(self, v_start, v_end): method get_vertice_by_value (line 1119) | def get_vertice_by_value(self, value): method get_edge_by_vertices (line 1125) | def get_edge_by_vertices(self, v_start, v_end): method remove_vertice (line 1131) | def remove_vertice(self, v): method remove_vertice_update_decision (line 1139) | def remove_vertice_update_decision(self, v): method remove_edge (line 1150) | def remove_edge(self, e): method remove_edge_by_vertices (line 1154) | def remove_edge_by_vertices(self, v_start, v_end): method replace_vertice_in_edge_start (line 1159) | def replace_vertice_in_edge_start(self, old, new): method replace_vertice_in_edge_end (line 1171) | def replace_vertice_in_edge_end(self, old, new): method replace_vertice_in_single_vertices (line 1183) | def replace_vertice_in_single_vertices(self, old, new): method replace_vertice_list (line 1189) | def replace_vertice_list(self, old, new): method get_next_vertices (line 1202) | def get_next_vertices(self, v): method get_prev_vertices (line 1209) | def get_prev_vertices(self, v): method get_start_vertices (line 1216) | def get_start_vertices(self): method get_end_vertices (line 1223) | def get_end_vertices(self): method reduce_next_vertices (line 1230) | def reduce_next_vertices(self, v): method reduce_prev_vertices (line 1253) | def reduce_prev_vertices(self, v): method reduce_vertice_single_prev (line 1270) | def reduce_vertice_single_prev(self, v): method reduce_vertice_single_next (line 1305) | def reduce_vertice_single_next(self, v): method reduce_graph (line 1338) | def reduce_graph(self): method reduce_graph_with_metanodes (line 1378) | def reduce_graph_with_metanodes(self): method str_simple_with_metanodes (line 1425) | def str_simple_with_metanodes(self): method str_simple (line 1433) | def str_simple(self): method __str__ (line 1445) | def __str__(self): method remove_builtin_filters (line 1458) | def remove_builtin_filters(self): method reduce_integrated_vertices (line 1464) | def reduce_integrated_vertices(self, integrated_vertices): method aggregate_require_entitlement (line 1491) | def aggregate_require_entitlement(self, v): method aggregate_require_entitlement_nodes (line 1531) | def aggregate_require_entitlement_nodes(self): method cleanup_filters (line 1540) | def cleanup_filters(self): method remove_builtin_filters_with_metanodes (line 1544) | def remove_builtin_filters_with_metanodes(self): method replace_require_entitlement_with_metanodes (line 1558) | def replace_require_entitlement_with_metanodes(self, v): method aggregate_require_entitlement_with_metanodes (line 1569) | def aggregate_require_entitlement_with_metanodes(self): method cleanup_filters_with_metanodes (line 1575) | def cleanup_filters_with_metanodes(self): method print_vertices_with_operation (line 1579) | def print_vertices_with_operation(self, operation, out_f): method print_vertices_with_operation_metanodes (line 1599) | def print_vertices_with_operation_metanodes(self, operation, default_i... method dump_xml (line 1655) | def dump_xml(self, operation, out_f): function reduce_operation_node_graph (line 1674) | def reduce_operation_node_graph(g): function main (line 1718) | def main(): FILE: reverse-sandbox/regex_parser_v1.py function parse_character (line 7) | def parse_character(node_type, node_arg, node_transition, node_idx): function parse_end (line 17) | def parse_end(node_type, node_arg, node_transition, node_idx): function parse_jump_forward (line 24) | def parse_jump_forward(node_type, node_arg, node_transition, node_idx): function parse_jump_backward (line 32) | def parse_jump_backward(node_type, node_arg, node_transition, node_idx): function parse_beginning_of_line (line 40) | def parse_beginning_of_line(node_type, node_arg, node_transition, node_i... function parse_end_of_line (line 47) | def parse_end_of_line(node_type, node_arg, node_transition, node_idx): function parse_dot (line 54) | def parse_dot(node_type, node_arg, node_transition, node_idx): function parse_character_class (line 61) | def parse_character_class(node_type, node_arg, node_transition, node_idx): function parse_character_neg_class (line 68) | def parse_character_neg_class(node_type, node_arg, node_transition, node... function parse_parantheses_open (line 75) | def parse_parantheses_open(node_type, node_arg, node_transition, node_idx): function parse_parantheses_close (line 86) | def parse_parantheses_close(node_type, node_arg, node_transition, node_i... function node_parse (line 112) | def node_parse(re, i, regex_list, node_idx): function class_parse (line 130) | def class_parse(re, i, classes, class_idx): class RegexParser (line 160) | class RegexParser(object): method parse (line 163) | def parse(re, i, regex_list): FILE: reverse-sandbox/regex_parser_v2.py function parse_character (line 7) | def parse_character(node_type, node_arg, node_transition, node_idx): function parse_end (line 17) | def parse_end(node_type, node_arg, node_transition, node_idx): function parse_jump_forward (line 24) | def parse_jump_forward(node_type, node_arg, node_transition, node_idx): function parse_jump_backward (line 32) | def parse_jump_backward(node_type, node_arg, node_transition, node_idx): function parse_beginning_of_line (line 40) | def parse_beginning_of_line(node_type, node_arg, node_transition, node_i... function parse_end_of_line (line 47) | def parse_end_of_line(node_type, node_arg, node_transition, node_idx): function parse_dot (line 54) | def parse_dot(node_type, node_arg, node_transition, node_idx): function parse_character_class (line 61) | def parse_character_class(node_type, node_arg, node_transition, node_idx): function parse_character_neg_class (line 68) | def parse_character_neg_class(node_type, node_arg, node_transition, node... function parse_parantheses_open (line 75) | def parse_parantheses_open(node_type, node_arg, node_transition, node_idx): function parse_parantheses_close (line 86) | def parse_parantheses_close(node_type, node_arg, node_transition, node_i... function node_parse (line 113) | def node_parse(re, i, regex_list, node_idx): function classes_parse (line 135) | def classes_parse(re, i, cclass_count): class RegexParser (line 175) | class RegexParser(object): method parse (line 178) | def parse(re, i, regex_list): FILE: reverse-sandbox/regex_parser_v3.py function parse_character (line 7) | def parse_character(re, i, regex_list): function parse_beginning_of_line (line 19) | def parse_beginning_of_line(i, regex_list): function parse_end_of_line (line 27) | def parse_end_of_line(i, regex_list): function parse_any_character (line 35) | def parse_any_character(i, regex_list): function parse_jump_forward (line 43) | def parse_jump_forward(re, i, regex_list): function parse_jump_backward (line 53) | def parse_jump_backward(re, i, regex_list): function parse_character_class (line 65) | def parse_character_class(re, i, regex_list): function parse_end (line 107) | def parse_end(re, i, regex_list): function parse (line 116) | def parse(re, i, regex_list): class RegexParser (line 145) | class RegexParser(object): method parse (line 148) | def parse(re, i, regex_list): FILE: reverse-sandbox/reverse_sandbox.py function extract_string_from_offset (line 29) | def extract_string_from_offset(f, offset, ios_version): function create_operation_nodes (line 40) | def create_operation_nodes(infile, regex_list, num_operation_nodes, function process_profile (line 61) | def process_profile(infile, outfname, sb_ops, ops_to_reverse, op_table, ... function get_ios_major_version (line 122) | def get_ios_major_version(release): function is_ios_more_than_10_release (line 128) | def is_ios_more_than_10_release(release): function display_sandbox_profiles (line 138) | def display_sandbox_profiles(f, re_table_offset, num_sb_ops, ios_version): function get_global_vars (line 199) | def get_global_vars(f, vars_offset, num_vars, base_offset): function get_base_addr (line 217) | def get_base_addr(f, ios_version): function main (line 248) | def main(): FILE: reverse-sandbox/reverse_string.py class ReverseStringState (line 11) | class ReverseStringState: method __init__ (line 36) | def __init__(self, binary_string): method update_state_unknown (line 50) | def update_state_unknown(self): method update_state_token_byte_read (line 54) | def update_state_token_byte_read(self): method update_state_concat_byte_read (line 58) | def update_state_concat_byte_read(self): method update_state_concat_save_byte_read (line 62) | def update_state_concat_save_byte_read(self): method update_state_end_byte_read (line 66) | def update_state_end_byte_read(self): method update_state_split_byte_read (line 70) | def update_state_split_byte_read(self): method update_state_range_byte_read (line 74) | def update_state_range_byte_read(self): method update_state_token_read (line 78) | def update_state_token_read(self): method update_state_reset_string (line 82) | def update_state_reset_string(self): method update_state_constant_read (line 86) | def update_state_constant_read(self): method update_state_single_byte_read (line 90) | def update_state_single_byte_read(self): method update_state_plus_read (line 94) | def update_state_plus_read(self): method update_state (line 98) | def update_state(self, b): method get_next_byte (line 126) | def get_next_byte(self): method get_length_minus_1 (line 134) | def get_length_minus_1(self): method read_token (line 146) | def read_token(self, substr_len): method update_base (line 152) | def update_base(self): method update_base_stack (line 157) | def update_base_stack(self): method end_current_token (line 161) | def end_current_token(self): method get_last_byte (line 166) | def get_last_byte(self): method get_substring (line 169) | def get_substring(self, substr_len): method end_with_subtokens (line 175) | def end_with_subtokens(self, subtokens): method is_end (line 181) | def is_end(self): method reset_base (line 186) | def reset_base(self): method reset_base_full (line 190) | def reset_base_full(self): class SandboxString (line 195) | class SandboxString: method parse_byte_string (line 199) | def parse_byte_string(self, s, global_vars): method __init__ (line 343) | def __init__(self): function main (line 347) | def main(): FILE: reverse-sandbox/sandbox_filter.py function get_filter_arg_string_by_offset (line 21) | def get_filter_arg_string_by_offset(f, offset): function get_filter_arg_string_by_offset_with_type (line 53) | def get_filter_arg_string_by_offset_with_type(f, offset): function get_filter_arg_string_by_offset_no_skip (line 105) | def get_filter_arg_string_by_offset_no_skip(f, offset): function get_filter_arg_network_address (line 115) | def get_filter_arg_network_address(f, offset): function get_filter_arg_integer (line 186) | def get_filter_arg_integer(f, arg): function get_filter_arg_octal_integer (line 191) | def get_filter_arg_octal_integer(f, arg): function get_filter_arg_boolean (line 196) | def get_filter_arg_boolean(f, arg): function get_filter_arg_regex_by_id (line 205) | def get_filter_arg_regex_by_id(f, regex_id): function get_filter_arg_ctl (line 217) | def get_filter_arg_ctl(f, arg): function get_filter_arg_vnode_type (line 224) | def get_filter_arg_vnode_type(f, arg): function get_filter_arg_owner (line 242) | def get_filter_arg_owner(f, arg): function get_filter_arg_socket_domain (line 257) | def get_filter_arg_socket_domain(f, arg): function get_filter_arg_socket_type (line 306) | def get_filter_arg_socket_type(f, arg): function get_none (line 321) | def get_none(f, arg): function get_filter_arg_privilege_id (line 326) | def get_filter_arg_privilege_id(f, arg): function get_filter_arg_process_attribute (line 356) | def get_filter_arg_process_attribute(f, arg): function get_filter_arg_csr (line 370) | def get_filter_arg_csr(f, arg): function get_filter_arg_host_port (line 388) | def get_filter_arg_host_port(f, arg): function convert_filter_callback (line 434) | def convert_filter_callback(f, ios_major_version_arg, keep_builtin_filte... FILE: reverse-sandbox/sandbox_regex.py class Node (line 14) | class Node(): method __init__ (line 33) | def __init__(self, name=None, type=None, value=''): method set_name (line 39) | def set_name(self, name): method set_type_jump_forward (line 42) | def set_type_jump_forward(self): method set_type_jump_backward (line 45) | def set_type_jump_backward(self): method set_type_character (line 48) | def set_type_character(self): method set_type_end (line 51) | def set_type_end(self): method is_type_end (line 54) | def is_type_end(self): method is_type_jump (line 57) | def is_type_jump(self): method is_type_jump_backward (line 60) | def is_type_jump_backward(self): method is_type_jump_forward (line 63) | def is_type_jump_forward(self): method is_type_character (line 66) | def is_type_character(self): method set_value (line 69) | def set_value(self, value): method set_flag_white (line 72) | def set_flag_white(self): method set_flag_grey (line 75) | def set_flag_grey(self): method set_flag_black (line 78) | def set_flag_black(self): method __str__ (line 81) | def __str__(self): class Graph (line 92) | class Graph(): method __init__ (line 108) | def __init__(self): method add_node (line 111) | def add_node(self, node, next_list=None): method has_node (line 114) | def has_node(self, node): method update_node (line 117) | def update_node(self, node, next_list): method add_new_next_to_node (line 120) | def add_new_next_to_node(self, node, next): method __str__ (line 123) | def __str__(self): method get_node_for_idx (line 157) | def get_node_for_idx(self, idx): method get_re_index_for_pos (line 162) | def get_re_index_for_pos(self, regex_list, pos): method get_next_idx_for_regex_item (line 171) | def get_next_idx_for_regex_item(self, regex_list, regex_item): method fill_from_regex_list (line 176) | def fill_from_regex_list(self, regex_list): method get_character_nodes (line 229) | def get_character_nodes(self, node): method find_node_type_jump (line 238) | def find_node_type_jump(self, current_node, node, backup_dict): method reduce (line 250) | def reduce(self): method get_edges (line 263) | def get_edges(self, node): method convert_to_canonical (line 273) | def convert_to_canonical(self): method need_use_plus (line 292) | def need_use_plus(self, initial_string, string_to_add): method unify_two_strings (line 307) | def unify_two_strings(self, s1, s2): method unify_strings (line 347) | def unify_strings(self, string_list): method remove_state (line 359) | def remove_state(self, state_to_remove): method simplify (line 413) | def simplify(self): method combine_start_end_nodes (line 419) | def combine_start_end_nodes(self): function create_regex_list (line 449) | def create_regex_list(re): function parse_regex (line 477) | def parse_regex(re): function main (line 500) | def main():