angr 9.2.101__py3-none-win_amd64.whl → 9.2.103__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of angr might be problematic. Click here for more details.
- angr/__init__.py +1 -1
- angr/analyses/analysis.py +7 -6
- angr/analyses/calling_convention.py +33 -35
- angr/analyses/cdg.py +2 -4
- angr/analyses/cfg/cfb.py +4 -3
- angr/analyses/cfg/cfg_base.py +14 -14
- angr/analyses/cfg/cfg_emulated.py +3 -4
- angr/analyses/cfg/cfg_fast.py +46 -46
- angr/analyses/cfg/cfg_fast_soot.py +1 -2
- angr/analyses/cfg/cfg_job_base.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +14 -13
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +5 -5
- angr/analyses/cfg_slice_to_sink/cfg_slice_to_sink.py +3 -3
- angr/analyses/complete_calling_conventions.py +13 -12
- angr/analyses/data_dep/data_dependency_analysis.py +24 -24
- angr/analyses/data_dep/dep_nodes.py +3 -3
- angr/analyses/ddg.py +1 -2
- angr/analyses/decompiler/ail_simplifier.py +35 -34
- angr/analyses/decompiler/block_io_finder.py +20 -20
- angr/analyses/decompiler/block_similarity.py +4 -6
- angr/analyses/decompiler/block_simplifier.py +17 -16
- angr/analyses/decompiler/callsite_maker.py +25 -10
- angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py +1 -3
- angr/analyses/decompiler/ccall_rewriters/rewriter_base.py +2 -4
- angr/analyses/decompiler/clinic.py +250 -45
- angr/analyses/decompiler/condition_processor.py +15 -8
- angr/analyses/decompiler/decompilation_cache.py +7 -7
- angr/analyses/decompiler/decompilation_options.py +4 -4
- angr/analyses/decompiler/decompiler.py +19 -15
- angr/analyses/decompiler/expression_counters.py +10 -9
- angr/analyses/decompiler/goto_manager.py +2 -4
- angr/analyses/decompiler/graph_region.py +9 -9
- angr/analyses/decompiler/jump_target_collector.py +1 -2
- angr/analyses/decompiler/optimization_passes/__init__.py +4 -3
- angr/analyses/decompiler/optimization_passes/code_motion.py +5 -6
- angr/analyses/decompiler/optimization_passes/const_derefs.py +4 -4
- angr/analyses/decompiler/optimization_passes/deadblock_remover.py +73 -0
- angr/analyses/decompiler/optimization_passes/engine_base.py +25 -3
- angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +6 -5
- angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +2 -2
- angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +3 -0
- angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +2 -2
- angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +17 -17
- angr/analyses/decompiler/optimization_passes/optimization_pass.py +12 -13
- angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +25 -21
- angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +3 -3
- angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +1 -2
- angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +7 -7
- angr/analyses/decompiler/optimization_passes/spilled_register_finder.py +18 -0
- angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py +2 -3
- angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py +1 -2
- angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py +2 -2
- angr/analyses/decompiler/peephole_optimizations/__init__.py +4 -3
- angr/analyses/decompiler/peephole_optimizations/base.py +13 -15
- angr/analyses/decompiler/peephole_optimizations/bswap.py +1 -3
- angr/analyses/decompiler/peephole_optimizations/cmpord_rewriter.py +72 -0
- angr/analyses/decompiler/peephole_optimizations/const_mull_a_shift.py +1 -2
- angr/analyses/decompiler/peephole_optimizations/eager_eval.py +1 -1
- angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py +5 -10
- angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py +3 -4
- angr/analyses/decompiler/peephole_optimizations/inlined_wstrcpy.py +7 -10
- angr/analyses/decompiler/peephole_optimizations/rewrite_bit_extractions.py +2 -3
- angr/analyses/decompiler/peephole_optimizations/sar_to_signed_div.py +1 -2
- angr/analyses/decompiler/peephole_optimizations/tidy_stack_addr.py +4 -4
- angr/analyses/decompiler/redundant_label_remover.py +4 -5
- angr/analyses/decompiler/region_identifier.py +4 -5
- angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +1 -2
- angr/analyses/decompiler/region_simplifiers/expr_folding.py +19 -20
- angr/analyses/decompiler/region_simplifiers/goto.py +2 -3
- angr/analyses/decompiler/region_simplifiers/loop.py +1 -2
- angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -2
- angr/analyses/decompiler/region_simplifiers/region_simplifier.py +1 -3
- angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +19 -19
- angr/analyses/decompiler/return_maker.py +1 -2
- angr/analyses/decompiler/structured_codegen/base.py +5 -6
- angr/analyses/decompiler/structured_codegen/c.py +39 -38
- angr/analyses/decompiler/structuring/__init__.py +1 -1
- angr/analyses/decompiler/structuring/dream.py +17 -16
- angr/analyses/decompiler/structuring/phoenix.py +45 -46
- angr/analyses/decompiler/structuring/recursive_structurer.py +4 -4
- angr/analyses/decompiler/structuring/structurer_base.py +16 -15
- angr/analyses/decompiler/structuring/structurer_nodes.py +10 -9
- angr/analyses/decompiler/utils.py +17 -16
- angr/analyses/disassembly.py +7 -6
- angr/analyses/flirt.py +9 -9
- angr/analyses/forward_analysis/forward_analysis.py +15 -14
- angr/analyses/forward_analysis/visitors/function_graph.py +1 -2
- angr/analyses/forward_analysis/visitors/graph.py +16 -15
- angr/analyses/propagator/engine_ail.py +30 -26
- angr/analyses/propagator/outdated_definition_walker.py +8 -7
- angr/analyses/propagator/propagator.py +11 -13
- angr/analyses/proximity_graph.py +21 -21
- angr/analyses/reaching_definitions/__init__.py +3 -3
- angr/analyses/reaching_definitions/call_trace.py +3 -6
- angr/analyses/reaching_definitions/dep_graph.py +41 -48
- angr/analyses/reaching_definitions/engine_ail.py +11 -5
- angr/analyses/reaching_definitions/engine_vex.py +9 -8
- angr/analyses/reaching_definitions/function_handler.py +51 -34
- angr/analyses/reaching_definitions/heap_allocator.py +3 -4
- angr/analyses/reaching_definitions/rd_initializer.py +8 -8
- angr/analyses/reaching_definitions/rd_state.py +57 -58
- angr/analyses/reaching_definitions/reaching_definitions.py +18 -17
- angr/analyses/reaching_definitions/subject.py +2 -3
- angr/analyses/stack_pointer_tracker.py +15 -6
- angr/analyses/typehoon/dfa.py +4 -4
- angr/analyses/typehoon/simple_solver.py +48 -52
- angr/analyses/typehoon/translator.py +3 -6
- angr/analyses/typehoon/typeconsts.py +13 -14
- angr/analyses/typehoon/typehoon.py +9 -9
- angr/analyses/typehoon/typevars.py +18 -17
- angr/analyses/variable_recovery/engine_ail.py +5 -5
- angr/analyses/variable_recovery/engine_base.py +25 -21
- angr/analyses/variable_recovery/irsb_scanner.py +8 -9
- angr/analyses/variable_recovery/variable_recovery.py +1 -2
- angr/analyses/variable_recovery/variable_recovery_base.py +14 -13
- angr/analyses/variable_recovery/variable_recovery_fast.py +8 -8
- angr/analyses/veritesting.py +1 -2
- angr/analyses/vfg.py +57 -56
- angr/analyses/xrefs.py +1 -2
- angr/angrdb/db.py +7 -7
- angr/angrdb/serializers/kb.py +16 -13
- angr/angrdb/serializers/loader.py +1 -2
- angr/angrdb/serializers/structured_code.py +2 -2
- angr/annocfg.py +1 -2
- angr/block.py +16 -6
- angr/calling_conventions.py +27 -27
- angr/code_location.py +8 -8
- angr/codenode.py +1 -2
- angr/concretization_strategies/max.py +1 -3
- angr/distributed/server.py +1 -3
- angr/distributed/worker.py +1 -2
- angr/engines/engine.py +2 -3
- angr/engines/light/engine.py +4 -4
- angr/engines/pcode/behavior.py +20 -2
- angr/engines/pcode/emulate.py +1 -1
- angr/engines/pcode/engine.py +7 -7
- angr/engines/pcode/lifter.py +78 -77
- angr/engines/vex/claripy/ccall.py +1 -2
- angr/engines/vex/claripy/datalayer.py +1 -2
- angr/engines/vex/light/light.py +1 -2
- angr/exploration_techniques/tracer.py +4 -4
- angr/factory.py +12 -15
- angr/flirt/__init__.py +8 -8
- angr/flirt/build_sig.py +2 -3
- angr/keyed_region.py +2 -2
- angr/knowledge_base/knowledge_base.py +3 -3
- angr/knowledge_plugins/callsite_prototypes.py +4 -6
- angr/knowledge_plugins/cfg/cfg_manager.py +19 -6
- angr/knowledge_plugins/cfg/cfg_model.py +26 -27
- angr/knowledge_plugins/cfg/cfg_node.py +2 -2
- angr/knowledge_plugins/cfg/indirect_jump.py +6 -8
- angr/knowledge_plugins/cfg/memory_data.py +8 -9
- angr/knowledge_plugins/custom_strings.py +1 -3
- angr/knowledge_plugins/debug_variables.py +2 -2
- angr/knowledge_plugins/functions/function.py +21 -22
- angr/knowledge_plugins/functions/function_manager.py +5 -5
- angr/knowledge_plugins/indirect_jumps.py +1 -3
- angr/knowledge_plugins/key_definitions/atoms.py +7 -7
- angr/knowledge_plugins/key_definitions/definition.py +14 -14
- angr/knowledge_plugins/key_definitions/environment.py +5 -7
- angr/knowledge_plugins/key_definitions/heap_address.py +1 -3
- angr/knowledge_plugins/key_definitions/key_definition_manager.py +3 -2
- angr/knowledge_plugins/key_definitions/live_definitions.py +60 -59
- angr/knowledge_plugins/key_definitions/liveness.py +16 -16
- angr/knowledge_plugins/key_definitions/rd_model.py +15 -15
- angr/knowledge_plugins/key_definitions/uses.py +11 -11
- angr/knowledge_plugins/patches.py +4 -8
- angr/knowledge_plugins/propagations/prop_value.py +10 -9
- angr/knowledge_plugins/propagations/propagation_manager.py +3 -5
- angr/knowledge_plugins/propagations/propagation_model.py +9 -9
- angr/knowledge_plugins/propagations/states.py +52 -22
- angr/knowledge_plugins/structured_code/manager.py +2 -2
- angr/knowledge_plugins/sync/sync_controller.py +3 -3
- angr/knowledge_plugins/variables/variable_access.py +4 -4
- angr/knowledge_plugins/variables/variable_manager.py +56 -39
- angr/knowledge_plugins/xrefs/xref.py +9 -11
- angr/knowledge_plugins/xrefs/xref_manager.py +3 -4
- angr/lib/angr_native.dll +0 -0
- angr/misc/ansi.py +1 -2
- angr/misc/autoimport.py +3 -3
- angr/misc/plugins.py +9 -9
- angr/procedures/definitions/__init__.py +16 -16
- angr/procedures/definitions/linux_kernel.py +1 -1
- angr/procedures/definitions/parse_win32json.py +1 -1
- angr/procedures/java_jni/__init__.py +1 -1
- angr/procedures/java_jni/array_operations.py +1 -2
- angr/procedures/java_jni/method_calls.py +1 -2
- angr/procedures/posix/inet_ntoa.py +1 -2
- angr/procedures/stubs/format_parser.py +3 -3
- angr/project.py +13 -11
- angr/sim_manager.py +12 -12
- angr/sim_procedure.py +7 -3
- angr/sim_state.py +2 -2
- angr/sim_type.py +60 -45
- angr/sim_variable.py +5 -5
- angr/simos/simos.py +1 -2
- angr/simos/userland.py +1 -2
- angr/state_plugins/callstack.py +3 -2
- angr/state_plugins/history.py +1 -2
- angr/state_plugins/solver.py +34 -34
- angr/storage/memory_mixins/__init__.py +4 -3
- angr/storage/memory_mixins/actions_mixin.py +1 -3
- angr/storage/memory_mixins/address_concretization_mixin.py +1 -3
- angr/storage/memory_mixins/convenient_mappings_mixin.py +3 -4
- angr/storage/memory_mixins/default_filler_mixin.py +1 -1
- angr/storage/memory_mixins/label_merger_mixin.py +2 -2
- angr/storage/memory_mixins/multi_value_merger_mixin.py +4 -3
- angr/storage/memory_mixins/paged_memory/page_backer_mixins.py +9 -8
- angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +12 -11
- angr/storage/memory_mixins/paged_memory/pages/cooperation.py +8 -8
- angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py +2 -3
- angr/storage/memory_mixins/paged_memory/pages/list_page.py +10 -11
- angr/storage/memory_mixins/paged_memory/pages/multi_values.py +11 -10
- angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +18 -17
- angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +12 -11
- angr/storage/memory_mixins/regioned_memory/abstract_address_descriptor.py +3 -3
- angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +3 -2
- angr/storage/memory_mixins/regioned_memory/region_data.py +1 -2
- angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +2 -2
- angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +3 -3
- angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +18 -21
- angr/storage/memory_mixins/size_resolution_mixin.py +1 -2
- angr/storage/memory_mixins/symbolic_merger_mixin.py +3 -2
- angr/storage/memory_mixins/top_merger_mixin.py +3 -2
- angr/storage/memory_object.py +2 -4
- angr/utils/algo.py +3 -2
- angr/utils/dynamic_dictlist.py +5 -5
- angr/utils/formatting.py +4 -4
- angr/utils/funcid.py +1 -2
- angr/utils/graph.py +5 -6
- angr/utils/library.py +5 -5
- angr/utils/mp.py +5 -4
- angr/utils/segment_list.py +3 -4
- angr/utils/typing.py +3 -2
- {angr-9.2.101.dist-info → angr-9.2.103.dist-info}/METADATA +9 -11
- {angr-9.2.101.dist-info → angr-9.2.103.dist-info}/RECORD +240 -237
- {angr-9.2.101.dist-info → angr-9.2.103.dist-info}/LICENSE +0 -0
- {angr-9.2.101.dist-info → angr-9.2.103.dist-info}/WHEEL +0 -0
- {angr-9.2.101.dist-info → angr-9.2.103.dist-info}/entry_points.txt +0 -0
- {angr-9.2.101.dist-info → angr-9.2.103.dist-info}/top_level.txt +0 -0
angr/utils/graph.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from typing import Tuple, Optional, Dict, List, Set
|
|
2
1
|
from collections import defaultdict
|
|
3
2
|
import logging
|
|
4
3
|
|
|
@@ -26,7 +25,7 @@ def shallow_reverse(g) -> networkx.DiGraph:
|
|
|
26
25
|
return new_g
|
|
27
26
|
|
|
28
27
|
|
|
29
|
-
def inverted_idoms(graph: networkx.DiGraph) ->
|
|
28
|
+
def inverted_idoms(graph: networkx.DiGraph) -> tuple[networkx.DiGraph, dict | None]:
|
|
30
29
|
"""
|
|
31
30
|
Invert the given graph and generate the immediate dominator tree on the inverted graph. This is useful for
|
|
32
31
|
computing post-dominators.
|
|
@@ -54,7 +53,7 @@ def inverted_idoms(graph: networkx.DiGraph) -> Tuple[networkx.DiGraph, Optional[
|
|
|
54
53
|
|
|
55
54
|
|
|
56
55
|
def to_acyclic_graph(
|
|
57
|
-
graph: networkx.DiGraph, ordered_nodes:
|
|
56
|
+
graph: networkx.DiGraph, ordered_nodes: list | None = None, loop_heads: list | None = None
|
|
58
57
|
) -> networkx.DiGraph:
|
|
59
58
|
"""
|
|
60
59
|
Convert a given DiGraph into an acyclic graph.
|
|
@@ -654,8 +653,8 @@ class GraphUtils:
|
|
|
654
653
|
|
|
655
654
|
@staticmethod
|
|
656
655
|
def quasi_topological_sort_nodes(
|
|
657
|
-
graph: networkx.DiGraph, nodes:
|
|
658
|
-
) ->
|
|
656
|
+
graph: networkx.DiGraph, nodes: list | None = None, loop_heads: list | None = None
|
|
657
|
+
) -> list:
|
|
659
658
|
"""
|
|
660
659
|
Sort a given set of nodes from a graph based on the following rules:
|
|
661
660
|
|
|
@@ -754,7 +753,7 @@ class GraphUtils:
|
|
|
754
753
|
|
|
755
754
|
@staticmethod
|
|
756
755
|
def _append_scc(
|
|
757
|
-
graph: networkx.DiGraph, ordered_nodes:
|
|
756
|
+
graph: networkx.DiGraph, ordered_nodes: list, scc: set, loop_head_candidates: list | None = None
|
|
758
757
|
) -> None:
|
|
759
758
|
"""
|
|
760
759
|
Append all nodes from a strongly connected component to a list of ordered nodes and ensure the topological
|
angr/utils/library.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
2
2
|
|
|
3
3
|
from ..sim_type import (
|
|
4
4
|
parse_file,
|
|
@@ -72,7 +72,7 @@ def register_kernel_types():
|
|
|
72
72
|
)
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
def convert_cproto_to_py(c_decl) ->
|
|
75
|
+
def convert_cproto_to_py(c_decl) -> tuple[str, "SimTypeFunction", str]:
|
|
76
76
|
"""
|
|
77
77
|
Convert a C-style function declaration string to its corresponding SimTypes-based Python representation.
|
|
78
78
|
|
|
@@ -110,7 +110,7 @@ def convert_cproto_to_py(c_decl) -> Tuple[str, "SimTypeFunction", str]:
|
|
|
110
110
|
|
|
111
111
|
def convert_cppproto_to_py(
|
|
112
112
|
cpp_decl: str, with_param_names: bool = False
|
|
113
|
-
) ->
|
|
113
|
+
) -> tuple[str | None, SimTypeCppFunction | None, str | None]:
|
|
114
114
|
"""
|
|
115
115
|
Pre-process a C++-style function declaration string to its corresponding SimTypes-based Python representation.
|
|
116
116
|
|
|
@@ -145,7 +145,7 @@ def convert_cppproto_to_py(
|
|
|
145
145
|
|
|
146
146
|
|
|
147
147
|
def parsedcprotos2py(
|
|
148
|
-
parsed_cprotos:
|
|
148
|
+
parsed_cprotos: list[tuple[str, "SimTypeFunction", str]], fd_spots=frozenset(), remove_sys_prefix=False
|
|
149
149
|
) -> str:
|
|
150
150
|
"""
|
|
151
151
|
Parse a list of C function declarations and output to Python code that can be embedded into
|
|
@@ -176,7 +176,7 @@ def parsedcprotos2py(
|
|
|
176
176
|
return s
|
|
177
177
|
|
|
178
178
|
|
|
179
|
-
def cprotos2py(cprotos:
|
|
179
|
+
def cprotos2py(cprotos: list[str], fd_spots=frozenset(), remove_sys_prefix=False) -> str:
|
|
180
180
|
"""
|
|
181
181
|
Parse a list of C function declarations and output to Python code that can be embedded into
|
|
182
182
|
angr.procedures.definitions.
|
angr/utils/mp.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
from typing import NamedTuple, Optional,
|
|
1
|
+
from typing import NamedTuple, Optional, Any
|
|
2
|
+
from collections.abc import Callable
|
|
2
3
|
import multiprocessing
|
|
3
4
|
import platform
|
|
4
5
|
|
|
@@ -9,8 +10,8 @@ class Closure(NamedTuple):
|
|
|
9
10
|
"""
|
|
10
11
|
|
|
11
12
|
f: Callable[..., None]
|
|
12
|
-
args:
|
|
13
|
-
kwargs:
|
|
13
|
+
args: list[Any]
|
|
14
|
+
kwargs: dict[str, Any]
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
class Initializer:
|
|
@@ -32,7 +33,7 @@ class Initializer:
|
|
|
32
33
|
def __init__(self, *, _manual: bool = True):
|
|
33
34
|
if _manual:
|
|
34
35
|
raise RuntimeError("This is a singleton; call .get() instead")
|
|
35
|
-
self.initializers:
|
|
36
|
+
self.initializers: list[Closure] = []
|
|
36
37
|
|
|
37
38
|
def register(self, f: Callable[..., None], *args: Any, **kwargs: Any) -> None:
|
|
38
39
|
"""
|
angr/utils/segment_list.py
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# pylint:disable=no-else-break
|
|
2
2
|
import logging
|
|
3
|
-
from typing import Optional, Tuple, List
|
|
4
3
|
|
|
5
4
|
from angr.errors import AngrCFGError
|
|
6
5
|
|
|
@@ -60,7 +59,7 @@ class SegmentList:
|
|
|
60
59
|
__slots__ = ["_list", "_bytes_occupied"]
|
|
61
60
|
|
|
62
61
|
def __init__(self):
|
|
63
|
-
self._list:
|
|
62
|
+
self._list: list[Segment] = []
|
|
64
63
|
self._bytes_occupied = 0
|
|
65
64
|
|
|
66
65
|
#
|
|
@@ -438,7 +437,7 @@ class SegmentList:
|
|
|
438
437
|
return True
|
|
439
438
|
return False
|
|
440
439
|
|
|
441
|
-
def occupied_by_sort(self, address: int) ->
|
|
440
|
+
def occupied_by_sort(self, address: int) -> str | None:
|
|
442
441
|
"""
|
|
443
442
|
Check if an address belongs to any segment, and if yes, returns the sort of the segment
|
|
444
443
|
|
|
@@ -456,7 +455,7 @@ class SegmentList:
|
|
|
456
455
|
return self._list[idx - 1].sort
|
|
457
456
|
return None
|
|
458
457
|
|
|
459
|
-
def occupied_by(self, address: int) ->
|
|
458
|
+
def occupied_by(self, address: int) -> tuple[int, int, str] | None:
|
|
460
459
|
"""
|
|
461
460
|
Check if an address belongs to any segment, and if yes, returns the beginning, the size, and the sort of the
|
|
462
461
|
segment.
|
angr/utils/typing.py
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
from typing import TypeVar
|
|
1
|
+
from typing import TypeVar
|
|
2
|
+
from collections.abc import Iterable
|
|
2
3
|
|
|
3
4
|
_T = TypeVar("_T")
|
|
4
5
|
|
|
5
6
|
|
|
6
|
-
def unwrap(thing:
|
|
7
|
+
def unwrap(thing: _T | None) -> _T:
|
|
7
8
|
assert thing is not None, "Tried to unwrap a `None` value"
|
|
8
9
|
return thing
|
|
9
10
|
|
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: angr
|
|
3
|
-
Version: 9.2.
|
|
3
|
+
Version: 9.2.103
|
|
4
4
|
Summary: A multi-architecture binary analysis toolkit, with the ability to perform dynamic symbolic execution and various static analyses on binaries
|
|
5
5
|
Home-page: https://github.com/angr/angr
|
|
6
6
|
License: BSD-2-Clause
|
|
7
7
|
Classifier: License :: OSI Approved :: BSD License
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
|
9
9
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
12
10
|
Classifier: Programming Language :: Python :: 3.10
|
|
13
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
-
Requires-Python: >=3.
|
|
13
|
+
Requires-Python: >=3.10
|
|
16
14
|
Description-Content-Type: text/markdown
|
|
17
15
|
License-File: LICENSE
|
|
18
16
|
Requires-Dist: CppHeaderParser
|
|
19
17
|
Requires-Dist: GitPython
|
|
20
|
-
Requires-Dist: ailment ==9.2.
|
|
21
|
-
Requires-Dist: archinfo ==9.2.
|
|
18
|
+
Requires-Dist: ailment ==9.2.103
|
|
19
|
+
Requires-Dist: archinfo ==9.2.103
|
|
22
20
|
Requires-Dist: cachetools
|
|
23
21
|
Requires-Dist: capstone ==5.0.0.post1
|
|
24
22
|
Requires-Dist: cffi >=1.14.0
|
|
25
|
-
Requires-Dist: claripy ==9.2.
|
|
26
|
-
Requires-Dist: cle ==9.2.
|
|
23
|
+
Requires-Dist: claripy ==9.2.103
|
|
24
|
+
Requires-Dist: cle ==9.2.103
|
|
27
25
|
Requires-Dist: dpkt
|
|
28
26
|
Requires-Dist: itanium-demangler
|
|
29
27
|
Requires-Dist: mulpyplexer
|
|
@@ -33,7 +31,7 @@ Requires-Dist: protobuf >=3.19.0
|
|
|
33
31
|
Requires-Dist: psutil
|
|
34
32
|
Requires-Dist: pycparser >=2.18
|
|
35
33
|
Requires-Dist: pyformlang
|
|
36
|
-
Requires-Dist: pyvex ==9.2.
|
|
34
|
+
Requires-Dist: pyvex ==9.2.103
|
|
37
35
|
Requires-Dist: rich >=13.1.0
|
|
38
36
|
Requires-Dist: rpyc
|
|
39
37
|
Requires-Dist: sortedcontainers
|
|
@@ -49,10 +47,10 @@ Requires-Dist: myst-parser ; extra == 'docs'
|
|
|
49
47
|
Requires-Dist: sphinx ; extra == 'docs'
|
|
50
48
|
Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs'
|
|
51
49
|
Provides-Extra: pcode
|
|
52
|
-
Requires-Dist: pypcode ~=2.0 ; extra == 'pcode'
|
|
50
|
+
Requires-Dist: pypcode ~=2.1.0 ; extra == 'pcode'
|
|
53
51
|
Provides-Extra: testing
|
|
54
52
|
Requires-Dist: keystone-engine ; extra == 'testing'
|
|
55
|
-
Requires-Dist: pypcode ~=2.0 ; extra == 'testing'
|
|
53
|
+
Requires-Dist: pypcode ~=2.1.0 ; extra == 'testing'
|
|
56
54
|
Requires-Dist: pytest ; extra == 'testing'
|
|
57
55
|
Requires-Dist: pytest-split ; extra == 'testing'
|
|
58
56
|
Requires-Dist: pytest-xdist ; extra == 'testing'
|