angr 9.2.102__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.

Files changed (240) hide show
  1. angr/__init__.py +1 -1
  2. angr/analyses/analysis.py +7 -6
  3. angr/analyses/calling_convention.py +33 -35
  4. angr/analyses/cdg.py +2 -4
  5. angr/analyses/cfg/cfb.py +4 -3
  6. angr/analyses/cfg/cfg_base.py +14 -14
  7. angr/analyses/cfg/cfg_emulated.py +3 -4
  8. angr/analyses/cfg/cfg_fast.py +46 -46
  9. angr/analyses/cfg/cfg_fast_soot.py +1 -2
  10. angr/analyses/cfg/cfg_job_base.py +2 -2
  11. angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +14 -13
  12. angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +5 -5
  13. angr/analyses/cfg_slice_to_sink/cfg_slice_to_sink.py +3 -3
  14. angr/analyses/complete_calling_conventions.py +13 -12
  15. angr/analyses/data_dep/data_dependency_analysis.py +24 -24
  16. angr/analyses/data_dep/dep_nodes.py +3 -3
  17. angr/analyses/ddg.py +1 -2
  18. angr/analyses/decompiler/ail_simplifier.py +35 -34
  19. angr/analyses/decompiler/block_io_finder.py +20 -20
  20. angr/analyses/decompiler/block_similarity.py +4 -6
  21. angr/analyses/decompiler/block_simplifier.py +17 -16
  22. angr/analyses/decompiler/callsite_maker.py +25 -10
  23. angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py +1 -3
  24. angr/analyses/decompiler/ccall_rewriters/rewriter_base.py +2 -4
  25. angr/analyses/decompiler/clinic.py +250 -45
  26. angr/analyses/decompiler/condition_processor.py +15 -8
  27. angr/analyses/decompiler/decompilation_cache.py +7 -7
  28. angr/analyses/decompiler/decompilation_options.py +4 -4
  29. angr/analyses/decompiler/decompiler.py +19 -15
  30. angr/analyses/decompiler/expression_counters.py +10 -9
  31. angr/analyses/decompiler/goto_manager.py +2 -4
  32. angr/analyses/decompiler/graph_region.py +9 -9
  33. angr/analyses/decompiler/jump_target_collector.py +1 -2
  34. angr/analyses/decompiler/optimization_passes/__init__.py +4 -3
  35. angr/analyses/decompiler/optimization_passes/code_motion.py +5 -6
  36. angr/analyses/decompiler/optimization_passes/const_derefs.py +4 -4
  37. angr/analyses/decompiler/optimization_passes/deadblock_remover.py +73 -0
  38. angr/analyses/decompiler/optimization_passes/engine_base.py +25 -3
  39. angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +6 -5
  40. angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +2 -2
  41. angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +3 -0
  42. angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +2 -2
  43. angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +17 -17
  44. angr/analyses/decompiler/optimization_passes/optimization_pass.py +12 -13
  45. angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +25 -21
  46. angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +3 -3
  47. angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +1 -2
  48. angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +7 -7
  49. angr/analyses/decompiler/optimization_passes/spilled_register_finder.py +18 -0
  50. angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py +2 -3
  51. angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py +1 -2
  52. angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py +2 -2
  53. angr/analyses/decompiler/peephole_optimizations/__init__.py +4 -3
  54. angr/analyses/decompiler/peephole_optimizations/base.py +13 -15
  55. angr/analyses/decompiler/peephole_optimizations/bswap.py +1 -3
  56. angr/analyses/decompiler/peephole_optimizations/cmpord_rewriter.py +72 -0
  57. angr/analyses/decompiler/peephole_optimizations/const_mull_a_shift.py +1 -2
  58. angr/analyses/decompiler/peephole_optimizations/eager_eval.py +1 -1
  59. angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py +5 -10
  60. angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py +3 -4
  61. angr/analyses/decompiler/peephole_optimizations/inlined_wstrcpy.py +7 -10
  62. angr/analyses/decompiler/peephole_optimizations/rewrite_bit_extractions.py +2 -3
  63. angr/analyses/decompiler/peephole_optimizations/sar_to_signed_div.py +1 -2
  64. angr/analyses/decompiler/peephole_optimizations/tidy_stack_addr.py +4 -4
  65. angr/analyses/decompiler/redundant_label_remover.py +4 -5
  66. angr/analyses/decompiler/region_identifier.py +4 -5
  67. angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +1 -2
  68. angr/analyses/decompiler/region_simplifiers/expr_folding.py +19 -20
  69. angr/analyses/decompiler/region_simplifiers/goto.py +2 -3
  70. angr/analyses/decompiler/region_simplifiers/loop.py +1 -2
  71. angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -2
  72. angr/analyses/decompiler/region_simplifiers/region_simplifier.py +1 -3
  73. angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +19 -19
  74. angr/analyses/decompiler/return_maker.py +1 -2
  75. angr/analyses/decompiler/structured_codegen/base.py +5 -6
  76. angr/analyses/decompiler/structured_codegen/c.py +39 -38
  77. angr/analyses/decompiler/structuring/__init__.py +1 -1
  78. angr/analyses/decompiler/structuring/dream.py +17 -16
  79. angr/analyses/decompiler/structuring/phoenix.py +45 -46
  80. angr/analyses/decompiler/structuring/recursive_structurer.py +4 -4
  81. angr/analyses/decompiler/structuring/structurer_base.py +16 -15
  82. angr/analyses/decompiler/structuring/structurer_nodes.py +10 -9
  83. angr/analyses/decompiler/utils.py +17 -16
  84. angr/analyses/disassembly.py +7 -6
  85. angr/analyses/flirt.py +9 -9
  86. angr/analyses/forward_analysis/forward_analysis.py +15 -14
  87. angr/analyses/forward_analysis/visitors/function_graph.py +1 -2
  88. angr/analyses/forward_analysis/visitors/graph.py +16 -15
  89. angr/analyses/propagator/engine_ail.py +30 -26
  90. angr/analyses/propagator/outdated_definition_walker.py +8 -7
  91. angr/analyses/propagator/propagator.py +11 -13
  92. angr/analyses/proximity_graph.py +21 -21
  93. angr/analyses/reaching_definitions/__init__.py +3 -3
  94. angr/analyses/reaching_definitions/call_trace.py +3 -6
  95. angr/analyses/reaching_definitions/dep_graph.py +41 -48
  96. angr/analyses/reaching_definitions/engine_ail.py +11 -5
  97. angr/analyses/reaching_definitions/engine_vex.py +9 -8
  98. angr/analyses/reaching_definitions/function_handler.py +51 -34
  99. angr/analyses/reaching_definitions/heap_allocator.py +3 -4
  100. angr/analyses/reaching_definitions/rd_initializer.py +8 -8
  101. angr/analyses/reaching_definitions/rd_state.py +57 -58
  102. angr/analyses/reaching_definitions/reaching_definitions.py +18 -17
  103. angr/analyses/reaching_definitions/subject.py +2 -3
  104. angr/analyses/stack_pointer_tracker.py +15 -6
  105. angr/analyses/typehoon/dfa.py +4 -4
  106. angr/analyses/typehoon/simple_solver.py +48 -52
  107. angr/analyses/typehoon/translator.py +3 -6
  108. angr/analyses/typehoon/typeconsts.py +13 -14
  109. angr/analyses/typehoon/typehoon.py +9 -9
  110. angr/analyses/typehoon/typevars.py +18 -17
  111. angr/analyses/variable_recovery/engine_ail.py +5 -5
  112. angr/analyses/variable_recovery/engine_base.py +25 -21
  113. angr/analyses/variable_recovery/irsb_scanner.py +8 -9
  114. angr/analyses/variable_recovery/variable_recovery.py +1 -2
  115. angr/analyses/variable_recovery/variable_recovery_base.py +14 -13
  116. angr/analyses/variable_recovery/variable_recovery_fast.py +8 -8
  117. angr/analyses/veritesting.py +1 -2
  118. angr/analyses/vfg.py +57 -56
  119. angr/analyses/xrefs.py +1 -2
  120. angr/angrdb/db.py +7 -7
  121. angr/angrdb/serializers/kb.py +16 -13
  122. angr/angrdb/serializers/loader.py +1 -2
  123. angr/angrdb/serializers/structured_code.py +2 -2
  124. angr/annocfg.py +1 -2
  125. angr/block.py +16 -6
  126. angr/calling_conventions.py +27 -27
  127. angr/code_location.py +8 -8
  128. angr/codenode.py +1 -2
  129. angr/concretization_strategies/max.py +1 -3
  130. angr/distributed/server.py +1 -3
  131. angr/distributed/worker.py +1 -2
  132. angr/engines/engine.py +2 -3
  133. angr/engines/light/engine.py +4 -4
  134. angr/engines/pcode/behavior.py +20 -2
  135. angr/engines/pcode/emulate.py +1 -1
  136. angr/engines/pcode/engine.py +7 -7
  137. angr/engines/pcode/lifter.py +78 -77
  138. angr/engines/vex/claripy/ccall.py +1 -2
  139. angr/engines/vex/claripy/datalayer.py +1 -2
  140. angr/engines/vex/light/light.py +1 -2
  141. angr/exploration_techniques/tracer.py +4 -4
  142. angr/factory.py +12 -15
  143. angr/flirt/__init__.py +8 -8
  144. angr/flirt/build_sig.py +2 -3
  145. angr/keyed_region.py +2 -2
  146. angr/knowledge_base/knowledge_base.py +3 -3
  147. angr/knowledge_plugins/callsite_prototypes.py +4 -6
  148. angr/knowledge_plugins/cfg/cfg_manager.py +19 -6
  149. angr/knowledge_plugins/cfg/cfg_model.py +26 -27
  150. angr/knowledge_plugins/cfg/cfg_node.py +2 -2
  151. angr/knowledge_plugins/cfg/indirect_jump.py +6 -8
  152. angr/knowledge_plugins/cfg/memory_data.py +8 -9
  153. angr/knowledge_plugins/custom_strings.py +1 -3
  154. angr/knowledge_plugins/debug_variables.py +2 -2
  155. angr/knowledge_plugins/functions/function.py +21 -22
  156. angr/knowledge_plugins/functions/function_manager.py +5 -5
  157. angr/knowledge_plugins/indirect_jumps.py +1 -3
  158. angr/knowledge_plugins/key_definitions/atoms.py +7 -7
  159. angr/knowledge_plugins/key_definitions/definition.py +14 -14
  160. angr/knowledge_plugins/key_definitions/environment.py +5 -7
  161. angr/knowledge_plugins/key_definitions/heap_address.py +1 -3
  162. angr/knowledge_plugins/key_definitions/key_definition_manager.py +3 -2
  163. angr/knowledge_plugins/key_definitions/live_definitions.py +60 -59
  164. angr/knowledge_plugins/key_definitions/liveness.py +16 -16
  165. angr/knowledge_plugins/key_definitions/rd_model.py +15 -15
  166. angr/knowledge_plugins/key_definitions/uses.py +11 -11
  167. angr/knowledge_plugins/patches.py +4 -8
  168. angr/knowledge_plugins/propagations/prop_value.py +10 -9
  169. angr/knowledge_plugins/propagations/propagation_manager.py +3 -5
  170. angr/knowledge_plugins/propagations/propagation_model.py +9 -9
  171. angr/knowledge_plugins/propagations/states.py +52 -22
  172. angr/knowledge_plugins/structured_code/manager.py +2 -2
  173. angr/knowledge_plugins/sync/sync_controller.py +3 -3
  174. angr/knowledge_plugins/variables/variable_access.py +4 -4
  175. angr/knowledge_plugins/variables/variable_manager.py +39 -39
  176. angr/knowledge_plugins/xrefs/xref.py +9 -11
  177. angr/knowledge_plugins/xrefs/xref_manager.py +3 -4
  178. angr/lib/angr_native.dll +0 -0
  179. angr/misc/ansi.py +1 -2
  180. angr/misc/autoimport.py +3 -3
  181. angr/misc/plugins.py +9 -9
  182. angr/procedures/definitions/__init__.py +16 -16
  183. angr/procedures/definitions/linux_kernel.py +1 -1
  184. angr/procedures/definitions/parse_win32json.py +1 -1
  185. angr/procedures/java_jni/__init__.py +1 -1
  186. angr/procedures/java_jni/array_operations.py +1 -2
  187. angr/procedures/java_jni/method_calls.py +1 -2
  188. angr/procedures/posix/inet_ntoa.py +1 -2
  189. angr/procedures/stubs/format_parser.py +3 -3
  190. angr/project.py +13 -11
  191. angr/sim_manager.py +12 -12
  192. angr/sim_procedure.py +7 -3
  193. angr/sim_state.py +2 -2
  194. angr/sim_type.py +60 -45
  195. angr/sim_variable.py +5 -5
  196. angr/simos/simos.py +1 -2
  197. angr/simos/userland.py +1 -2
  198. angr/state_plugins/callstack.py +3 -2
  199. angr/state_plugins/history.py +1 -2
  200. angr/state_plugins/solver.py +34 -34
  201. angr/storage/memory_mixins/__init__.py +4 -3
  202. angr/storage/memory_mixins/actions_mixin.py +1 -3
  203. angr/storage/memory_mixins/address_concretization_mixin.py +1 -3
  204. angr/storage/memory_mixins/convenient_mappings_mixin.py +3 -4
  205. angr/storage/memory_mixins/default_filler_mixin.py +1 -1
  206. angr/storage/memory_mixins/label_merger_mixin.py +2 -2
  207. angr/storage/memory_mixins/multi_value_merger_mixin.py +4 -3
  208. angr/storage/memory_mixins/paged_memory/page_backer_mixins.py +9 -8
  209. angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +12 -11
  210. angr/storage/memory_mixins/paged_memory/pages/cooperation.py +8 -8
  211. angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py +2 -3
  212. angr/storage/memory_mixins/paged_memory/pages/list_page.py +10 -11
  213. angr/storage/memory_mixins/paged_memory/pages/multi_values.py +11 -10
  214. angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +18 -17
  215. angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +12 -11
  216. angr/storage/memory_mixins/regioned_memory/abstract_address_descriptor.py +3 -3
  217. angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +3 -2
  218. angr/storage/memory_mixins/regioned_memory/region_data.py +1 -2
  219. angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +2 -2
  220. angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +3 -3
  221. angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +18 -21
  222. angr/storage/memory_mixins/size_resolution_mixin.py +1 -2
  223. angr/storage/memory_mixins/symbolic_merger_mixin.py +3 -2
  224. angr/storage/memory_mixins/top_merger_mixin.py +3 -2
  225. angr/storage/memory_object.py +2 -4
  226. angr/utils/algo.py +3 -2
  227. angr/utils/dynamic_dictlist.py +5 -5
  228. angr/utils/formatting.py +4 -4
  229. angr/utils/funcid.py +1 -2
  230. angr/utils/graph.py +5 -6
  231. angr/utils/library.py +5 -5
  232. angr/utils/mp.py +5 -4
  233. angr/utils/segment_list.py +3 -4
  234. angr/utils/typing.py +3 -2
  235. {angr-9.2.102.dist-info → angr-9.2.103.dist-info}/METADATA +9 -11
  236. {angr-9.2.102.dist-info → angr-9.2.103.dist-info}/RECORD +240 -237
  237. {angr-9.2.102.dist-info → angr-9.2.103.dist-info}/LICENSE +0 -0
  238. {angr-9.2.102.dist-info → angr-9.2.103.dist-info}/WHEEL +0 -0
  239. {angr-9.2.102.dist-info → angr-9.2.103.dist-info}/entry_points.txt +0 -0
  240. {angr-9.2.102.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) -> Tuple[networkx.DiGraph, Optional[Dict]]:
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: Optional[List] = None, loop_heads: Optional[List] = None
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: Optional[List] = None, loop_heads: Optional[List] = None
658
- ) -> List:
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: List, scc: Set, loop_head_candidates: Optional[List] = None
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 List, Tuple, Optional, TYPE_CHECKING
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) -> Tuple[str, "SimTypeFunction", str]:
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
- ) -> Tuple[Optional[str], Optional[SimTypeCppFunction], Optional[str]]:
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: List[Tuple[str, "SimTypeFunction", str]], fd_spots=frozenset(), remove_sys_prefix=False
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: List[str], fd_spots=frozenset(), remove_sys_prefix=False) -> str:
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, Callable, List, Dict, Any
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: List[Any]
13
- kwargs: Dict[str, Any]
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: List[Closure] = []
36
+ self.initializers: list[Closure] = []
36
37
 
37
38
  def register(self, f: Callable[..., None], *args: Any, **kwargs: Any) -> None:
38
39
  """
@@ -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: List[Segment] = []
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) -> Optional[str]:
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) -> Optional[Tuple[int, int, str]]:
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, Optional, Iterable
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: Optional[_T]) -> _T:
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.102
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.8
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.102
21
- Requires-Dist: archinfo ==9.2.102
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.102
26
- Requires-Dist: cle ==9.2.102
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.102
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.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.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'