angr 9.2.77__py3-none-win_amd64.whl → 9.2.79__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 (46) hide show
  1. angr/__init__.py +1 -1
  2. angr/__main__.py +34 -0
  3. angr/analyses/calling_convention.py +15 -12
  4. angr/analyses/cfg/cfg_fast.py +12 -0
  5. angr/analyses/complete_calling_conventions.py +5 -2
  6. angr/analyses/decompiler/ail_simplifier.py +2 -2
  7. angr/analyses/decompiler/block_simplifier.py +25 -5
  8. angr/analyses/decompiler/clinic.py +27 -17
  9. angr/analyses/decompiler/optimization_passes/__init__.py +2 -0
  10. angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
  11. angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
  12. angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py +105 -12
  13. angr/analyses/decompiler/peephole_optimizations/__init__.py +11 -2
  14. angr/analyses/decompiler/peephole_optimizations/base.py +29 -2
  15. angr/analyses/decompiler/peephole_optimizations/constant_derefs.py +1 -1
  16. angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py +83 -0
  17. angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py +103 -0
  18. angr/analyses/decompiler/structured_codegen/c.py +20 -4
  19. angr/analyses/decompiler/utils.py +128 -2
  20. angr/analyses/disassembly.py +8 -1
  21. angr/analyses/propagator/engine_ail.py +9 -2
  22. angr/analyses/proximity_graph.py +30 -0
  23. angr/analyses/variable_recovery/engine_ail.py +1 -1
  24. angr/analyses/variable_recovery/engine_vex.py +10 -1
  25. angr/blade.py +14 -2
  26. angr/block.py +4 -0
  27. angr/knowledge_plugins/__init__.py +1 -0
  28. angr/knowledge_plugins/custom_strings.py +40 -0
  29. angr/knowledge_plugins/functions/function.py +58 -38
  30. angr/knowledge_plugins/key_definitions/live_definitions.py +1 -1
  31. angr/knowledge_plugins/propagations/prop_value.py +6 -2
  32. angr/knowledge_plugins/variables/variable_manager.py +1 -1
  33. angr/lib/angr_native.dll +0 -0
  34. angr/sim_state.py +0 -2
  35. angr/sim_type.py +3 -0
  36. angr/storage/memory_mixins/__init__.pyi +49 -0
  37. angr/storage/memory_mixins/paged_memory/pages/multi_values.py +7 -1
  38. angr/utils/graph.py +20 -4
  39. {angr-9.2.77.dist-info → angr-9.2.79.dist-info}/METADATA +6 -6
  40. {angr-9.2.77.dist-info → angr-9.2.79.dist-info}/RECORD +46 -40
  41. {angr-9.2.77.dist-info → angr-9.2.79.dist-info}/WHEEL +1 -1
  42. angr-9.2.79.dist-info/entry_points.txt +2 -0
  43. tests/analyses/cfg/test_cfgemulated.py +1 -1
  44. tests/storage/test_multivalues.py +18 -0
  45. {angr-9.2.77.dist-info → angr-9.2.79.dist-info}/LICENSE +0 -0
  46. {angr-9.2.77.dist-info → angr-9.2.79.dist-info}/top_level.txt +0 -0
@@ -95,8 +95,12 @@ class PropValue:
95
95
 
96
96
  @staticmethod
97
97
  def chop_value(value: claripy.ast.Bits, begin_offset, end_offset) -> claripy.ast.Bits:
98
- chop_start = value.size() - begin_offset * 8 - 1
99
- chop_end = value.size() - end_offset * 8
98
+ if begin_offset == end_offset:
99
+ chop_start = value.size() - begin_offset * 8 - 1
100
+ chop_end = value.size() - end_offset * 8 - 1
101
+ else:
102
+ chop_start = value.size() - begin_offset * 8 - 1
103
+ chop_end = value.size() - end_offset * 8
100
104
  if chop_end - chop_start + 1 == value.size():
101
105
  # fast path: no chopping
102
106
  return value
@@ -319,7 +319,7 @@ class VariableManagerInternal(Serializable):
319
319
 
320
320
  region.add_variable(offset, var)
321
321
 
322
- model._variables_without_writes = model.get_variables_without_writes()
322
+ model._variables_without_writes = set(model.get_variables_without_writes())
323
323
 
324
324
  return model
325
325
 
angr/lib/angr_native.dll CHANGED
Binary file
angr/sim_state.py CHANGED
@@ -70,8 +70,6 @@ class SimState(PluginHub):
70
70
  memory: "DefaultMemory"
71
71
  callstack: "CallStack"
72
72
  mem: "SimMemView"
73
- callstack: "CallStack"
74
- mem: "SimMemView"
75
73
  history: "SimStateHistory"
76
74
  inspect: "SimInspector"
77
75
  jni_references: "SimStateJNIReferences"
angr/sim_type.py CHANGED
@@ -908,6 +908,9 @@ class SimTypeFunction(SimType):
908
908
  self.arg_names = arg_names if arg_names else ()
909
909
  self.variadic = variadic
910
910
 
911
+ def __hash__(self):
912
+ return hash(type(self)) ^ hash(tuple(self.args)) ^ hash(self.returnty)
913
+
911
914
  def __repr__(self):
912
915
  argstrs = [str(a) for a in self.args]
913
916
  if self.variadic:
@@ -0,0 +1,49 @@
1
+ import claripy
2
+ from typing import Union, Optional, List
3
+ from angr.state_plugins.sim_action_object import SimActionObject
4
+
5
+ _Coerce = Union[int, claripy.ast.bv.BV, SimActionObject]
6
+
7
+ class DefaultMemory:
8
+ SUPPORTS_CONCRETE_LOAD: bool
9
+ id: str
10
+ endness: str
11
+ def store(
12
+ self,
13
+ addr: _Coerce,
14
+ data: Union[_Coerce, bytes],
15
+ size: Optional[_Coerce] = None,
16
+ condition: Optional[claripy.ast.bool.Bool] = None,
17
+ **kwargs,
18
+ ) -> None: ...
19
+ def load(
20
+ self,
21
+ addr: _Coerce,
22
+ size: Optional[_Coerce] = None,
23
+ condition: Optional[claripy.ast.bool.Bool] = None,
24
+ fallback: Optional[_Coerce] = None,
25
+ **kwargs,
26
+ ) -> claripy.ast.bv.BV: ...
27
+ def find(
28
+ self, addr: _Coerce, what: _Coerce, max_search: int, default: Optional[_Coerce] = None, **kwargs
29
+ ) -> claripy.ast.bv.BV: ...
30
+ def copy_contents(
31
+ self, dst: _Coerce, src: _Coerce, size: _Coerce, condition: Optional[claripy.ast.bool.Bool] = None, **kwargs
32
+ ) -> None: ...
33
+ def copy(self, memo: dict) -> DefaultMemory: ...
34
+ @property
35
+ def category(self) -> str: ...
36
+ @property
37
+ def variable_key_prefix(self) -> str: ...
38
+ def merge(
39
+ self,
40
+ others: List[DefaultMemory],
41
+ merge_conditions: List[claripy.ast.bool.Bool],
42
+ common_ancestor: Optional[DefaultMemory] = ...,
43
+ ) -> bool: ...
44
+ def permissions(self, addr: _Coerce, permissions: Optional[_Coerce] = ..., **kwargs) -> None: ...
45
+ def map_region(self, addr: _Coerce, length: int, permissions: _Coerce, init_zero: bool = ..., **kwargs) -> None: ...
46
+ def unmap_region(self, addr: _Coerce, length: int, **kwargs) -> None: ...
47
+ def concrete_load(self, addr: _Coerce, size: int, writing: bool = ..., **kwargs) -> memoryview: ...
48
+ def erase(self, addr, size: int = ..., **kwargs) -> None: ...
49
+ def replace_all(self, old: claripy.ast.BV, new: claripy.ast.BV): ...
@@ -49,9 +49,12 @@ class MultiValues:
49
49
  else None
50
50
  )
51
51
 
52
+ if self._single_value is None and self._values is None:
53
+ self._values = {}
54
+
52
55
  # if only one value is passed in, assign it to self._single_value
53
56
  if self._values:
54
- if len(self._values) == 0 and 0 in self._values and len(self._values[0]) == 0:
57
+ if len(self._values) == 1 and 0 in self._values and len(self._values[0]) == 1:
55
58
  self._single_value = next(iter(self._values[0]))
56
59
  self._values = None
57
60
 
@@ -153,6 +156,9 @@ class MultiValues:
153
156
 
154
157
  assert self._values is not None
155
158
 
159
+ if len(self._values) == 0:
160
+ return 0
161
+
156
162
  max_offset = max(self._values.keys())
157
163
  max_len = max(x.size() for x in self._values[max_offset])
158
164
  return max_offset * 8 + max_len # FIXME: we are assuming byte_width of 8
angr/utils/graph.py CHANGED
@@ -712,7 +712,7 @@ class GraphUtils:
712
712
  ordered_nodes = []
713
713
  for n in tmp_nodes:
714
714
  if isinstance(n, SCCPlaceholder):
715
- GraphUtils._append_scc(graph, ordered_nodes, sccs[n.scc_id], loop_heads=loop_heads)
715
+ GraphUtils._append_scc(graph, ordered_nodes, sccs[n.scc_id], loop_head_candidates=loop_heads)
716
716
  else:
717
717
  ordered_nodes.append(n)
718
718
 
@@ -731,7 +731,9 @@ class GraphUtils:
731
731
  return None
732
732
 
733
733
  @staticmethod
734
- def _append_scc(graph: networkx.DiGraph, ordered_nodes: List, scc: Set, loop_heads: Optional[List] = None) -> None:
734
+ def _append_scc(
735
+ graph: networkx.DiGraph, ordered_nodes: List, scc: Set, loop_head_candidates: Optional[List] = None
736
+ ) -> None:
735
737
  """
736
738
  Append all nodes from a strongly connected component to a list of ordered nodes and ensure the topological
737
739
  order.
@@ -743,10 +745,11 @@ class GraphUtils:
743
745
 
744
746
  loop_head = None
745
747
 
746
- if loop_heads is not None:
748
+ if loop_head_candidates is not None:
747
749
  # find the first node that appears in loop_heads
750
+ loop_head_candidates = set(loop_head_candidates)
748
751
  for n in scc:
749
- if n in loop_heads:
752
+ if n in loop_head_candidates:
750
753
  loop_head = n
751
754
  break
752
755
 
@@ -782,4 +785,17 @@ class GraphUtils:
782
785
  for src, _ in list(subgraph.in_edges(loop_head)):
783
786
  subgraph.remove_edge(src, loop_head)
784
787
 
788
+ # panic mode: if the strongly connected component has too many edges (imagine an almost complete graph), it
789
+ # will take too long to converge if we only remove one node out of the component each time. we introduce a
790
+ # panic mode that will aggressively remove edges
791
+
792
+ if len(subgraph) > 3000 and len(subgraph.edges) > len(subgraph) * 1.4:
793
+ for n in scc:
794
+ if subgraph.in_degree[n] >= 1 and subgraph.out_degree[n] >= 1:
795
+ for src in list(subgraph.predecessors(n)):
796
+ if src is not n:
797
+ subgraph.remove_edge(src, n)
798
+ if len(subgraph.edges) <= len(subgraph) * 1.4:
799
+ break
800
+
785
801
  ordered_nodes.extend(GraphUtils.quasi_topological_sort_nodes(subgraph))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: angr
3
- Version: 9.2.77
3
+ Version: 9.2.79
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
@@ -17,13 +17,13 @@ Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
18
  Requires-Dist: CppHeaderParser
19
19
  Requires-Dist: GitPython
20
- Requires-Dist: ailment ==9.2.77
21
- Requires-Dist: archinfo ==9.2.77
20
+ Requires-Dist: ailment ==9.2.79
21
+ Requires-Dist: archinfo ==9.2.79
22
22
  Requires-Dist: cachetools
23
23
  Requires-Dist: capstone ==5.0.0.post1
24
24
  Requires-Dist: cffi >=1.14.0
25
- Requires-Dist: claripy ==9.2.77
26
- Requires-Dist: cle ==9.2.77
25
+ Requires-Dist: claripy ==9.2.79
26
+ Requires-Dist: cle ==9.2.79
27
27
  Requires-Dist: dpkt
28
28
  Requires-Dist: itanium-demangler
29
29
  Requires-Dist: mulpyplexer
@@ -32,7 +32,7 @@ Requires-Dist: networkx !=2.8.1,>=2.0
32
32
  Requires-Dist: protobuf >=3.19.0
33
33
  Requires-Dist: psutil
34
34
  Requires-Dist: pycparser >=2.18
35
- Requires-Dist: pyvex ==9.2.77
35
+ Requires-Dist: pyvex ==9.2.79
36
36
  Requires-Dist: rich >=13.1.0
37
37
  Requires-Dist: rpyc
38
38
  Requires-Dist: sortedcontainers
@@ -1,7 +1,8 @@
1
- angr/__init__.py,sha256=Yy-SzRkYn8Fa--OSAEYMu9KKOvE2SFyX-QtR7VSv72U,3851
1
+ angr/__init__.py,sha256=1hDKCHV5WU-92kCqJB-WuVkZO28N6APe3LTVIuMzl7g,3851
2
+ angr/__main__.py,sha256=kdqGysHrVO1vaW6VC6v_OTmlCO7R1-eZpiEhArmi978,1095
2
3
  angr/annocfg.py,sha256=dK5JAdN4Ig_jgxTBZeZXwk3kAS4-IQUvE6T02GBZTDQ,10818
3
- angr/blade.py,sha256=1f5cqw1w6mKtYszN2-5QMxaoP_bbqpIaVlE7Vpf8yjc,15161
4
- angr/block.py,sha256=RXro1XdUTztfPL2r62m2YA1XTNe7bP0lkBUDYzz_FyE,14371
4
+ angr/blade.py,sha256=YySrLqj2Y3-td9FJnkjDqYyFvAeGhc5a5lrGoHKOT2A,15562
5
+ angr/block.py,sha256=FnsFukbXhLzYPW5zJRXMxNmvCRU4LFlFIaJwo5sAqkY,14468
5
6
  angr/callable.py,sha256=X9LC_A4XxdCcCWLqbyZyU1YKBrTKNCeJAJJBGXU83vE,6012
6
7
  angr/calling_conventions.py,sha256=Ri-xAayzVrtoWvKXO01nsV8VM14iOxIWfouwBQIYe8s,90745
7
8
  angr/code_location.py,sha256=ow0Z8OF8FNBPZs4PUmRej_5aHaKTmUIanYPro3iHAMs,5476
@@ -17,9 +18,9 @@ angr/service.py,sha256=9R50bFaCf6zjxybiEIVIkODSVCsE2VcTul_KjjsjaGU,1102
17
18
  angr/sim_manager.py,sha256=b7saPxVQmXInT4PmEUVHIV-Fuj1X1c8rxiCy9AIBiaY,39300
18
19
  angr/sim_options.py,sha256=OuT01xS_F3ifBD9MAfZmNCnfjtTg0HulZlrKcs1LNSY,18057
19
20
  angr/sim_procedure.py,sha256=TpYn5z6YMKjugyH_Lw9XcEaQc8cpTxtyorBKrRYMewA,26073
20
- angr/sim_state.py,sha256=--Ou3Pprhu-iPGWhQV6wfcEH6XW-IPfo9c-MquRgHoQ,37875
21
+ angr/sim_state.py,sha256=BhAKyfvoGfqpgAPYYT4j7drrkOdPy03ucBO7LKMz0s0,37826
21
22
  angr/sim_state_options.py,sha256=lfP7ygngjGe0AGV5rkE24tvBazJBZG-RTdrKj4rL9XE,12530
22
- angr/sim_type.py,sha256=illcZU3EM_fQLlphIcNSCP-6rWtXYsIq47cxs3dLHZc,116952
23
+ angr/sim_type.py,sha256=ZU4uHgFcJyjvVMGza8_JluHKmAWbpT9S1Xb41qdydHU,117056
23
24
  angr/sim_variable.py,sha256=VIpKm4lguu_bKokjq4UB6Q_30Ogz9J7XRBJuH62lW60,17228
24
25
  angr/slicer.py,sha256=kbLKMAjf2kC6ov-OiGb95BqLmgV0QRl5mmEANcvzuAk,10640
25
26
  angr/state_hierarchy.py,sha256=w_5Tl-7h9xUXBsIKZRAWw8Xh0we8GIAaN6nbKgYH_Qo,8467
@@ -32,15 +33,15 @@ angr/analyses/binary_optimizer.py,sha256=uXrvQ1pVKev9o0aqnuqz7Mbo20vMoZogJpvrjdj
32
33
  angr/analyses/bindiff.py,sha256=aFFfp4zHJqYGFp2ge-MBt7q2k1DFZb9VD1zC_cxFMmE,51815
33
34
  angr/analyses/boyscout.py,sha256=BFlxz4o8mpFXDiObd_x_9ObGvgBeh-zlxcC-_YT2wHs,2448
34
35
  angr/analyses/callee_cleanup_finder.py,sha256=gWeXZNM1wFYz6v2Fgy_0DlJSx53Zkf2M5lgvIGARCm8,2835
35
- angr/analyses/calling_convention.py,sha256=eDKC9RzCJSC6mMMWjCubWwJjSbSwbvI5gXSK8-_S8Zk,39801
36
+ angr/analyses/calling_convention.py,sha256=6aWMp1RkPBF362ML9wGccv78lawWhz-tHua3-6uCYoc,39844
36
37
  angr/analyses/cdg.py,sha256=OAnsjM1MgWXEToyOprxyWPTsn3BA_HBnrCXllB0h3h0,6361
37
38
  angr/analyses/class_identifier.py,sha256=lA_r-AUoP8nFCKMbyCuca-AfV7rOdj0g-XCFdbS5G0w,2969
38
39
  angr/analyses/code_tagging.py,sha256=_SnJd0FkE1ZXvv6uzxaoIACJANKCrGtK3nLWcuS7Lb0,3641
39
- angr/analyses/complete_calling_conventions.py,sha256=gY5bgs2160Q_Pm1XUeMBwsYB8bWFm7P0ACN-C8eTllQ,16699
40
+ angr/analyses/complete_calling_conventions.py,sha256=uv6Wq0GXZsr4uLcgdiVWcL-0t4fJAGR43gpYoDYxREo,16873
40
41
  angr/analyses/congruency_check.py,sha256=U3xBVim4pNSrnURqsFysipVIuGFWbqtxZ6nfRBfWaLY,16456
41
42
  angr/analyses/datagraph_meta.py,sha256=75AVKJ8LIL4Id0nlz3Gf6XlruqarYyBX1WylxRvcAeQ,3386
42
43
  angr/analyses/ddg.py,sha256=TNE3__wJHyr2zMFLCV-KM518BvTAXHS1RZclALrLePk,63426
43
- angr/analyses/disassembly.py,sha256=hLHnCSeHXm94rbtGJS3Ri-LfvVML92NO2tAm_sUTgTo,45143
44
+ angr/analyses/disassembly.py,sha256=bIuz0wap2lGSfoqZW2qf0OexOQZRDreAsMmhiRfvc6Y,45422
44
45
  angr/analyses/disassembly_utils.py,sha256=4Np0PCPjr0h0jIVzUUG6KzrEKl9--IpTE3sgmmsmhcg,2989
45
46
  angr/analyses/dominance_frontier.py,sha256=XRfC_LUUetE8t1Cc9bwvWS9sl63Fx9sp8KFqN_Y9IDg,1245
46
47
  angr/analyses/find_objects_static.py,sha256=xryfgv3DZ_AppLwuIzLeRst6b4EvigQT1M5TgrbJyiY,9882
@@ -48,7 +49,7 @@ angr/analyses/flirt.py,sha256=-n6GShXV6PLKDHr4nML49ZwAAlmMIP5SDeF2KmJVKOM,7847
48
49
  angr/analyses/init_finder.py,sha256=hFHPsHipF4QkWzVqcDeTgL6YIaYi8bAyaURZBksS4KI,8531
49
50
  angr/analyses/loop_analysis.py,sha256=nIbDIzvys-FRtJYnoZYNbMWH5V88qrhoMtrMRCTbkLY,9412
50
51
  angr/analyses/loopfinder.py,sha256=X8F4Dcu2UHDXt6JifK6EfROAeeczyca6V7zxx9z7GpQ,7122
51
- angr/analyses/proximity_graph.py,sha256=Sm9oo8h9wtnP1hojsrjaAbkysqEHFjQQCSfZiET9244,15207
52
+ angr/analyses/proximity_graph.py,sha256=y30caPk5N4zOzkf8TF7AEOo0AR_yDhEFJrQB89_CTnM,16323
52
53
  angr/analyses/reassembler.py,sha256=b4EnHx36yS2DNq8nes7zr2_9SozqXbeTTx2538TCm84,100415
53
54
  angr/analyses/soot_class_hierarchy.py,sha256=Cs_LRV1RLXH6sF_E49tJWg9Inxvv_o5mB-VaIBcbQJg,8941
54
55
  angr/analyses/stack_pointer_tracker.py,sha256=rL8wF12Fe3P-RXAzk4caMYapB63tYX_qs-EO6E5l1n8,26228
@@ -64,7 +65,7 @@ angr/analyses/cfg/cfg.py,sha256=1JpPGlqXXRFwE0tk26xjabT_-dq-kqAxMv7o6-DUhp4,3146
64
65
  angr/analyses/cfg/cfg_arch_options.py,sha256=YONHg6y-h6BCsBkJK9tuxb94DDfeOoy9CUS-LVyyDyg,3112
65
66
  angr/analyses/cfg/cfg_base.py,sha256=o3mAO3ha5DPWFiE_TeUll38ldal-p0IUOyXY4lNnncc,121889
66
67
  angr/analyses/cfg/cfg_emulated.py,sha256=Fi3rDN5ByxhO-H4Y7qn-3WZgBG12JGyvxcWmrD_FnFQ,152842
67
- angr/analyses/cfg/cfg_fast.py,sha256=IwIsPNxbIAGfHOHKf0s_X-MnBZT1mbmlgFKIXHTk51A,209786
68
+ angr/analyses/cfg/cfg_fast.py,sha256=jaF4UXjld_GX9JdN87noJhaD5c0vvo8lcURv3xHa2RI,210389
68
69
  angr/analyses/cfg/cfg_fast_soot.py,sha256=eA_P-OY3gRRNj2BBgSPMsB_llGyFFCNW3VyGZ2uiMoM,26047
69
70
  angr/analyses/cfg/cfg_job_base.py,sha256=3IQE_Iy17xtGfsIkrKc2ERIakAYiNdLtRb_jwOGQtHU,5989
70
71
  angr/analyses/cfg/segment_list.py,sha256=XM-rcLHkl008U5xu9pkVCenhcHWAFBKwVdDLa-kGFgY,20467
@@ -89,12 +90,12 @@ angr/analyses/data_dep/data_dependency_analysis.py,sha256=12WNVAdY196JZf37AfkdPD
89
90
  angr/analyses/data_dep/dep_nodes.py,sha256=BCpIPECRJhlX2sMO2LtaXxSD25-Edw2vXQOVcx5i55w,4650
90
91
  angr/analyses/data_dep/sim_act_location.py,sha256=4f8jp-ahitxoHCCOSSFGJ1olvNWuHyiE6iOLa5DA0k4,1527
91
92
  angr/analyses/decompiler/__init__.py,sha256=RkTvvTwAGpaLdGSTgXxVrKmGEDRxqLCNSB-b8fM6fBM,540
92
- angr/analyses/decompiler/ail_simplifier.py,sha256=wyOtWMNn4CMC2XPrJ2BvePOT3Dz1OgbWU5zQEZT3pFw,58973
93
+ angr/analyses/decompiler/ail_simplifier.py,sha256=ZHXNxaR9yLRFbYaczolSbc1vQ1s__EhTi9fumkv8AcM,59030
93
94
  angr/analyses/decompiler/ailgraph_walker.py,sha256=sBz9Cn0GtdpuFt7R9y3oX6NFvETQTZRh6N80eM9ZdJQ,1595
94
- angr/analyses/decompiler/block_simplifier.py,sha256=zHHJU2ssQScZNd7_Ccxla6xe3hT_5K7iuYeA3aNyxCA,16476
95
+ angr/analyses/decompiler/block_simplifier.py,sha256=X5kO97A1bEwSUfbwgj1cSO56qkhwPQZnIFi1DKMZQoo,17199
95
96
  angr/analyses/decompiler/call_counter.py,sha256=V3TIaSvLUy9vLEWErnvlCS--_ubGWQAeU0tqq6XYeOU,1205
96
97
  angr/analyses/decompiler/callsite_maker.py,sha256=B2lajS20_cTDWvUc-Py-2rP6UybNLd-qAjkuDJMIlX8,14938
97
- angr/analyses/decompiler/clinic.py,sha256=5l8QbXdI3UPah0uhiyZrwQCR4hNraMqvXm3YPhJjJQA,72021
98
+ angr/analyses/decompiler/clinic.py,sha256=F2mcZKD0xuEFFXxQAlVQ8dnOTAP-YVCPW8pFeq8YwEo,72531
98
99
  angr/analyses/decompiler/condition_processor.py,sha256=ts7-dM1ckqDRh28Vv3YhKhNYUHdsavJah4Ta3_tb-uo,48658
99
100
  angr/analyses/decompiler/decompilation_cache.py,sha256=NveTVs6IY3TTdgsLvTb3ktftM4n0NrAJIkqjXqQ3550,1119
100
101
  angr/analyses/decompiler/decompilation_options.py,sha256=EtLBv9XG3chXmceT3irru3K7jJhguv8JilWYCHdTWyQ,7668
@@ -110,20 +111,20 @@ angr/analyses/decompiler/redundant_label_remover.py,sha256=kDGGFWWV61I5fbASiTQTH
110
111
  angr/analyses/decompiler/region_identifier.py,sha256=SQEhgXy5nHkQl6WRDTLZTtbRhxkXzT1IiBCzvP1K-p8,44389
111
112
  angr/analyses/decompiler/region_walker.py,sha256=lTfweYbY4_a2f2yGztTKG6JtU1jXf-kaz-NHbX9nkXE,717
112
113
  angr/analyses/decompiler/sequence_walker.py,sha256=mw4RG-Act5_no_RyQcsxWZwva-n7FdH2a7w_uItGUpI,8428
113
- angr/analyses/decompiler/utils.py,sha256=UH-9xmrI7MCBVmzQUm3U7qztqP-7AH8xuDZOeGF8hXI,19535
114
+ angr/analyses/decompiler/utils.py,sha256=jzODnWygARpEdPLBRfgcWzEjsYS6X5W-aa_-tSODj7k,24386
114
115
  angr/analyses/decompiler/ccall_rewriters/__init__.py,sha256=wbWqZ8xG6ZvzEApkAwMsNQFC-iwF3swG1YJsaf1cIrQ,102
115
116
  angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py,sha256=PjfduEkFVcSBKUfGouVM5dekA4kO4OBUses58ewJnCk,20488
116
117
  angr/analyses/decompiler/ccall_rewriters/rewriter_base.py,sha256=gWezEKB7A_YnlfUDs8V8D5syoYAyIXSIme1BKQRoouM,498
117
- angr/analyses/decompiler/optimization_passes/__init__.py,sha256=x2T9gR0OHaAupuAwhKIVf8zYdQxF1BOdkF2WeZx1CQY,2729
118
+ angr/analyses/decompiler/optimization_passes/__init__.py,sha256=inyWh1QXeFfA9JBnFsK6E-3PrCBTKuNJT8O_70Pz2KE,2794
118
119
  angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=bjpEMW-Lqj5XW9NWUikGPcRn5scKNc8VvEjVMXxAuq8,5289
119
120
  angr/analyses/decompiler/optimization_passes/const_derefs.py,sha256=FEoiprXxns-3S0nFaIWm2DBW_aDMq3GZ-VOG3CIqcMw,10593
120
121
  angr/analyses/decompiler/optimization_passes/div_simplifier.py,sha256=1yTI1mmFHBMxADbrKxk9IAf3TpuNCaTLVQqWveyIx1I,17364
121
122
  angr/analyses/decompiler/optimization_passes/eager_returns.py,sha256=rSIjiTf1IzeplmACjAH99ZqebXUeJvvP_jHHmKLoMXk,11250
122
- angr/analyses/decompiler/optimization_passes/engine_base.py,sha256=Q920CTvgxX4ueuRJVNvN30SYC-oH5_TreKVgQ2yJcq4,10392
123
+ angr/analyses/decompiler/optimization_passes/engine_base.py,sha256=7nnNZkVMqvikHCy9X11M8KLWbL8lF0DoLYPemETWP4c,10388
123
124
  angr/analyses/decompiler/optimization_passes/expr_op_swapper.py,sha256=vlPhWDyvuEmbGcd1ka8rS68F72Ty6Hw3J00KM3tWCus,4701
124
125
  angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py,sha256=DjkPSAI9Z_X6YXW3Emzc1s3CzIvh45HDhBihh63UuIw,3448
125
126
  angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=-6znFCAXS7Z3cn5CTqr3mg4r1G_jJgDFJHk2PzMVwtE,7756
126
- angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=rZauCx835hRDr8OQBb45oSLqnikiEIcrkEA0bY4qpzE,6689
127
+ angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=l571GUDoCt4hZ2RHBNVUraLl-ODmP_kb11bLKwbCIB0,6762
127
128
  angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=MQNtGU8paXdhTcfvYvBeTplX-htqs0WI6o-72me8fmg,34328
128
129
  angr/analyses/decompiler/optimization_passes/mod_simplifier.py,sha256=A9pPly7otXJlLkSbItU0wvjGGu6rUsNpcFw3bzy4DjY,3046
129
130
  angr/analyses/decompiler/optimization_passes/multi_simplifier.py,sha256=Ez7ye4j2VUfELxRPkNQQIY-gF9Q9SkTZxH5jt301Rx8,10968
@@ -132,9 +133,9 @@ angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py,sh
132
133
  angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py,sha256=_sTaGMQMFa5ATQIvNyL05UK8gCi_SaOckrZKyHZ2vfs,6470
133
134
  angr/analyses/decompiler/optimization_passes/ret_deduplicator.py,sha256=CAOGRra4PB-FCjTxQs2e-lEQ6z_CMvHsrubpbyahv0M,7797
134
135
  angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py,sha256=diqUO-k1hq9OzuC7OLMyJJODhy3i1c5Tb7d9f7lx6mU,12147
135
- angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=F-X7Ww40BXDlnj7Ja2SjY6-u7hLubxMkjMOIwX45j50,8779
136
+ angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=BRl9s9DzEMSKugR7-N5OBukyNcoN2Y_vWbziXqF4nmE,13231
136
137
  angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py,sha256=lwLc9QpOCTdSIb-0SK0hdxi2gzpABTk2kzdwBY20UOo,2980
137
- angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=0nu8k34LJeFCUeh08QiUIcey8icL_LXIwrSl-bdS1CU,2800
138
+ angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=pe_zErF540hOybDNC0ij9B3ASQOck9PYNa64hzSEp3U,3208
138
139
  angr/analyses/decompiler/peephole_optimizations/a_div_const_add_a_mul_n_div_const.py,sha256=Whptbt1qujPPRsNX8kJaobHTwgvym7SPu-tC2wBynBs,1727
139
140
  angr/analyses/decompiler/peephole_optimizations/a_mul_const_div_shr_const.py,sha256=xuLPEVN1QdQT_5U9K4-WIdVdHTogCBOmJPWlnDW8Cz8,1365
140
141
  angr/analyses/decompiler/peephole_optimizations/a_shl_const_sub_a.py,sha256=tEr_XcYoOXcFm5paY_CEzgSOjrksz20utMZa6smF9TU,988
@@ -142,7 +143,7 @@ angr/analyses/decompiler/peephole_optimizations/a_sub_a_div.py,sha256=ocLn_4eLty
142
143
  angr/analyses/decompiler/peephole_optimizations/a_sub_a_div_const_mul_const.py,sha256=gvPg4KkQcammW4sviu272RLf7S0ASmcYfa5GAXGQX30,2050
143
144
  angr/analyses/decompiler/peephole_optimizations/a_sub_a_sub_n.py,sha256=KajKgL00mHXpEZewbwKgnZKLbZTnSB00-CGbed12uNU,619
144
145
  angr/analyses/decompiler/peephole_optimizations/arm_cmpf.py,sha256=ShdDtwrhqxUzPW2MwM98xufHo7OSL8GfNYQQCGYXrVQ,9333
145
- angr/analyses/decompiler/peephole_optimizations/base.py,sha256=lpcTqDJSHz4lWlolrATHG3PBWrWj9oy9XeneHSgc48A,2676
146
+ angr/analyses/decompiler/peephole_optimizations/base.py,sha256=os9bEPHDm2p5EA4h5eoA7Uso2nAjBYySwJ9gjp5p44Q,3538
146
147
  angr/analyses/decompiler/peephole_optimizations/basepointeroffset_add_n.py,sha256=OzchLk1a0CV2ggHm6-TLpa6f_b7fj7K3Z3l6gFCUEJc,1056
147
148
  angr/analyses/decompiler/peephole_optimizations/basepointeroffset_and_mask.py,sha256=eiUgxcBVAL6PiI3ZuR6xZMNrWGDHKXO6SZSjUbM_BVw,1065
148
149
  angr/analyses/decompiler/peephole_optimizations/bitwise_or_to_logical_or.py,sha256=oocs8xmntUNzI7UUG8UFPCDheda3xAb99REPAkD7ins,1298
@@ -150,11 +151,13 @@ angr/analyses/decompiler/peephole_optimizations/bool_expr_xor_1.py,sha256=QANf71
150
151
  angr/analyses/decompiler/peephole_optimizations/bswap.py,sha256=Nrdf5f47NduOc59CjmQbmsVmys1e79HxniPExdd3NRg,3663
151
152
  angr/analyses/decompiler/peephole_optimizations/coalesce_same_cascading_ifs.py,sha256=9ogHTcP4vhFfwDzxccnjfhkizKGvM_7tK3y6PqyG5Hg,1020
152
153
  angr/analyses/decompiler/peephole_optimizations/const_mull_a_shift.py,sha256=KLdhgU_e1OglEeC7IHipql9UzYpatJc0LydXJJIakL4,3691
153
- angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=JksMps_XeJGGtM2qlqIDRzUsEOOhUCn3D8aPx4bPClg,998
154
+ angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=SjSE3kTrPYPjsoY_pW3nZPk9IXrJwNR4lfQ9nV-QVKg,984
154
155
  angr/analyses/decompiler/peephole_optimizations/conv_a_sub0_shr_and.py,sha256=vzROAUvKUrQQmwUXJ-0WyFr1v5f8EPBgjeXIpWhtDak,2578
155
156
  angr/analyses/decompiler/peephole_optimizations/conv_shl_shr.py,sha256=0IHIk7uxIC70140k3VcXlnx4QcunAeoETXF1ZgJi2Pk,2070
156
157
  angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=9FXjKuBWC2oDo3tPkNOhiSOD0C_P7vA83DAp7qJfnIU,8684
157
158
  angr/analyses/decompiler/peephole_optimizations/extended_byte_and_mask.py,sha256=ymP9tDU4NipGOdFWsmLHrR6dKVcEFiaTgM1-L_dfmOM,2015
159
+ angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py,sha256=x8ZS-ThnUiJPBacRFpOZ3gBqixamrHSCCZSR-L5jyC8,2601
160
+ angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py,sha256=vrXAaYKT99LJK5BLKlyQ7xtzQx6hIujqTAv0-Ur1CWo,4676
158
161
  angr/analyses/decompiler/peephole_optimizations/invert_negated_logical_conjuction_disjunction.py,sha256=a0IDp0kKBrPwhDVejPFhcNseZdprF_5EZRZs7KTR4gA,2084
159
162
  angr/analyses/decompiler/peephole_optimizations/one_sub_bool.py,sha256=kW8AbWfMqFzI1CVFp79TFX60IZxaQhRG8XUckuc-vGI,1136
160
163
  angr/analyses/decompiler/peephole_optimizations/remove_cascading_conversions.py,sha256=3a1ZoTq66HTU68y5DCC2sLvItPmqF_Kv05uvOacxsRM,591
@@ -190,7 +193,7 @@ angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py,sha256=
190
193
  angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py,sha256=HGIiC6c3C91VfcqxUHe9aTsRohwmMXOHZH_G_dbwwx4,3327
191
194
  angr/analyses/decompiler/structured_codegen/__init__.py,sha256=Glc4jBCr7lZckltN9XZdSvMrGHf0swXFyKTr_QQKdWE,290
192
195
  angr/analyses/decompiler/structured_codegen/base.py,sha256=nJPOoeJCbewchYdXjSE4S2b1-WN6pT3TxmCQMDO0azw,3845
193
- angr/analyses/decompiler/structured_codegen/c.py,sha256=q0HM-IesR-S9SJ6eAXeMzT0Kaa8ejZ7kvbjQ-cDsMLg,128216
196
+ angr/analyses/decompiler/structured_codegen/c.py,sha256=rJyXVUmXuzFA10jfiewfINB5WfisUIadhqje-kXTz40,128736
194
197
  angr/analyses/decompiler/structured_codegen/dummy.py,sha256=IVfmtcWpTgNCRVsuW3GdQgDnuPmvodX85V0bBYtF_BI,535
195
198
  angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=TMz65TkF_ID_Ipocj0aFDb84H6slolN90wq0tzhY2Rk,6773
196
199
  angr/analyses/decompiler/structuring/__init__.py,sha256=eSiT6xUpv9K5-enK3OZj2lNzxwowS9_5OTrjHiPgfFs,371
@@ -239,7 +242,7 @@ angr/analyses/identifier/functions/strncmp.py,sha256=XlqTTLjfPRj7LSw3-xHoH4SJyNi
239
242
  angr/analyses/identifier/functions/strncpy.py,sha256=1WUrhXMS5Sd5rfgBJbChZD_BZ_D47Z_H4AZwriyqDO0,2008
240
243
  angr/analyses/identifier/functions/strtol.py,sha256=Py_6Y9rR5dfy53LX8w9WktSBaxdyPlbrcLEiV6cWfHs,2426
241
244
  angr/analyses/propagator/__init__.py,sha256=5-UKSiAtYocLzmQWXPzxyBnPui_c8P_r617KDwtRnNw,43
242
- angr/analyses/propagator/engine_ail.py,sha256=nsCyRYXZpph1_jcTIxit7Ymyr6Rk-Yz4hfEr9OVgK3A,61973
245
+ angr/analyses/propagator/engine_ail.py,sha256=VOZstY-jD0-EGnWWqjZZw51o9vdkJd9LinPe3rGu1uw,62429
243
246
  angr/analyses/propagator/engine_base.py,sha256=0j5NzJ9jArF4KeysBeiPoo_RKyCvlgn-i3inSZt1cyc,1735
244
247
  angr/analyses/propagator/engine_vex.py,sha256=HPzS5CXLdFHoKM7_nulgqguwZCyv3Iaut2avsi6cvkM,10132
245
248
  angr/analyses/propagator/outdated_definition_walker.py,sha256=OJnI9rlyutyy2qHMTqnrnQJCXKcBHvgwHfiqlWDECiY,6890
@@ -269,9 +272,9 @@ angr/analyses/typehoon/typehoon.py,sha256=W9wvVe2F4vAJ_EGmxQg74AZsRu18mUf82fRYZ5
269
272
  angr/analyses/typehoon/typevars.py,sha256=qLNOOo50rAs9E8IXwVB8JCEiC30SskJjQUkDp_Tpp-o,13349
270
273
  angr/analyses/variable_recovery/__init__.py,sha256=j2SZyfzCAagqNTj0IcYJtOx4b3oAvhEY9GR3hb0bx4o,105
271
274
  angr/analyses/variable_recovery/annotations.py,sha256=eAifcWVmb1xUmEGtpiy8PzIupSuZtmEDEiUav-3_z20,1403
272
- angr/analyses/variable_recovery/engine_ail.py,sha256=Om4qlh5_g-SQUz_o0ipEfSMBQOoL898XWVciXpgaUCo,23076
275
+ angr/analyses/variable_recovery/engine_ail.py,sha256=OM5akKVKp3YzAKg0CAlYe4M18kniz78-yJA2wQfMlN4,23135
273
276
  angr/analyses/variable_recovery/engine_base.py,sha256=LxUV7LtQWkEkPIVF8WokiM28Ui2R68ulNuQ02UUO-_0,40263
274
- angr/analyses/variable_recovery/engine_vex.py,sha256=aIoZaMXxapwiFi8YY0yKQNpHV-YoazDF03p23l9Ofao,18858
277
+ angr/analyses/variable_recovery/engine_vex.py,sha256=oDmUaawW8sKJmbtHadubJmiuYuFeORn0Q-BTRG-rUTA,19046
275
278
  angr/analyses/variable_recovery/irsb_scanner.py,sha256=3lUK_jfJCVEZQ0QvhwsmgCn2RAIj_0FDDn8ftggubjA,4701
276
279
  angr/analyses/variable_recovery/variable_recovery.py,sha256=F7dOWJVdV2kE1jjIyqEDgp0bZ03_cReEeHSPKPnhI1s,21802
277
280
  angr/analyses/variable_recovery/variable_recovery_base.py,sha256=dMRqvsLmISDENaSZ1jIwkNWbHo5rOxrPXrnyWjVz0T8,14418
@@ -418,9 +421,10 @@ angr/flirt/__init__.py,sha256=UTjDOlVPnvb5u1zYOvSrI_8F-RllvA_rWCEF1XGEswk,4428
418
421
  angr/flirt/build_sig.py,sha256=QnBVAjmBms6GiDK1v13dNE-YQ2i95qazDh0lYX5nKEs,10109
419
422
  angr/knowledge_base/__init__.py,sha256=G2QiJKD3Q1dgpSjaHwZi0FMDRI8aeu2x2Lyn9FSgS54,42
420
423
  angr/knowledge_base/knowledge_base.py,sha256=V_RDvf-VOizrB9a-FYrsuYd_bAfyPoEhxAKmZb1Z2Gc,4623
421
- angr/knowledge_plugins/__init__.py,sha256=4I2Xws0q8PNLPWYm5tMpg4TMbAIf4uEBEowQMApistA,655
424
+ angr/knowledge_plugins/__init__.py,sha256=UIjrxZHnr-EaYe5tSNQ1DVE6yRJtMlJzNXGLK6ARPhw,697
422
425
  angr/knowledge_plugins/callsite_prototypes.py,sha256=nEJhJxuH_xivJRcRsFbeQ0KJuncHShfwk9WhChcMScA,1614
423
426
  angr/knowledge_plugins/comments.py,sha256=Zc8_5Y7ThGsVetdfLeI7OQSrKjmu9tSkzq_qQMcDDjE,315
427
+ angr/knowledge_plugins/custom_strings.py,sha256=5uy6QZb40BNkLlttpgTflTQj_mPUt6v2iFSiHBns69c,1044
424
428
  angr/knowledge_plugins/data.py,sha256=iKviVL-_lqqdw_7YECDpoSmrtUSj6oKfbCYVu40T6kE,260
425
429
  angr/knowledge_plugins/debug_variables.py,sha256=N3vltNKykTsuQ3zVvxHz00Y_0_UvjZuIL47FhBrP0Kk,8223
426
430
  angr/knowledge_plugins/indirect_jumps.py,sha256=puJnKhp11eRDNZ-swEXKtZk04DJ48uM1F8gBiz5xbAs,971
@@ -435,7 +439,7 @@ angr/knowledge_plugins/cfg/cfg_node.py,sha256=Q_qqQ1LisCzTWROOQAfvyaBjS86zxcMw6I
435
439
  angr/knowledge_plugins/cfg/indirect_jump.py,sha256=yzPf1jjUNPgGP7D7IamqX6KF-EJX-heZjDEr4SRUWDA,2145
436
440
  angr/knowledge_plugins/cfg/memory_data.py,sha256=FzRUFltXrN0G3OeMZEbb3xc7I-W8AaomtCTSXUQlJ0g,5040
437
441
  angr/knowledge_plugins/functions/__init__.py,sha256=6IerJjMKKvM70mcJQhmXJYiipePOQ9ZSTmavTIUgg5Q,77
438
- angr/knowledge_plugins/functions/function.py,sha256=jYL0epwue-6S0t-O69DH0iihpMkrq8B1FuBrpYwUyVE,65274
442
+ angr/knowledge_plugins/functions/function.py,sha256=NyAznn7LnJ9QIIANsEdpjJS8hwG955ve4YHtiznpK6A,65399
439
443
  angr/knowledge_plugins/functions/function_manager.py,sha256=Nbk97zc3GCW6BzpMdZha7e8zhCOH9lD3Avw1XYZV778,17558
440
444
  angr/knowledge_plugins/functions/function_parser.py,sha256=cb_AD5oFqoyXapDBawnJV1D9XVRMBGa9GwwDudNSc3M,11916
441
445
  angr/knowledge_plugins/functions/soot_function.py,sha256=2zwz_tdKbEnF8eUkOEmpNr7AUeooun2-SiIoY_xIdMw,4971
@@ -446,7 +450,7 @@ angr/knowledge_plugins/key_definitions/definition.py,sha256=Mwn2R5AAAi85L2y61Ext
446
450
  angr/knowledge_plugins/key_definitions/environment.py,sha256=cbNst29pGtv13Z6jlvdBIajYkE3X9MnAV5ixRTHkHzQ,3461
447
451
  angr/knowledge_plugins/key_definitions/heap_address.py,sha256=62vX5xkT91qO-6IKtGtGNUqgkfFUU1_Al6B9vU-SA7E,922
448
452
  angr/knowledge_plugins/key_definitions/key_definition_manager.py,sha256=PETOIDYYj7VPp2rtIO5XhXnvi3lgDr9qXa4pZrwbCho,3235
449
- angr/knowledge_plugins/key_definitions/live_definitions.py,sha256=JpaaUAkwQIVC20pONF8ZCIEITvHkMrJVtqJf90z5a6I,39556
453
+ angr/knowledge_plugins/key_definitions/live_definitions.py,sha256=0LCBNANhliZ5fwA2z--cmTaEoUb6lrSlrPscJu_rcW0,39472
450
454
  angr/knowledge_plugins/key_definitions/liveness.py,sha256=6LrvBdxkF-HB93PeEyLfILUuay1YlG6ss7U69OyNf7I,7140
451
455
  angr/knowledge_plugins/key_definitions/rd_model.py,sha256=qx3myk20WmSthpYvcwUbLTAaADNk7-12vfrnDKr_peg,7314
452
456
  angr/knowledge_plugins/key_definitions/tag.py,sha256=uBHlS71E3Ok_6V3K8NkMblctCrnAHmPYikaFTA02PyA,1682
@@ -454,7 +458,7 @@ angr/knowledge_plugins/key_definitions/undefined.py,sha256=dv1fo4jR48tuslsbPZ40Y
454
458
  angr/knowledge_plugins/key_definitions/unknown_size.py,sha256=YwA1DWBE9796BTU8KdY6xIR88IXc2KDUAZuxHEqO710,1510
455
459
  angr/knowledge_plugins/key_definitions/uses.py,sha256=ApcPloldFy5Y9ucl5IK5fo4tbes9SW3Ir8FbH5tzb24,6620
456
460
  angr/knowledge_plugins/propagations/__init__.py,sha256=YOHJ2PMz-egzFMA2H0eKa5FDMadJcp5DSdncVwQxv84,100
457
- angr/knowledge_plugins/propagations/prop_value.py,sha256=COX-itMQN8ob5ZLdG199ZhIHj9yYgnudhr4skrYaeGY,7527
461
+ angr/knowledge_plugins/propagations/prop_value.py,sha256=pfRYRHb1wEEhrSiSlOzuZDY9ZHeIQZM2yjA3JazPs_8,7706
458
462
  angr/knowledge_plugins/propagations/propagation_manager.py,sha256=5DohQ6GiLmRfA4whx7dsKImBLCajQnLBwKieddf55J0,2112
459
463
  angr/knowledge_plugins/propagations/propagation_model.py,sha256=dcO9dLaEeGl5F3tv-TzEBkdRewh3Iykuo6Bhht_NNHo,2607
460
464
  angr/knowledge_plugins/propagations/states.py,sha256=xF69UXBSKqdpWHt7iw5Q_x_Of7TaXDBv1w5XS1U6BeM,35896
@@ -464,12 +468,12 @@ angr/knowledge_plugins/sync/__init__.py,sha256=RN3y0UhYax-GdPyAhondMXEBuWIu-enHj
464
468
  angr/knowledge_plugins/sync/sync_controller.py,sha256=TipNeYSek6VZCU87SDgBDBTZUBI9iAebGpYE1lJ9YTg,9315
465
469
  angr/knowledge_plugins/variables/__init__.py,sha256=tmh_2i0X6Y41TkEgxHRQ4y-kVEGZnlDIpJZ_wUkCISI,60
466
470
  angr/knowledge_plugins/variables/variable_access.py,sha256=CtstTsBph7RCGoWTFsiaPLDMuXjKQAoQ8lgwVMESisA,3751
467
- angr/knowledge_plugins/variables/variable_manager.py,sha256=7dnwgSsR0V-09cdtBroAEbvyskowdE78g4hwNl_mu3Q,43555
471
+ angr/knowledge_plugins/variables/variable_manager.py,sha256=7yUHE-kRDBFleniP6JIB87bHZQ0syKjvse_qxCRgUig,43560
468
472
  angr/knowledge_plugins/xrefs/__init__.py,sha256=-5A2h048WTRu6Et7q7bqlc-AyBXNuJ9AF9nE9zc3M4I,94
469
473
  angr/knowledge_plugins/xrefs/xref.py,sha256=w4wjDFl4xtJYOtJplp9s1AIX3wI1RE71po3ufh1M4aY,4963
470
474
  angr/knowledge_plugins/xrefs/xref_manager.py,sha256=GYF9N1t4JxkDNGAwrVLo4_NF51P4gqiuQ21F0IbloF0,4026
471
475
  angr/knowledge_plugins/xrefs/xref_types.py,sha256=VR3xLQQ-gUg25oX0OL3BJHyQRlZh2A8syBac9ZMS9n4,271
472
- angr/lib/angr_native.dll,sha256=LwLNPTu-0iyDu3TSs2N64mNTYMKrvJr2JaRvODVeFa8,19209728
476
+ angr/lib/angr_native.dll,sha256=wNtDTQv01n7sYKMAYCufrdKLyTZyoryGhAPUwdKyW8Y,19209728
473
477
  angr/misc/__init__.py,sha256=Ct-Q6-c-Frdz5Ihkqmou3j_1jyJi8WJXlQxs-gPQg0Y,237
474
478
  angr/misc/ansi.py,sha256=TKrx7d_MViChHh5RBR2VLufNrujTUioJWsZS5ugk8k4,807
475
479
  angr/misc/autoimport.py,sha256=6WT-Z6wf5NiacQhKZmR4d2bPOvNrokA7Wg0g2MUXSuw,2371
@@ -1129,6 +1133,7 @@ angr/storage/file.py,sha256=S55K2p9s1IHtmbpR5iUF3V5HorSgBiiHWnFdtSmjZfU,48219
1129
1133
  angr/storage/memory_object.py,sha256=U0T-XB7CxUqISODY6o2WONjiThHyzFKBjZ8D0pWLPj4,5663
1130
1134
  angr/storage/pcap.py,sha256=8n30ui0KO7qx_RgmGFL_cBYMF5AlQ5LzVFeCh9ODU6c,1940
1131
1135
  angr/storage/memory_mixins/__init__.py,sha256=vblWOZgrDQ1j5_BaSGrS2wseBdp73HO295_WH6Sd-ZU,11881
1136
+ angr/storage/memory_mixins/__init__.pyi,sha256=7jA-O5r8efBzQWZa9q-5xs6HY-rYPSlgo2_42CRUYqQ,1944
1132
1137
  angr/storage/memory_mixins/actions_mixin.py,sha256=KZSCMjGB_Sbk_rlgGxk4k02Pu3b569c6tG-xPoH31L0,3402
1133
1138
  angr/storage/memory_mixins/address_concretization_mixin.py,sha256=6VJ4Gg3NecygagBlNe5jrGgSmCJmfh53nnxwzIwjO0k,16569
1134
1139
  angr/storage/memory_mixins/bvv_conversion_mixin.py,sha256=XT2ICXERaSHypiaAFf2jd8V3lh_5mZQvmT55ziipss0,2901
@@ -1165,7 +1170,7 @@ angr/storage/memory_mixins/paged_memory/pages/cooperation.py,sha256=pz7HEzWkNeti
1165
1170
  angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py,sha256=Az7lg1gXapWxj8tIx0Sz9x2nJfm71oBy5Rm87CUh9mM,2727
1166
1171
  angr/storage/memory_mixins/paged_memory/pages/ispo_mixin.py,sha256=mHt5nQYXkXifwGT0_UGvKirECEC2v7jNNtf_6oY57uI,2050
1167
1172
  angr/storage/memory_mixins/paged_memory/pages/list_page.py,sha256=ey-c8PLa_iH5gyz6VRcxtK1I9w8JbIrvkFO1Hj9V8L8,14108
1168
- angr/storage/memory_mixins/paged_memory/pages/multi_values.py,sha256=tznbAA7sPWpebCNW16jm_UiCXEf9JqkGUhRXQPkOKv8,11246
1173
+ angr/storage/memory_mixins/paged_memory/pages/multi_values.py,sha256=r9vweVUesydBOMtqEJmsN6UF0EfecnOTW4Riax52Ljg,11398
1169
1174
  angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py,sha256=YM29YEUXitJRU1aVV63PPOGV-oiLRrJO7N6rFcPvXOc,15981
1170
1175
  angr/storage/memory_mixins/paged_memory/pages/permissions_mixin.py,sha256=Ek2YSmFOGUScFXPx8hqroNkl3gK1aqKCMv_X3_pImLs,830
1171
1176
  angr/storage/memory_mixins/paged_memory/pages/refcount_mixin.py,sha256=oES5tahTy4SgyDi2h5oRRC0PC4JHNcIvdAC4INKkeJw,1701
@@ -1187,7 +1192,7 @@ angr/utils/dynamic_dictlist.py,sha256=80kE4ySWF3dAffUt5qlyUfK6h0A8jOVMMaNG8RNUz7
1187
1192
  angr/utils/enums_conv.py,sha256=YdnZzvuVc_BW1EuC4OtEo7LqB35XkPrXICyWox8Posg,2091
1188
1193
  angr/utils/env.py,sha256=wWlmjLp7CtafKItn7xq2RW3UzGGgxw58Wc8fSm3EZJQ,363
1189
1194
  angr/utils/formatting.py,sha256=QOw75CLSrttGTn2aYQzBFIBhZj40J9ESQZxJOz0BexA,4217
1190
- angr/utils/graph.py,sha256=a1yfkdRE1CDjDXVmTrQ6vBj_QVsPM5TQYHCz9Z82aIo,26776
1195
+ angr/utils/graph.py,sha256=9ZjoTAjeedTMcRT4m9P60WISddlevBDLzQUsE0RETmQ,27639
1191
1196
  angr/utils/lazy_import.py,sha256=VgN0-cMsr6XdGIq56Js1X8YecfPdW9Z4NrB3d2jD-5Y,308
1192
1197
  angr/utils/library.py,sha256=MYbY6rvC2Fi1ofbBHynh6-cdmaDETxj8hBz1gxKvsQQ,7178
1193
1198
  angr/utils/loader.py,sha256=QdkatPiyRfz5KdfCzRI1Xp3TJL_Pa75wY0dsILgMbwk,1944
@@ -1238,7 +1243,7 @@ tests/analyses/cfg/test_cfg_patching.py,sha256=URD-mO-YQWtzqY2o5p0UDnnvtOZln4Fg0
1238
1243
  tests/analyses/cfg/test_cfg_rust_got_resolution.py,sha256=HCXQT09iJz7kempYuQo30ghptL7LLZtQnnNEPWsA_mw,1112
1239
1244
  tests/analyses/cfg/test_cfg_thumb_firmware.py,sha256=VpZ52hp4L01WmIJoa-j1LVGdRNiBVqjz0TFSEvRa8bI,1767
1240
1245
  tests/analyses/cfg/test_cfg_vex_postprocessor.py,sha256=wVj2LLT2ibo0SsQXbPbOrIFG03Z7nMxpBXZV88wox1o,627
1241
- tests/analyses/cfg/test_cfgemulated.py,sha256=2jDub4L2UaEYOy4dMQSqsLD2RCc_SjVomFECRA-ZVq4,23335
1246
+ tests/analyses/cfg/test_cfgemulated.py,sha256=yf9YSHQibw62Vf1ixu7pb5Uo-2rbhYdcKaEfZn-UkG0,23341
1242
1247
  tests/analyses/cfg/test_cfgfast.py,sha256=oozwFA2j8PeHWqcVgWx9B41QDQprN9foyqTJqNfhSYc,39793
1243
1248
  tests/analyses/cfg/test_cfgfast_soot.py,sha256=oq9P3FH89V5wU5HSwfSOiN2PflevOKHgVFgPWANPz0o,1094
1244
1249
  tests/analyses/cfg/test_const_resolver.py,sha256=GOgiqISS5BC2Ts4gSx1L6id54w2kEHUH4ENvizVT3I0,1178
@@ -1401,12 +1406,13 @@ tests/storage/test_memory.py,sha256=8JRKW7hcPZqBk0yL9YKGrx5lYUDf_8B7137P85eKy8s,
1401
1406
  tests/storage/test_memory_merge.py,sha256=ggw5AUXVs0Rp_--3lYUP2R4ToWPTIjLKDbYSU-OQOck,3804
1402
1407
  tests/storage/test_memview.py,sha256=oWBzfG6iUStd97ZqLvJqcZEg26QmiYPqZsrLE3FmEE4,7236
1403
1408
  tests/storage/test_mmap.py,sha256=v3gmIbVlfdSk80OoGXUxCypRVTi0cyLMFRJVRMX-iFs,549
1404
- tests/storage/test_multivalues.py,sha256=iFneaihDL8OhKcTe5314Y67H2jTCsvW271VY-ERstPo,1044
1409
+ tests/storage/test_multivalues.py,sha256=x82duiIMsU9nE-6vhm-eEsofshKfbVy5d9CNgdC_I1c,1646
1405
1410
  tests/storage/test_permissions.py,sha256=-Gsd1CUO7xZv7NTieiuikm33xfl33MyzIkembL3CuIw,883
1406
1411
  tests/storage/test_ptmalloc.py,sha256=WwORhRoN0SYC8R9aJ_RITbVKlB6JQnLyINTWbT4PidU,10592
1407
1412
  tests/storage/test_relro_perm.py,sha256=gqNbkYfAYr0wM-oSijS3HYi0-cbtplMDCSWQqRCqEb4,1406
1408
- angr-9.2.77.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1409
- angr-9.2.77.dist-info/METADATA,sha256=X_zeIvGtPbiVU5c5nZam888mohf-s-Qq7HykkvIjuDw,4856
1410
- angr-9.2.77.dist-info/WHEEL,sha256=daufdGbLJ8QgaD3d1tPsLa1xxR8oqf4qd0_Ms_reCKM,98
1411
- angr-9.2.77.dist-info/top_level.txt,sha256=EGgw8HjaUI9JWd6w70Tzkn1AcyKTMJTVJ9OpWyaOewk,11
1412
- angr-9.2.77.dist-info/RECORD,,
1413
+ angr-9.2.79.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1414
+ angr-9.2.79.dist-info/METADATA,sha256=LxvGZly4vzhzSGI_nGL-0XEZlf03uAge8ivhIgT3w4A,4856
1415
+ angr-9.2.79.dist-info/WHEEL,sha256=6iYPr8vTHsyDK75jr9X0V3I9wPSVmtwr_8fdATBciGk,98
1416
+ angr-9.2.79.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1417
+ angr-9.2.79.dist-info/top_level.txt,sha256=EGgw8HjaUI9JWd6w70Tzkn1AcyKTMJTVJ9OpWyaOewk,11
1418
+ angr-9.2.79.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.3)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-win_amd64
5
5
 
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ angr = angr.__main__:main
@@ -380,7 +380,7 @@ class TestCfgemulate(unittest.TestCase):
380
380
 
381
381
  string_references = []
382
382
  for f in cfg.functions.values():
383
- string_references.append(f.string_references())
383
+ string_references.append(list(f.string_references()))
384
384
 
385
385
  # test passes if hasn't thrown an exception
386
386
 
@@ -21,6 +21,24 @@ class TestMultiValues(TestCase):
21
21
  assert mv._values[5] == {claripy.BVV(0xCC, 8), claripy.BVV(0x38, 8), claripy.BVV(0, 8)}
22
22
  assert mv._values[6] == {claripy.BVV(1, 16), claripy.BVV(0x1338, 16)}
23
23
 
24
+ def test_multivalues_empty(self):
25
+ mv = MultiValues()
26
+ assert mv._single_value is None
27
+ assert mv._values == {}
28
+ assert len(mv) == 0
29
+
30
+ def test_multivalues_single_value(self):
31
+ v = claripy.BVV(0x1338133813371337, 64)
32
+ mv = MultiValues(v)
33
+ assert mv._single_value is not None
34
+ assert v.concrete_value == mv._single_value.concrete_value
35
+ assert len(mv) == 64
36
+
37
+ mv2 = MultiValues(mv)
38
+ assert mv2._single_value is not None
39
+ assert v.concrete_value == mv2._single_value.concrete_value
40
+ assert len(mv2) == 64
41
+
24
42
 
25
43
  if __name__ == "__main__":
26
44
  main()
File without changes