angr 9.2.124__py3-none-manylinux2014_aarch64.whl → 9.2.125__py3-none-manylinux2014_aarch64.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 (30) hide show
  1. angr/__init__.py +1 -1
  2. angr/analyses/__init__.py +9 -1
  3. angr/analyses/codecave.py +77 -0
  4. angr/analyses/decompiler/clinic.py +31 -1
  5. angr/analyses/decompiler/decompiler.py +4 -0
  6. angr/analyses/decompiler/optimization_passes/__init__.py +3 -0
  7. angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +6 -0
  8. angr/analyses/decompiler/optimization_passes/tag_slicer.py +41 -0
  9. angr/analyses/decompiler/peephole_optimizations/constant_derefs.py +2 -2
  10. angr/analyses/patchfinder.py +137 -0
  11. angr/analyses/pathfinder.py +282 -0
  12. angr/analyses/smc.py +159 -0
  13. angr/angrdb/models.py +1 -2
  14. angr/engines/vex/heavy/heavy.py +2 -0
  15. angr/exploration_techniques/spiller_db.py +1 -2
  16. angr/knowledge_plugins/functions/function.py +4 -0
  17. angr/knowledge_plugins/functions/function_manager.py +18 -9
  18. angr/knowledge_plugins/functions/function_parser.py +1 -1
  19. angr/knowledge_plugins/functions/soot_function.py +1 -0
  20. angr/misc/ux.py +2 -2
  21. angr/project.py +17 -1
  22. angr/state_plugins/history.py +6 -4
  23. angr/utils/bits.py +4 -0
  24. angr/utils/tagged_interval_map.py +112 -0
  25. {angr-9.2.124.dist-info → angr-9.2.125.dist-info}/METADATA +6 -6
  26. {angr-9.2.124.dist-info → angr-9.2.125.dist-info}/RECORD +30 -24
  27. {angr-9.2.124.dist-info → angr-9.2.125.dist-info}/LICENSE +0 -0
  28. {angr-9.2.124.dist-info → angr-9.2.125.dist-info}/WHEEL +0 -0
  29. {angr-9.2.124.dist-info → angr-9.2.125.dist-info}/entry_points.txt +0 -0
  30. {angr-9.2.124.dist-info → angr-9.2.125.dist-info}/top_level.txt +0 -0
@@ -63,9 +63,11 @@ class SimStateHistory(SimStatePlugin):
63
63
  self.successor_ip = None if clone is None else clone.successor_ip
64
64
 
65
65
  self.strongref_state = None if clone is None else clone.strongref_state
66
+ self.arch = None
66
67
 
67
68
  def init_state(self):
68
69
  self.successor_ip = self.state._ip
70
+ self.arch = self.state.arch
69
71
 
70
72
  def __getstate__(self):
71
73
  # flatten ancestry, otherwise we hit recursion errors trying to get the entire history...
@@ -217,7 +219,7 @@ class SimStateHistory(SimStatePlugin):
217
219
  read_offset = None
218
220
  elif isinstance(read_from, str):
219
221
  read_type = "reg"
220
- read_offset = self.state.project.arch.registers[read_from][0]
222
+ read_offset = self.arch.registers[read_from][0]
221
223
  else:
222
224
  read_type = "mem"
223
225
  read_offset = read_from
@@ -227,7 +229,7 @@ class SimStateHistory(SimStatePlugin):
227
229
  write_offset = None
228
230
  elif isinstance(write_to, str):
229
231
  write_type = "reg"
230
- write_offset = self.state.project.arch.registers[write_to][0]
232
+ write_offset = self.arch.registers[write_to][0]
231
233
  else:
232
234
  write_type = "mem"
233
235
  write_offset = write_to
@@ -256,7 +258,7 @@ class SimStateHistory(SimStatePlugin):
256
258
  if isinstance(addr, claripy.ast.Base):
257
259
  if addr.symbolic:
258
260
  return False
259
- addr = self.state.solver.eval(addr)
261
+ addr = addr.concrete_value
260
262
  return addr == read_offset
261
263
 
262
264
  def action_writes(action):
@@ -272,7 +274,7 @@ class SimStateHistory(SimStatePlugin):
272
274
  if isinstance(addr, claripy.ast.Base):
273
275
  if addr.symbolic:
274
276
  return False
275
- addr = self.state.solver.eval(addr)
277
+ addr = addr.concrete_value
276
278
  return addr == write_offset
277
279
 
278
280
  return [
angr/utils/bits.py CHANGED
@@ -10,3 +10,7 @@ def truncate_bits(value: int, nbits: int) -> int:
10
10
  if nbits < 0:
11
11
  raise ValueError("nbits must not be negative")
12
12
  return value & (2**nbits - 1)
13
+
14
+
15
+ def ffs(x: int) -> int:
16
+ return (x & -x).bit_length() - 1
@@ -0,0 +1,112 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Iterator
3
+
4
+ from sortedcontainers import SortedDict
5
+
6
+
7
+ class TaggedIntervalMap:
8
+ """
9
+ Catalogs features of intervals.
10
+ """
11
+
12
+ def __init__(self, nbits: int = 0):
13
+ """
14
+ :param nbits: Number of binning bits. Higher values reduce detail. 0 for no binning.
15
+ """
16
+ self._nbits: int = nbits
17
+ self._map: SortedDict = SortedDict() # SortedDict[int, int]
18
+
19
+ @property
20
+ def nbits(self) -> int:
21
+ return self._nbits
22
+
23
+ def add(self, addr: int, size: int, tags: int) -> None:
24
+ """
25
+ Add interval starting at `addr` of `size` bytes.
26
+
27
+ When binning, intervals endpoints are aligned to 2^nbits. Gaps between added intervals are populated with
28
+ implicit intervals having tag value of 0. Overlapping intervals will have tag bits OR'd together.
29
+
30
+ Adjacent intervals in the interval map have unique tags. When intervals are added to the map, any adjacent stops
31
+ with identical tags will be eliminated so the map retains this property.
32
+
33
+ For example: if an interval(addr=0, size=100, tags=1) is added, followed by (100, 100, 1), the resulting
34
+ interval in the map will be (0, 200, 1).
35
+ """
36
+ assert addr >= 0
37
+ assert size >= 0
38
+ assert tags != 0
39
+
40
+ if size == 0:
41
+ return
42
+
43
+ max_bin_offset = (1 << self._nbits) - 1
44
+ mask = ~max_bin_offset
45
+
46
+ start_addr = addr & mask # Round down to bin alignment
47
+ end_addr = (addr + size + max_bin_offset) & mask # Round up to bin alignment
48
+
49
+ if self._is_already_covered(start_addr, end_addr, tags):
50
+ return
51
+
52
+ self._insert_stop(start_addr)
53
+ self._insert_stop(end_addr)
54
+ for affected_addr in self._map.irange(start_addr, end_addr, inclusive=(True, False)):
55
+ self._map[affected_addr] |= tags
56
+ self._eliminate_extraneous_stops(start_addr, end_addr)
57
+
58
+ def _insert_stop(self, addr: int) -> None:
59
+ """
60
+ Insert a new interval stop point at `addr`, if one is not already present in the map. Tags are copied from
61
+ nearest stop before `addr`.
62
+ """
63
+ if addr not in self._map:
64
+ idx = self._map.bisect(addr) - 1
65
+ self._map[addr] = self._map.peekitem(idx)[1] if idx >= 0 else 0
66
+
67
+ def _is_already_covered(self, min_addr: int, end_addr: int, tags: int) -> bool:
68
+ """
69
+ Determine if interval [min_addr, end_addr) is covered by an existing range with identical tags.
70
+ """
71
+ idx = self._map.bisect(min_addr) - 1
72
+ if idx >= 0 and len(self._map) > idx + 1:
73
+ e_addr, e_tags = self._map.peekitem(idx)
74
+ e_addr_next, _ = self._map.peekitem(idx + 1)
75
+ return (e_addr <= min_addr) and (end_addr <= e_addr_next) and (e_tags == tags)
76
+ return False
77
+
78
+ def _eliminate_extraneous_stops(self, min_addr: int, max_addr: int) -> None:
79
+ """
80
+ Canonicalize the map by eliminating adjacent stops with identical tags both inside and directly outside of
81
+ [min_addr, max_addr].
82
+ """
83
+ keys_to_drop = []
84
+ prev_tags = None
85
+ for addr, _, tags in self.irange(min_addr, max_addr):
86
+ if tags == prev_tags:
87
+ keys_to_drop.append(addr)
88
+ else:
89
+ prev_tags = tags
90
+
91
+ for addr in keys_to_drop:
92
+ del self._map[addr]
93
+
94
+ def irange(self, min_addr: int | None = None, max_addr: int | None = None) -> Iterator[tuple[int, int, int]]:
95
+ """
96
+ Iterate over intervals intersecting [min_addr, max_addr], yielding interval (addr, size, tags) tuples. Implicit
97
+ gap intervals (with tags=0) are also returned.
98
+
99
+ :param min_addr: Minimum address (inclusive) to begin iterating from. If None, iterate from start of map.
100
+ :param max_addr: Maximum address (inclusive) to iterate to. If None, iterate to end of map.
101
+ """
102
+ if not self._map:
103
+ return
104
+
105
+ start_idx = 0 if min_addr is None else max(0, self._map.bisect_left(min_addr) - 1)
106
+ stop_idx = None if max_addr is None else (self._map.bisect(max_addr) + 1)
107
+
108
+ start_addr, tags = self._map.peekitem(start_idx)
109
+ for addr in self._map.islice(start_idx + 1, stop_idx):
110
+ yield (start_addr, addr - start_addr, tags)
111
+ tags = self._map[addr]
112
+ start_addr = addr
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: angr
3
- Version: 9.2.124
3
+ Version: 9.2.125
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
@@ -16,13 +16,13 @@ Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
17
  Requires-Dist: CppHeaderParser
18
18
  Requires-Dist: GitPython
19
- Requires-Dist: ailment==9.2.124
20
- Requires-Dist: archinfo==9.2.124
19
+ Requires-Dist: ailment==9.2.125
20
+ Requires-Dist: archinfo==9.2.125
21
21
  Requires-Dist: cachetools
22
22
  Requires-Dist: capstone==5.0.3
23
23
  Requires-Dist: cffi>=1.14.0
24
- Requires-Dist: claripy==9.2.124
25
- Requires-Dist: cle==9.2.124
24
+ Requires-Dist: claripy==9.2.125
25
+ Requires-Dist: cle==9.2.125
26
26
  Requires-Dist: itanium-demangler
27
27
  Requires-Dist: mulpyplexer
28
28
  Requires-Dist: nampa
@@ -31,7 +31,7 @@ Requires-Dist: protobuf>=5.28.2
31
31
  Requires-Dist: psutil
32
32
  Requires-Dist: pycparser>=2.18
33
33
  Requires-Dist: pyformlang
34
- Requires-Dist: pyvex==9.2.124
34
+ Requires-Dist: pyvex==9.2.125
35
35
  Requires-Dist: rich>=13.1.0
36
36
  Requires-Dist: sortedcontainers
37
37
  Requires-Dist: sympy
@@ -1,4 +1,4 @@
1
- angr/__init__.py,sha256=LP2q5oYZ83AH1Es8f-vhT-XMCgT_HqDb_S7z8EdaSNI,9153
1
+ angr/__init__.py,sha256=ab5YAbhAR88Lsps_7vgmcRJcuo3Db9vUr2t8f7jR7P8,9153
2
2
  angr/__main__.py,sha256=XeawhF6Cco9eWcfMTDWzYYggLB3qjnQ87IIeFOplaHM,2873
3
3
  angr/annocfg.py,sha256=5fiS9TPt5r1_8g_qSfD2XkETlBdm5MTClBIQKqhm040,10624
4
4
  angr/blade.py,sha256=GpbEumxMsb_6qD7TbtfZuW2CMzV7W1iwqYzQWYlXnxM,15394
@@ -12,7 +12,7 @@ angr/factory.py,sha256=YMieuzZk70g96BcqgUT0vZxemDlQh0WvjzoxZgduZj0,17453
12
12
  angr/graph_utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  angr/keyed_region.py,sha256=bi4xQYh3Is4t5LuFykgVDaaPpko0s4kEmDUEsGsJuPM,17992
14
14
  angr/knowledge_base.py,sha256=rpQTkiIKpbjkJTaIaPf-L7ylwiGeM95VTGnUsTg9pOs,4538
15
- angr/project.py,sha256=3oUXEEBOZgQF81LgDNMr8E9ihcMEVmb0jyKqksSwXWA,37119
15
+ angr/project.py,sha256=TQUXF1qyKpYjAs0gY2abwwhSwxLj67IeHlwQC-9ylcY,37535
16
16
  angr/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
17
17
  angr/serializable.py,sha256=l908phj_KcqopEEL_oCufbP_H6cm3Wc9v-5xdux1-6g,1533
18
18
  angr/sim_manager.py,sha256=mrmtD9CZR3w6BwYhbmRLfObBh3Gtz5goBOy4_rWSqfQ,39406
@@ -26,7 +26,7 @@ angr/slicer.py,sha256=74ujgNMKcEIHM8lqal69Cbls07yCxpxvi-jUYeScfaU,10668
26
26
  angr/state_hierarchy.py,sha256=qDQCUGXmQm3vOxE3CSoiqTH4OAFFOWZZt9BLhNpeOhA,8484
27
27
  angr/tablespecs.py,sha256=Kx1e87FxTx3_ZN7cAHWZSRpdInT4Vfj5gExAWtLkLTw,3259
28
28
  angr/vaults.py,sha256=v_RBKEGN2wkyOoskC_akKSlawcRtMicukKh1O1hxrJk,9719
29
- angr/analyses/__init__.py,sha256=jipIm_HhzMFYr_mtI1OaRUStb-hYW7wS0AKYAVKslC0,3060
29
+ angr/analyses/__init__.py,sha256=H8PBIRQoIY3RPRYSdYMA21WGy0Hlka6uoVLsRwFoCLs,3326
30
30
  angr/analyses/analysis.py,sha256=ggR1xFe0HSpLhkqiJtmzm8qmS5H-7xZDwhYf4IyBNf8,14551
31
31
  angr/analyses/backward_slice.py,sha256=pLMeo7Y2niifNmtfIzMbQDlRy_w5GbKi1sYa0XVhPBA,27228
32
32
  angr/analyses/binary_optimizer.py,sha256=JqKfOXx5FiWsYdQ6JMWYivfB2AiNl2Pw8Utk8kPEVrk,26186
@@ -37,6 +37,7 @@ angr/analyses/calling_convention.py,sha256=rXBOiLcS4QLt58dKAHPGTFCX9wrx7t998rI4E
37
37
  angr/analyses/cdg.py,sha256=oPgHV4MVpGkfRUE0ZiaghBSkgTsr6tkG1IK4f_GtOBA,6230
38
38
  angr/analyses/class_identifier.py,sha256=bytFQ0c7KuQhbYPPJDkhtV0ZU_Xo8_9KLZxHe9TtyMs,3010
39
39
  angr/analyses/code_tagging.py,sha256=Gj7Ms24RnmhC9OD57gw7R6_c-pLfqSug-LVUMw_JmXE,3510
40
+ angr/analyses/codecave.py,sha256=k_dDhMN4wcq2bs5VrwpOv96OowQ7AbZSs6j5Z6YbIpk,2209
40
41
  angr/analyses/complete_calling_conventions.py,sha256=rwsVfq0TUOx-YW2RtbeXajAreBEfs9QDyQAE51PnEfo,18279
41
42
  angr/analyses/congruency_check.py,sha256=SRlUKJaylCQydWsb4AGG8LUGuh5RwI8ksKZL6jf-4P8,16166
42
43
  angr/analyses/datagraph_meta.py,sha256=PnxBQSFDAeZHfUnAaAJO2s89oSBn1AM5e_0ljMURMRM,3418
@@ -49,10 +50,13 @@ angr/analyses/flirt.py,sha256=cly_6Xodsgmf5gEagYBH5HXdjhKaY2HwyUW7porEzU8,7798
49
50
  angr/analyses/init_finder.py,sha256=HC9bGZA4VxbafTMbofSWgJW7ZFPXJzZUu0pU0n9XQvQ,8531
50
51
  angr/analyses/loop_analysis.py,sha256=ssrXeNsMNNwjARKy5VF34ymUfCvqCNYGLp_m-5zvAyU,9311
51
52
  angr/analyses/loopfinder.py,sha256=C9Vo-Lv4a0SL7xbfzlWt9nFbv6tOjaEHgY1cW3M2Nyg,7035
53
+ angr/analyses/patchfinder.py,sha256=i0TJmBwNlFKJYpG04YpU6yFBdZlNAuzj3VwM28jfnW0,5045
54
+ angr/analyses/pathfinder.py,sha256=_prNqmRUSuSt2ZCP8qbvNN7pw7mtM8pWr9IL0AO6XL8,11496
52
55
  angr/analyses/proximity_graph.py,sha256=-g7pNpbP2HQhKW3w1Eff23K8vAsgWWYoe3wVxRh3Lhk,16066
53
56
  angr/analyses/reassembler.py,sha256=y41XIGWqCVvwFlE3uACEMFLR-vByKkOazC405UPCOpM,98524
54
57
  angr/analyses/s_liveness.py,sha256=YI-N62--Wo8B4yB5lvUi4mFBNqxwRxYq-p3zXR4qFNs,5213
55
58
  angr/analyses/s_propagator.py,sha256=vmOnkwrBQTvh3WJbAXY7R4imAW_AKzYoeRM311oXVsA,11311
59
+ angr/analyses/smc.py,sha256=0fvLPUpjlg6GCjYnfSqanXkGYlthmPwqMYR-ZYBHsbo,5075
56
60
  angr/analyses/soot_class_hierarchy.py,sha256=AtvXMAlz6CVvfbtkPY4ghouH_1mNnPg9s9jFhZwWvEw,8741
57
61
  angr/analyses/stack_pointer_tracker.py,sha256=5NZf4muUFIJX-F605n5LMw8ihA648-FA4Bm5mAcsHBE,31379
58
62
  angr/analyses/static_hooker.py,sha256=lSVOZWiLl3fArz41fEbPMPvdsmlo40BeOeaVmeDxFow,1765
@@ -98,11 +102,11 @@ angr/analyses/decompiler/block_io_finder.py,sha256=xMwG8Bi69OGNYVs0U0F4yxM8kEsny
98
102
  angr/analyses/decompiler/block_similarity.py,sha256=ISMoOm-TGJ_1wD2i_4m8IYTletgnP66gReQESJnfvS0,6873
99
103
  angr/analyses/decompiler/block_simplifier.py,sha256=_WYyfFW8bJ_-RkrudJIlDdHh9fc6_aHkuwzW9gylY-k,13922
100
104
  angr/analyses/decompiler/callsite_maker.py,sha256=BcXjx58pC5GyveGdyLIICMhC9pzG4uKcVak5OkR_iIU,18491
101
- angr/analyses/decompiler/clinic.py,sha256=MaHsTU_zQ1cGQW_PECQ7AN9tXbbx3jQc0JjNnw8NiGQ,104867
105
+ angr/analyses/decompiler/clinic.py,sha256=kfZL_GYcvR4elDWUonriepfbvSQtVq40xAWNF-03yOs,105984
102
106
  angr/analyses/decompiler/condition_processor.py,sha256=mBJrBnCP3Y3JkJXzihaJwGgelbWmLl561FjD49yevVU,51155
103
107
  angr/analyses/decompiler/decompilation_cache.py,sha256=dnlY0w4-ViAFz_M1qCjXbGNOLiMlDG8hJW6z2x-VKEs,1230
104
108
  angr/analyses/decompiler/decompilation_options.py,sha256=QWUGnfQ0FUekGs_I6X-ZKvAvL39VX2hFRcZrlXd72fY,7957
105
- angr/analyses/decompiler/decompiler.py,sha256=EUqb_ePQcAIHocG7c7IZg1_UblUD-bu4kk2NuF5QMvs,26501
109
+ angr/analyses/decompiler/decompiler.py,sha256=8lt7IzmR53aBiPl_C0B-dvhaeGQXTSppDF4pXuG-Vms,26713
106
110
  angr/analyses/decompiler/empty_node_remover.py,sha256=_RAGjqDyRmannEGPcMmWkL7em990-_sKgl5CYreb-yI,7403
107
111
  angr/analyses/decompiler/expression_narrower.py,sha256=TvkqtgNI9aDsquqyNFH5kXLW04rP_J940GFhrGopxP4,10343
108
112
  angr/analyses/decompiler/goto_manager.py,sha256=GUWt3Y_NCpmreIt4plxX5Y3UO2V8IVGZuRtF2GqI-cw,4006
@@ -131,7 +135,7 @@ angr/analyses/decompiler/dephication/graph_rewriting.py,sha256=R0rlwYL0Cnt1UPjdE
131
135
  angr/analyses/decompiler/dephication/graph_vvar_mapping.py,sha256=KeZ6VIQAB-Jy4bGUychFCKyinK3rKwy8E9_25ImlKhQ,13724
132
136
  angr/analyses/decompiler/dephication/rewriting_engine.py,sha256=3KUIxwUmfTZj2Jm1mB98J5vMkHqy4LLPYTrLzZfLbBA,10442
133
137
  angr/analyses/decompiler/dephication/seqnode_dephication.py,sha256=q29kS8lOs_-mxgJMtQvoZdw6l3q2lUDeXcTcGienIrY,4343
134
- angr/analyses/decompiler/optimization_passes/__init__.py,sha256=HcewOuaA5dafuSHaXAvViAxasqbVJRVQ2qMuDCSi00s,4205
138
+ angr/analyses/decompiler/optimization_passes/__init__.py,sha256=ZKaTvPqNAL6ratVB1V_rz6NRczCLaknZDd9rzRzPzpg,4271
135
139
  angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=uUzQWVkeKL2C9Lq8NZ7UkkZBAXydxOd0F1jxr0Zi__Q,5514
136
140
  angr/analyses/decompiler/optimization_passes/call_stmt_rewriter.py,sha256=G1CEWo62dAMrm-3V4DfEDxT6kwXxuks10bcTtW9C_tA,1320
137
141
  angr/analyses/decompiler/optimization_passes/code_motion.py,sha256=7o6lf-qahXv5H8jLqEASVXHaz-_PGo3r6l7qH5PbDtU,15343
@@ -143,7 +147,7 @@ angr/analyses/decompiler/optimization_passes/div_simplifier.py,sha256=Cju0NE3fo_
143
147
  angr/analyses/decompiler/optimization_passes/engine_base.py,sha256=Wxx1vNKJ6uX8vgQXf6iXbb0wpj4r1g50G8vO0PdD4lg,11168
144
148
  angr/analyses/decompiler/optimization_passes/expr_op_swapper.py,sha256=PJMJ0INWiINSkv1eD5QsMJS81XtfuyKqoqe6NTkU120,4715
145
149
  angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py,sha256=ULonaiVMx2g7bflZrfoEgjrW7yQJDsfdieTdV7kfGug,4031
146
- angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py,sha256=FoqkKQM5MC2Pc4gTCKaTg9VKq_6NmmUL8fdWySIh4uc,19217
150
+ angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py,sha256=9ZLqWNZyZsNkYFJlZgHIh8cBbt0lBFGdjMcStAlSrVE,19390
147
151
  angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=eeKEkoT0WphueWZd5P07cfa9lTBK3BzL0jUyOx4XmJQ,7820
148
152
  angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=zTplo_VsSfY6WR_F4SIwHFvAySUo3USDntnniD23i-A,13201
149
153
  angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=1Yto_EBmmB5FkwZzaAO7S0MEvbQNEknFbbq-nUU0Eao,38818
@@ -158,6 +162,7 @@ angr/analyses/decompiler/optimization_passes/return_duplicator_high.py,sha256=IC
158
162
  angr/analyses/decompiler/optimization_passes/return_duplicator_low.py,sha256=-mBEVfwGz986lDDEGwBG8wvGQTrFZHE7TLV-7rWt-H0,10076
159
163
  angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py,sha256=cEbZ5jyYbRiBJSzVJbnqssUY5MzirXXgzvzpxllY_Zk,14343
160
164
  angr/analyses/decompiler/optimization_passes/switch_default_case_duplicator.py,sha256=pxb0jyDQ5BXkjzzo4JiHEA1NZeKVmp0G5Pd-T5_UIa8,4758
165
+ angr/analyses/decompiler/optimization_passes/tag_slicer.py,sha256=8_gmoeYgDD1Hb8Rpqcb-01_B4897peDF-J6KA5PjQT8,1176
161
166
  angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=cpbsP6_ilZDu2M_jX8TEnwVrsQXljHEjSMw25HyK6PM,12806
162
167
  angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py,sha256=6NxaX2oT6BMkevb8xt9vlS3Jl-CmSK59F0FVab68B48,3088
163
168
  angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py,sha256=hTeOdooVDZnBnjiAguD7_BS9YJru8rOiSHN3H0sdzcA,126
@@ -184,7 +189,7 @@ angr/analyses/decompiler/peephole_optimizations/cmpord_rewriter.py,sha256=4ERanm
184
189
  angr/analyses/decompiler/peephole_optimizations/coalesce_adjacent_shrs.py,sha256=xZ129l0U5hoPXtczxZFUfZL59V7d0u2amQTO4phIpQU,1409
185
190
  angr/analyses/decompiler/peephole_optimizations/coalesce_same_cascading_ifs.py,sha256=h3m9FIxsMpElPE3ecFfa0vnzuxwG5oJLNEqvLuMpMgI,1062
186
191
  angr/analyses/decompiler/peephole_optimizations/const_mull_a_shift.py,sha256=3KTxUUlK74T1bcuufBRgexhDA8M_TAG_2Nqi7e2lZJg,7469
187
- angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=KTGrECpzRuIjsthtcl6IhxNPLibuclzlUCcTE11nrio,1701
192
+ angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=5ThmIgu38Un_N5AltnQtcTnoEnOT45HRu6NehB3rG5M,1713
188
193
  angr/analyses/decompiler/peephole_optimizations/conv_a_sub0_shr_and.py,sha256=6WooyVqwdlMLixGFR8QE0n6GDEC2AluVo4dIr7vwmqY,2379
189
194
  angr/analyses/decompiler/peephole_optimizations/conv_shl_shr.py,sha256=5LtXTzPwO_Dtru3UYbr6l8YYylxKrAVZ9q6Gjk1C8sI,2105
190
195
  angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=T2dA5fhkNj-Y4NSVwz4N54jyVolMK6X963eESKqX0Ow,10594
@@ -340,7 +345,7 @@ angr/analyses/variable_recovery/variable_recovery_base.py,sha256=_WX6Qa6HIFUJkZn
340
345
  angr/analyses/variable_recovery/variable_recovery_fast.py,sha256=7MG8qzgnCJlYyqhZLSQfjpq0022T4825PrWWrCKspnQ,25516
341
346
  angr/angrdb/__init__.py,sha256=Jin6JjtVadtqsgm_a6gQGx3Hn7BblkbJvdcl_GwZshg,307
342
347
  angr/angrdb/db.py,sha256=ecwcJ9b_LcM9a74GXJUm7JVWTghk3JhXScLhaQ4ZP7o,6260
343
- angr/angrdb/models.py,sha256=rd7SD8F5xbXGL2p34Dodc6oeXo6Ld0QWklfJFlodcV4,4785
348
+ angr/angrdb/models.py,sha256=_DTDAV6S7bEuNER8qiHrlo27fRgBRcv_HCfH7to1ZxE,4747
344
349
  angr/angrdb/serializers/__init__.py,sha256=Gu2B79cp2wwXx4l_S5ITc4QcqyK5YnoG-zEG253JUZY,184
345
350
  angr/angrdb/serializers/cfg_model.py,sha256=Uxy1VDKAy_50dMXUykpEsl_zp3ko5ETuKNPRAd3Xsek,1314
346
351
  angr/angrdb/serializers/comments.py,sha256=oHlwu9weMpFJrVBo19Ud1OB-XtpUPrdH9MWZy7QnQ40,1578
@@ -443,7 +448,7 @@ angr/engines/vex/heavy/__init__.py,sha256=VLvDao7Drp2stJnRfznKM04IFYi7rjfdRWVJ09
443
448
  angr/engines/vex/heavy/actions.py,sha256=n8LDymfj6qHAd6evzoyZmHkSN8MlVjZHfgREATC-bek,8663
444
449
  angr/engines/vex/heavy/concretizers.py,sha256=2xQYLXmugpJWIUjUrMnall2ewX05kTdOYLWjediaf6Q,14433
445
450
  angr/engines/vex/heavy/dirty.py,sha256=WXJsC6KBotTdNCn64Zl2GiU_q_YK-QNu4f7RfG4d_qc,18719
446
- angr/engines/vex/heavy/heavy.py,sha256=cN2k2VraDRcrs0bnaXK6qSwttF3hd4Gkn6-RrbmeoZQ,16059
451
+ angr/engines/vex/heavy/heavy.py,sha256=-WAb64Lmd5DFDz3RdKLd--p6ryuAOel1CP1BsP5Gsb4,16145
447
452
  angr/engines/vex/heavy/inspect.py,sha256=2sFdCnlhC_5Ugrju7uhAmY79lomfNLdl-o4B4mjlfjg,2368
448
453
  angr/engines/vex/heavy/resilience.py,sha256=QhGEQztITk1STChDxMWZoOSQuHXxExyW_wdWETaOpl0,3784
449
454
  angr/engines/vex/heavy/super_fastpath.py,sha256=jOf8AF3UlL9yc8K6D9Q5qw88Eez0B1ZwG_AA0rNDhQg,1209
@@ -466,7 +471,7 @@ angr/exploration_techniques/memory_watcher.py,sha256=qHkI6xO5VRzumK6eSjPX-BklFKm
466
471
  angr/exploration_techniques/oppologist.py,sha256=0rpPxGWuXkMN2igZf7KYQxxzK5gC11YpFRAvjAxmbT0,3522
467
472
  angr/exploration_techniques/slicecutor.py,sha256=_AtPqupncNHFVspkCeZWtj-wY1Ta67bgmV19PDjNxjE,5164
468
473
  angr/exploration_techniques/spiller.py,sha256=_zXSr2EiT3ZrHPLkRXeNtUcfRuXheZuGauz5zQ5qaPU,9413
469
- angr/exploration_techniques/spiller_db.py,sha256=7z-JrDMcGMzn6u4D8EW1y7UtsdW7LcJl5_rm7MgVfFg,853
474
+ angr/exploration_techniques/spiller_db.py,sha256=ccbjeAtlgD23tMt8gGbJL9r8Tc4aOJi3Rjn6hg70dnY,811
470
475
  angr/exploration_techniques/stochastic.py,sha256=ZHVNKLsMXLaVLu00IQkYSCDqp5imXAwuu9CwW4lOuZo,2032
471
476
  angr/exploration_techniques/stub_stasher.py,sha256=c27ebdEJsUjz1ZFYs300edcm415ALNbDZHi_q-QCaLU,494
472
477
  angr/exploration_techniques/suggestions.py,sha256=hgaCrymRMzKG9J0o4S4ovJmJy2dUu_MnWWpeYg3yIEw,7006
@@ -499,10 +504,10 @@ angr/knowledge_plugins/cfg/cfg_node.py,sha256=zP7TwJpTOvJc6HNzPvBSGlDuTji5GHLKhB
499
504
  angr/knowledge_plugins/cfg/indirect_jump.py,sha256=CogCSY0Do18qD_bsT_0ucb9a7R0_qlal2HUp_YKWTMA,2074
500
505
  angr/knowledge_plugins/cfg/memory_data.py,sha256=V0q4EBxvZ5xa40u0ZYekS3iRx4M6IDuK4j6-3NEeaRg,5097
501
506
  angr/knowledge_plugins/functions/__init__.py,sha256=asiLNiT6sHbjP6eU-kDpawIoVxv4J35cwz5yQHtQ2E0,167
502
- angr/knowledge_plugins/functions/function.py,sha256=dBjRR_MPxWhU6G19S3Wf91iVygZwBh5ik8WzNAfC0ys,67238
503
- angr/knowledge_plugins/functions/function_manager.py,sha256=I3CIEUjBtw2gjQiHOuS8pzzPaBAymdH6zW5bl8eNtFo,18979
504
- angr/knowledge_plugins/functions/function_parser.py,sha256=7md9BANfgtlioDJc_Zt9Jo5qffvJACM3V98iQA5L0JU,11821
505
- angr/knowledge_plugins/functions/soot_function.py,sha256=oBWuhdw3LvZORVhuh98sf2UeqOLtkjt6j4Awf4NBvtc,4972
507
+ angr/knowledge_plugins/functions/function.py,sha256=2SbWI5xOco5lypTM6c5bp3VmKose9FDO26TGEINM0KE,67400
508
+ angr/knowledge_plugins/functions/function_manager.py,sha256=R-VtbkN3-l1-U4Wk4XHC8lGZo7DpXbEDE7Ok986YYYI,19594
509
+ angr/knowledge_plugins/functions/function_parser.py,sha256=L0ZB9_GZ0zqj5crD4f9TYTRUMmjqdk7owHmQ8GjIebM,11824
510
+ angr/knowledge_plugins/functions/soot_function.py,sha256=kAEzniVHa2FOjb2qlLElXtbbgAeeUkor7iQIFyJuoYY,5005
506
511
  angr/knowledge_plugins/key_definitions/__init__.py,sha256=fVWRMdY8j2mUWwBKlgcmtnNDGS8WF1UbKjfb6xpeCM8,432
507
512
  angr/knowledge_plugins/key_definitions/atoms.py,sha256=0Tzu3YQatyft6PG5K2sGnn38d41fOmrRhXU51TjpoFk,11069
508
513
  angr/knowledge_plugins/key_definitions/constants.py,sha256=i-44XCfMyS2pK8AwW2rL0prhtxvsWB64E9pm4eDSUcY,673
@@ -540,7 +545,7 @@ angr/misc/picklable_lock.py,sha256=tnwbWxe6V_26T4K2J0AgBEptqAiMZzjdywEZ3KEmXkE,1
540
545
  angr/misc/plugins.py,sha256=1NzhTd0rSY9oPElCeMGMZXLHEclOWVIEgdq0JvxpUMc,9385
541
546
  angr/misc/telemetry.py,sha256=a4IQuBfZvwdjQseVBEG_Np05U-8HRM_NOUAMnQ3_DJg,1217
542
547
  angr/misc/testing.py,sha256=b3CWR7bv38RP-IjGKKjZmvCLyYvvSNPSdZu5MgniJ50,626
543
- angr/misc/ux.py,sha256=52G7MJgULeZKsBlTlk4_qDHcG2hhBRJ10SM8HLn8uL0,742
548
+ angr/misc/ux.py,sha256=3iU1tDj4_pZZ_FEouoD8S1frjOGjY9w5gF1sqjOqnXY,742
544
549
  angr/procedures/__init__.py,sha256=GPf6JNRtnIKHIRR4r_qv2T13VrwlV5EV77fWpusAK2w,263
545
550
  angr/procedures/procedure_dict.py,sha256=dx6tkG4zatE7XS63r5yi_3TXG3T_RCD2LvBSDzDdC-I,1906
546
551
  angr/procedures/advapi32/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1230,7 +1235,7 @@ angr/state_plugins/debug_variables.py,sha256=LR-lsjnn6FVrEr8RCVkhA_gyeeh1jiHC92u
1230
1235
  angr/state_plugins/filesystem.py,sha256=qkM2zCfcrSBjt-g3RO1VYbjHPNRSdvsNRQR_M47pqFU,15765
1231
1236
  angr/state_plugins/gdb.py,sha256=ntTEM8AD6PgwGuQffXyosKDKE1ja_AeO4PEFY_qQZiY,5174
1232
1237
  angr/state_plugins/globals.py,sha256=IEqdnwW15T61XEaLxt4tO6AF9527uQYquKz_u5aIpi4,1594
1233
- angr/state_plugins/history.py,sha256=NCA1uaez4UGj8tn2DRh_QpxuVTk5VY7Cdb7uDqMtH7o,19218
1238
+ angr/state_plugins/history.py,sha256=tusyuRcgLPACquxrMi07zZaZLorWqjxCtwC_5NnnajI,19233
1234
1239
  angr/state_plugins/inspect.py,sha256=DqP5b59IHVtbPORpCNDG1fYZmgSPLiuUp5gdp5OIfyw,11352
1235
1240
  angr/state_plugins/javavm_classloader.py,sha256=QOkvHSVnoiaEKX6HK520viBemFpxXBcaXeC_csLSmhY,5589
1236
1241
  angr/state_plugins/jni_references.py,sha256=d8ZYjBbB56kQMBrftXvSQKCD_8P-4oZgxTxHR5Yq7Pg,3439
@@ -1315,7 +1320,7 @@ angr/storage/memory_mixins/regioned_memory/static_find_mixin.py,sha256=tWyiNrMxm
1315
1320
  angr/utils/__init__.py,sha256=knkVHIwNqvlu-QgvPorAscSpyPWogzfZwP5OnYmLbmk,1159
1316
1321
  angr/utils/ail.py,sha256=8_FloZ6cP89D2Nfc_2wCPcuVv7ny-aP-OKS3syCSMLk,1054
1317
1322
  angr/utils/algo.py,sha256=4TaEFE4tU-59KyRVFASqXeoiwH01ZMj5fZd_JVcpdOY,1038
1318
- angr/utils/bits.py,sha256=-yXIHPsJ3nYNNdnAnqLCmjAm_beAfZdbWHVQGWuAGd8,294
1323
+ angr/utils/bits.py,sha256=ut-9JR2Ks3fiC9aGae_UfYZBKHCADuhPHmPwPYPDwwg,357
1319
1324
  angr/utils/constants.py,sha256=ZnK6Ed-1U_8yaw-7ZaCLSM0-z7bSuKPg715bBrquxKE,257
1320
1325
  angr/utils/cowdict.py,sha256=qx2iO1rrCDTQUGX9dqi9ZAly2Dgm6bCEgdSAQw9MxRM,2159
1321
1326
  angr/utils/dynamic_dictlist.py,sha256=n-HlT1H8yk4KowLTJ6II5ioJr5qn66DW3t4hhesx1Vs,3048
@@ -1331,13 +1336,14 @@ angr/utils/loader.py,sha256=5PtUlonkbqENNg3AMJ4YI3-g5dyyXJ0GP83SwO2dECY,1951
1331
1336
  angr/utils/mp.py,sha256=y6Q0nDOykRZvcQ805DZpcJHQTGN-gqFi0eERGNhb3C0,1903
1332
1337
  angr/utils/orderedset.py,sha256=K5PKeDqy4xUeq47k7SdZ7E3K9M1AMXJ9-veTOo5DQIE,1978
1333
1338
  angr/utils/segment_list.py,sha256=ayUMIeaFp61AhTuxsf_go4XoXRqGi8cxTeP0OyuhEk4,20369
1339
+ angr/utils/tagged_interval_map.py,sha256=rXKBuT14N23AAntpOKhZhmA-qqymnsvjpheFXoTRVRA,4417
1334
1340
  angr/utils/timing.py,sha256=ELuRPzdRSHzOATgtAzTFByMlVr021ypMrsvtpopreLg,1481
1335
1341
  angr/utils/ssa/__init__.py,sha256=Z7yXY0xe4X-T4bfdK0YtL9ZFnYF-JhQuJ16ZW-wpSZI,7886
1336
1342
  angr/utils/ssa/tmp_uses_collector.py,sha256=rSpvMxBHzg-tmvhsfjn3iLyPEKzaZN-xpQrdslMq3J4,793
1337
1343
  angr/utils/ssa/vvar_uses_collector.py,sha256=8gfAWdRMz73Deh-ZshDM3GPAot9Lf-rHzCiaCil0hlE,1342
1338
- angr-9.2.124.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1339
- angr-9.2.124.dist-info/METADATA,sha256=V5f1NckrmQjlwlc786BRKwSxCERShpNQXNeB8AY_CEg,4762
1340
- angr-9.2.124.dist-info/WHEEL,sha256=y1GJ_VupNstuhRFAPvC_BhjKroEPf9HGDivUNmV_9Ls,109
1341
- angr-9.2.124.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1342
- angr-9.2.124.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1343
- angr-9.2.124.dist-info/RECORD,,
1344
+ angr-9.2.125.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1345
+ angr-9.2.125.dist-info/METADATA,sha256=pCK4HHhK_lykw4HyvQgNg7ZbjPYJ9gk0r9b5fHe-9vo,4762
1346
+ angr-9.2.125.dist-info/WHEEL,sha256=y1GJ_VupNstuhRFAPvC_BhjKroEPf9HGDivUNmV_9Ls,109
1347
+ angr-9.2.125.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1348
+ angr-9.2.125.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1349
+ angr-9.2.125.dist-info/RECORD,,
File without changes