angr 9.2.125__py3-none-manylinux2014_aarch64.whl → 9.2.127__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 (50) hide show
  1. angr/__init__.py +1 -1
  2. angr/analyses/__init__.py +4 -0
  3. angr/analyses/analysis.py +8 -2
  4. angr/analyses/cfg/cfg_fast.py +12 -1
  5. angr/analyses/decompiler/ail_simplifier.py +1 -0
  6. angr/analyses/decompiler/callsite_maker.py +9 -1
  7. angr/analyses/decompiler/clinic.py +2 -1
  8. angr/analyses/decompiler/condition_processor.py +109 -73
  9. angr/analyses/decompiler/decompilation_cache.py +4 -0
  10. angr/analyses/decompiler/decompiler.py +21 -3
  11. angr/analyses/decompiler/dephication/graph_vvar_mapping.py +1 -2
  12. angr/analyses/decompiler/optimization_passes/__init__.py +15 -1
  13. angr/analyses/decompiler/return_maker.py +1 -0
  14. angr/analyses/decompiler/ssailification/rewriting.py +4 -0
  15. angr/analyses/decompiler/ssailification/rewriting_engine.py +10 -3
  16. angr/analyses/decompiler/ssailification/traversal.py +1 -0
  17. angr/analyses/decompiler/ssailification/traversal_engine.py +15 -0
  18. angr/analyses/decompiler/structured_codegen/c.py +18 -5
  19. angr/analyses/decompiler/structured_codegen/dwarf_import.py +4 -1
  20. angr/analyses/deobfuscator/__init__.py +18 -0
  21. angr/analyses/deobfuscator/api_obf_finder.py +313 -0
  22. angr/analyses/deobfuscator/api_obf_peephole_optimizer.py +51 -0
  23. angr/analyses/deobfuscator/irsb_reg_collector.py +85 -0
  24. angr/analyses/deobfuscator/string_obf_finder.py +774 -0
  25. angr/analyses/deobfuscator/string_obf_opt_passes.py +133 -0
  26. angr/analyses/deobfuscator/string_obf_peephole_optimizer.py +47 -0
  27. angr/analyses/reaching_definitions/function_handler_library/stdio.py +8 -1
  28. angr/analyses/reaching_definitions/function_handler_library/string.py +2 -2
  29. angr/analyses/s_liveness.py +3 -3
  30. angr/analyses/s_propagator.py +74 -3
  31. angr/analyses/unpacker/__init__.py +6 -0
  32. angr/analyses/unpacker/obfuscation_detector.py +103 -0
  33. angr/analyses/unpacker/packing_detector.py +138 -0
  34. angr/angrdb/models.py +2 -1
  35. angr/angrdb/serializers/kb.py +3 -3
  36. angr/angrdb/serializers/structured_code.py +5 -3
  37. angr/calling_conventions.py +4 -2
  38. angr/engines/vex/claripy/irop.py +10 -5
  39. angr/knowledge_base.py +1 -1
  40. angr/knowledge_plugins/__init__.py +2 -2
  41. angr/knowledge_plugins/obfuscations.py +36 -0
  42. angr/knowledge_plugins/structured_code.py +1 -1
  43. angr/utils/ssa/__init__.py +8 -3
  44. {angr-9.2.125.dist-info → angr-9.2.127.dist-info}/METADATA +6 -6
  45. {angr-9.2.125.dist-info → angr-9.2.127.dist-info}/RECORD +49 -39
  46. {angr-9.2.125.dist-info → angr-9.2.127.dist-info}/WHEEL +1 -1
  47. angr/knowledge_plugins/decompilation.py +0 -45
  48. {angr-9.2.125.dist-info → angr-9.2.127.dist-info}/LICENSE +0 -0
  49. {angr-9.2.125.dist-info → angr-9.2.127.dist-info}/entry_points.txt +0 -0
  50. {angr-9.2.125.dist-info → angr-9.2.127.dist-info}/top_level.txt +0 -0
@@ -1061,7 +1061,9 @@ class SimCC:
1061
1061
  if isinstance(arg, claripy.ast.BV):
1062
1062
  if isinstance(ty, (SimTypeReg, SimTypeNum)):
1063
1063
  if len(arg) != ty.size:
1064
- raise TypeError("Type mismatch: expected %s, got %d bits" % (ty, len(arg)))
1064
+ if arg.concrete:
1065
+ return claripy.BVV(arg.concrete_value, ty.size)
1066
+ raise TypeError("Type mismatch of symbolic data: expected %s, got %d bits" % (ty, len(arg)))
1065
1067
  return arg
1066
1068
  if isinstance(ty, (SimTypeFloat)):
1067
1069
  raise TypeError(
@@ -1652,7 +1654,7 @@ class SimCCAMD64WindowsSyscall(SimCCSyscall):
1652
1654
  class SimCCARM(SimCC):
1653
1655
  ARG_REGS = ["r0", "r1", "r2", "r3"]
1654
1656
  FP_ARG_REGS = [] # regular arg regs are used as fp arg regs
1655
- CALLER_SAVED_REGS = []
1657
+ CALLER_SAVED_REGS = ["r0", "r1", "r2", "r3"]
1656
1658
  RETURN_ADDR = SimRegArg("lr", 4)
1657
1659
  RETURN_VAL = SimRegArg("r0", 4)
1658
1660
  OVERFLOW_RETURN_VAL = SimRegArg("r1", 4)
@@ -2,6 +2,7 @@
2
2
  This module contains symbolic implementations of VEX operations.
3
3
  """
4
4
 
5
+ # pylint:disable=no-member
5
6
  from __future__ import annotations
6
7
 
7
8
  from functools import partial
@@ -10,14 +11,17 @@ import itertools
10
11
  import operator
11
12
  import math
12
13
  import re
13
-
14
14
  import logging
15
15
 
16
- l = logging.getLogger(name=__name__)
17
-
18
16
  import pyvex
19
17
  import claripy
20
18
 
19
+ from angr.errors import UnsupportedIROpError, SimOperationError, SimValueError, SimZeroDivisionException
20
+
21
+
22
+ l = logging.getLogger(name=__name__)
23
+
24
+
21
25
  #
22
26
  # The more sane approach
23
27
  #
@@ -1044,6 +1048,9 @@ class SimIROp:
1044
1048
  exp_threshold = (2 ** (exp_bits - 1) - 1) + mantissa_bits
1045
1049
  return claripy.If(exp_bv >= exp_threshold, args[1].raw_to_fp(), rounded_fp)
1046
1050
 
1051
+ def _op_fgeneric_RSqrtEst(self, arg): # pylint:disable=no-self-use
1052
+ return claripy.BVS("RSqrtEst", arg.size())
1053
+
1047
1054
  def _generic_pack_saturation(self, args, src_size, dst_size, src_signed, dst_signed):
1048
1055
  """
1049
1056
  Generic pack with saturation.
@@ -1255,6 +1262,4 @@ def vexop_to_simop(op, extended=True, fp=True):
1255
1262
  return res
1256
1263
 
1257
1264
 
1258
- from angr.errors import UnsupportedIROpError, SimOperationError, SimValueError, SimZeroDivisionException
1259
-
1260
1265
  make_operations()
angr/knowledge_base.py CHANGED
@@ -35,13 +35,13 @@ class KnowledgeBase:
35
35
 
36
36
  functions: FunctionManager
37
37
  variables: VariableManager
38
- structured_code: StructuredCodeManager
39
38
  defs: KeyDefinitionManager
40
39
  cfgs: CFGManager
41
40
  _project: Project
42
41
  types: TypesStore
43
42
  propagations: PropagationManager
44
43
  xrefs: XRefManager
44
+ decompilations: StructuredCodeManager
45
45
 
46
46
  def __init__(self, project, obj=None, name=None):
47
47
  if obj is not None:
@@ -17,7 +17,7 @@ from .structured_code import StructuredCodeManager
17
17
  from .types import TypesStore
18
18
  from .callsite_prototypes import CallsitePrototypes
19
19
  from .custom_strings import CustomStrings
20
- from .decompilation import DecompilationManager
20
+ from .obfuscations import Obfuscations
21
21
 
22
22
 
23
23
  __all__ = (
@@ -39,5 +39,5 @@ __all__ = (
39
39
  "TypesStore",
40
40
  "CallsitePrototypes",
41
41
  "CustomStrings",
42
- "DecompilationManager",
42
+ "Obfuscations",
43
43
  )
@@ -0,0 +1,36 @@
1
+ from __future__ import annotations
2
+
3
+ from .plugin import KnowledgeBasePlugin
4
+
5
+
6
+ class Obfuscations(KnowledgeBasePlugin):
7
+ """
8
+ Store discovered information and artifacts about (string) obfuscation techniques in the project.
9
+ """
10
+
11
+ def __init__(self, kb):
12
+ super().__init__(kb)
13
+
14
+ self.obfuscated_strings_analyzed: bool = False
15
+ self.type1_deobfuscated_strings = {}
16
+ self.type1_string_loader_candidates = set()
17
+ self.type2_deobfuscated_strings = {}
18
+ self.type2_string_loader_candidates = set()
19
+ self.type3_deobfuscated_strings = {} # from the address of the call instruction to the actual string (in bytes)
20
+
21
+ self.obfuscated_apis_analyzed: bool = False
22
+ self.type1_deobfuscated_apis: dict[int, tuple[str, str]] = {}
23
+
24
+ def copy(self):
25
+ o = Obfuscations(self._kb)
26
+ o.type1_deobfuscated_strings = dict(self.type1_deobfuscated_strings)
27
+ o.type1_string_loader_candidates = self.type1_string_loader_candidates.copy()
28
+ o.type2_deobfuscated_strings = dict(self.type2_deobfuscated_strings)
29
+ o.type2_string_loader_candidates = self.type2_string_loader_candidates.copy()
30
+ o.type3_deobfuscated_strings = self.type3_deobfuscated_strings.copy()
31
+
32
+ o.type1_deobfuscated_apis = self.type1_deobfuscated_apis.copy()
33
+ return o
34
+
35
+
36
+ KnowledgeBasePlugin.register_default("obfuscations", Obfuscations)
@@ -60,4 +60,4 @@ class StructuredCodeManager(KnowledgeBasePlugin):
60
60
  raise NotImplementedError
61
61
 
62
62
 
63
- KnowledgeBasePlugin.register_default("structured_code", StructuredCodeManager)
63
+ KnowledgeBasePlugin.register_default("decompilations", StructuredCodeManager)
@@ -178,10 +178,14 @@ def is_const_vvar_load_dirty_assignment(stmt: Statement) -> bool:
178
178
  return False
179
179
 
180
180
 
181
- def is_phi_assignment(stmt: Statement) -> tuple[bool, Phi | None]:
181
+ def is_phi_assignment(stmt: Statement) -> bool:
182
+ return isinstance(stmt, Assignment) and isinstance(stmt.src, Phi)
183
+
184
+
185
+ def phi_assignment_get_src(stmt: Statement) -> Phi | None:
182
186
  if isinstance(stmt, Assignment) and isinstance(stmt.src, Phi):
183
- return True, stmt.src
184
- return False, None
187
+ return stmt.src
188
+ return None
185
189
 
186
190
 
187
191
  __all__ = (
@@ -190,6 +194,7 @@ __all__ = (
190
194
  "get_vvar_uselocs",
191
195
  "is_const_assignment",
192
196
  "is_phi_assignment",
197
+ "phi_assignment_get_src",
193
198
  "is_const_and_vvar_assignment",
194
199
  "is_const_vvar_load_assignment",
195
200
  "is_const_vvar_load_dirty_assignment",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: angr
3
- Version: 9.2.125
3
+ Version: 9.2.127
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.125
20
- Requires-Dist: archinfo==9.2.125
19
+ Requires-Dist: ailment==9.2.127
20
+ Requires-Dist: archinfo==9.2.127
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.125
25
- Requires-Dist: cle==9.2.125
24
+ Requires-Dist: claripy==9.2.127
25
+ Requires-Dist: cle==9.2.127
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.125
34
+ Requires-Dist: pyvex==9.2.127
35
35
  Requires-Dist: rich>=13.1.0
36
36
  Requires-Dist: sortedcontainers
37
37
  Requires-Dist: sympy
@@ -1,17 +1,17 @@
1
- angr/__init__.py,sha256=ab5YAbhAR88Lsps_7vgmcRJcuo3Db9vUr2t8f7jR7P8,9153
1
+ angr/__init__.py,sha256=RVxXUHB8F4gQKi1KltS9-39I-4HywT29QiDLx2F1bMY,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
5
5
  angr/block.py,sha256=O5kFpofRMVlCqdG-6E53UEti7bGtIcqqx6fvyWDPu58,14975
6
6
  angr/callable.py,sha256=1rzhXjWlx62jKJaRKHvp12rbsJ75zNa86vXtCt6eFLo,6065
7
- angr/calling_conventions.py,sha256=p_efVNwRtCOnbEzRCUrL_D0H9T3O982NqA5qCHINmIw,92824
7
+ angr/calling_conventions.py,sha256=oBgMwDZBVqKYcLa9w96Brn32s06Ffuru3fd2V7gFI_0,92972
8
8
  angr/code_location.py,sha256=JpxnEa-FbQIloGwrGa4SyZlA6La_DsvHNt4WMh7lMMY,5466
9
9
  angr/codenode.py,sha256=z-XdQh20yl_exg5H4Ep62Kw2lb3ce8od_IaEHw2v-D8,3793
10
10
  angr/errors.py,sha256=I0L-TbxmVYIkC-USuHwaQ9BGPi2YVObnhZXQQ3kJFuo,8385
11
11
  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
- angr/knowledge_base.py,sha256=rpQTkiIKpbjkJTaIaPf-L7ylwiGeM95VTGnUsTg9pOs,4538
14
+ angr/knowledge_base.py,sha256=cvMTebMzLwTdvYCALxGDK1mj3PRf-CJWfI0GFOUDNxo,4537
15
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
@@ -26,8 +26,8 @@ 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=H8PBIRQoIY3RPRYSdYMA21WGy0Hlka6uoVLsRwFoCLs,3326
30
- angr/analyses/analysis.py,sha256=ggR1xFe0HSpLhkqiJtmzm8qmS5H-7xZDwhYf4IyBNf8,14551
29
+ angr/analyses/__init__.py,sha256=wchoQKOTR2QWB-5Gk-cNI4Zi5510LPZcBjcDp9PiIOw,3434
30
+ angr/analyses/analysis.py,sha256=upfeqlRt9mePT1io8FvV_rREdGrjZOROoERmqjqHv30,14872
31
31
  angr/analyses/backward_slice.py,sha256=pLMeo7Y2niifNmtfIzMbQDlRy_w5GbKi1sYa0XVhPBA,27228
32
32
  angr/analyses/binary_optimizer.py,sha256=JqKfOXx5FiWsYdQ6JMWYivfB2AiNl2Pw8Utk8kPEVrk,26186
33
33
  angr/analyses/bindiff.py,sha256=ZAnBeB4-0sGRZ494MTjM6NrNXL33YWcXw2bHZRBqY8M,51431
@@ -54,8 +54,8 @@ angr/analyses/patchfinder.py,sha256=i0TJmBwNlFKJYpG04YpU6yFBdZlNAuzj3VwM28jfnW0,
54
54
  angr/analyses/pathfinder.py,sha256=_prNqmRUSuSt2ZCP8qbvNN7pw7mtM8pWr9IL0AO6XL8,11496
55
55
  angr/analyses/proximity_graph.py,sha256=-g7pNpbP2HQhKW3w1Eff23K8vAsgWWYoe3wVxRh3Lhk,16066
56
56
  angr/analyses/reassembler.py,sha256=y41XIGWqCVvwFlE3uACEMFLR-vByKkOazC405UPCOpM,98524
57
- angr/analyses/s_liveness.py,sha256=YI-N62--Wo8B4yB5lvUi4mFBNqxwRxYq-p3zXR4qFNs,5213
58
- angr/analyses/s_propagator.py,sha256=vmOnkwrBQTvh3WJbAXY7R4imAW_AKzYoeRM311oXVsA,11311
57
+ angr/analyses/s_liveness.py,sha256=TQ_Er-6nQXZZU-tp_LNUXPbZeVCyR_QtVofpPLo8DU4,5239
58
+ angr/analyses/s_propagator.py,sha256=7iyYX_MW6ljpd5BPjALIYcFmcjHzOW_BcmZLaO4YPQQ,14634
59
59
  angr/analyses/smc.py,sha256=0fvLPUpjlg6GCjYnfSqanXkGYlthmPwqMYR-ZYBHsbo,5075
60
60
  angr/analyses/soot_class_hierarchy.py,sha256=AtvXMAlz6CVvfbtkPY4ghouH_1mNnPg9s9jFhZwWvEw,8741
61
61
  angr/analyses/stack_pointer_tracker.py,sha256=5NZf4muUFIJX-F605n5LMw8ihA648-FA4Bm5mAcsHBE,31379
@@ -71,7 +71,7 @@ angr/analyses/cfg/cfg.py,sha256=ZHZFWtP4uD1YxgKy44O_oD_BiSo871Llcd1zpXmFkBE,3177
71
71
  angr/analyses/cfg/cfg_arch_options.py,sha256=QpC_sonf0eODcIxWtjVrW6E-gFRGvvdataqGEp9DFFI,3142
72
72
  angr/analyses/cfg/cfg_base.py,sha256=CIVnGRf8zDUK-lu4Ovm0joPn9pRNjijilSUX585MteA,122866
73
73
  angr/analyses/cfg/cfg_emulated.py,sha256=BK80J79mEyg2RlDo-ikuQkW2VePuquY3kkSCA2YwDw4,152255
74
- angr/analyses/cfg/cfg_fast.py,sha256=eLStNKXQXT4XWrOZiHcw8lEmIFFh9d-PKUroCNVCB6w,221775
74
+ angr/analyses/cfg/cfg_fast.py,sha256=QE28ijb8Kk5FIRhOocjve0Qw_ouzgDtMgchYzF0cr9A,222452
75
75
  angr/analyses/cfg/cfg_fast_soot.py,sha256=3ImLNg04hssYTQYm2ZcKXoc5E30LxFrPDA0MQblpn6k,25913
76
76
  angr/analyses/cfg/cfg_job_base.py,sha256=Zshze972MakTsd-licQz77lac17igQaaTsAteHeHhYQ,5974
77
77
  angr/analyses/cfg/indirect_jump_resolvers/__init__.py,sha256=EXzMcZH1DBZ-jBLJcYThR0fmWAlJmqhesZNBh_2SlCk,691
@@ -96,17 +96,17 @@ angr/analyses/data_dep/data_dependency_analysis.py,sha256=QN_m2yDyOWnRHg1l4n6dKD
96
96
  angr/analyses/data_dep/dep_nodes.py,sha256=LcNcxeuKXMMc0GkmvKqqFwNlAk3GhzBR8ixM4CD305k,4640
97
97
  angr/analyses/data_dep/sim_act_location.py,sha256=EXmfFF3lV9XogcB2gFRMUoJCbjpDYiSKNyfafkBfiY8,1564
98
98
  angr/analyses/decompiler/__init__.py,sha256=JAHy5toHIzNxlRnht8geYexKueYhhCGHs7GM4E11AN4,1162
99
- angr/analyses/decompiler/ail_simplifier.py,sha256=F47aJt_0BIowrmT4CDhJ0uarnbvb-WUxnn_nOQYhRN8,71814
99
+ angr/analyses/decompiler/ail_simplifier.py,sha256=dFoUJPeJF6cx03cdNG6NMGFvNfZJrCXAsDY1ncppiCI,71855
100
100
  angr/analyses/decompiler/ailgraph_walker.py,sha256=m71HCthOr9J8PZoMxJzCPskay8yfCZ2j8esWT4Ka3KI,1630
101
101
  angr/analyses/decompiler/block_io_finder.py,sha256=xMwG8Bi69OGNYVs0U0F4yxM8kEsnyrsMrf0gEr8dOEw,10923
102
102
  angr/analyses/decompiler/block_similarity.py,sha256=ISMoOm-TGJ_1wD2i_4m8IYTletgnP66gReQESJnfvS0,6873
103
103
  angr/analyses/decompiler/block_simplifier.py,sha256=_WYyfFW8bJ_-RkrudJIlDdHh9fc6_aHkuwzW9gylY-k,13922
104
- angr/analyses/decompiler/callsite_maker.py,sha256=BcXjx58pC5GyveGdyLIICMhC9pzG4uKcVak5OkR_iIU,18491
105
- angr/analyses/decompiler/clinic.py,sha256=kfZL_GYcvR4elDWUonriepfbvSQtVq40xAWNF-03yOs,105984
106
- angr/analyses/decompiler/condition_processor.py,sha256=mBJrBnCP3Y3JkJXzihaJwGgelbWmLl561FjD49yevVU,51155
107
- angr/analyses/decompiler/decompilation_cache.py,sha256=dnlY0w4-ViAFz_M1qCjXbGNOLiMlDG8hJW6z2x-VKEs,1230
104
+ angr/analyses/decompiler/callsite_maker.py,sha256=Gs_FmlmIs5jM-XccL9OMCaj_-L83NlYzkzxsy2HmcfQ,18749
105
+ angr/analyses/decompiler/clinic.py,sha256=pSM3UVv-HMolsBeNZwLLKxpYof_fVH5m9G95gD4-OfE,106033
106
+ angr/analyses/decompiler/condition_processor.py,sha256=MbpbSk6zXHmMLWjLAHxpYjcLCVL1TuL08KmTBTNpm_4,52839
107
+ angr/analyses/decompiler/decompilation_cache.py,sha256=ELz1DDVYvrs6IeUX4_L0OZDZICUifSBdJkdJXWrFZAY,1375
108
108
  angr/analyses/decompiler/decompilation_options.py,sha256=QWUGnfQ0FUekGs_I6X-ZKvAvL39VX2hFRcZrlXd72fY,7957
109
- angr/analyses/decompiler/decompiler.py,sha256=8lt7IzmR53aBiPl_C0B-dvhaeGQXTSppDF4pXuG-Vms,26713
109
+ angr/analyses/decompiler/decompiler.py,sha256=h6f8fsy3BzFm_-WuGdtXCb_u9xTL494lUEXI5j-PreU,27928
110
110
  angr/analyses/decompiler/empty_node_remover.py,sha256=_RAGjqDyRmannEGPcMmWkL7em990-_sKgl5CYreb-yI,7403
111
111
  angr/analyses/decompiler/expression_narrower.py,sha256=TvkqtgNI9aDsquqyNFH5kXLW04rP_J940GFhrGopxP4,10343
112
112
  angr/analyses/decompiler/goto_manager.py,sha256=GUWt3Y_NCpmreIt4plxX5Y3UO2V8IVGZuRtF2GqI-cw,4006
@@ -116,7 +116,7 @@ angr/analyses/decompiler/jumptable_entry_condition_rewriter.py,sha256=f_JyNiSZfo
116
116
  angr/analyses/decompiler/redundant_label_remover.py,sha256=J9hpP3C_P08v84FjVU0q5Rmj5M1N9q3HKWSWsA2u7Yg,5879
117
117
  angr/analyses/decompiler/region_identifier.py,sha256=FUynH4k09y5NiTdor8PLiPFviDcdWpzwz0xa9fRocJs,47293
118
118
  angr/analyses/decompiler/region_walker.py,sha256=u0hR0bEX1hSwkv-vejIM1gS-hcX2F2DLsDqpKhQ5_pQ,752
119
- angr/analyses/decompiler/return_maker.py,sha256=mCJdEcnU8P5sld5B-b5e2YLilct98gJa7VWAMXT2wIY,2502
119
+ angr/analyses/decompiler/return_maker.py,sha256=pKn9_y5VXqTeJnD5uzLLd9sH_Dp_9wkPcWPiJPTV-7A,2550
120
120
  angr/analyses/decompiler/seq_to_blocks.py,sha256=bB-1m8oBO59AlAp6izAROks3BBxFW8zigLlrIMt6Yfs,564
121
121
  angr/analyses/decompiler/sequence_walker.py,sha256=ODDPnChZ3Li0JyIXDR41JW9zvCsfPF5JvGYDL52wAYI,9375
122
122
  angr/analyses/decompiler/utils.py,sha256=ldej1mpMKsWYgENa5qG4VTeoCrID-9JudTaaFLTQEco,30456
@@ -132,10 +132,10 @@ angr/analyses/decompiler/dephication/__init__.py,sha256=0Ufg3SSL7VkKBn-sfMZg2XRA
132
132
  angr/analyses/decompiler/dephication/dephication_base.py,sha256=UToP1wF9814qxzJpQcqGljYlOkYA7mwvLveGn41089o,3132
133
133
  angr/analyses/decompiler/dephication/graph_dephication.py,sha256=xjm_OrWgcuDIoDCEAhbW4xGzCHwOPw9ya8IroZH3qf4,2169
134
134
  angr/analyses/decompiler/dephication/graph_rewriting.py,sha256=R0rlwYL0Cnt1UPjdEJZG4kEvruKPr8I1hfhTMTZnBxA,3405
135
- angr/analyses/decompiler/dephication/graph_vvar_mapping.py,sha256=KeZ6VIQAB-Jy4bGUychFCKyinK3rKwy8E9_25ImlKhQ,13724
135
+ angr/analyses/decompiler/dephication/graph_vvar_mapping.py,sha256=nsMwppwMXrGC8_RF-neehpaz-7kmEORVhpAbjOdVFWM,13703
136
136
  angr/analyses/decompiler/dephication/rewriting_engine.py,sha256=3KUIxwUmfTZj2Jm1mB98J5vMkHqy4LLPYTrLzZfLbBA,10442
137
137
  angr/analyses/decompiler/dephication/seqnode_dephication.py,sha256=q29kS8lOs_-mxgJMtQvoZdw6l3q2lUDeXcTcGienIrY,4343
138
- angr/analyses/decompiler/optimization_passes/__init__.py,sha256=ZKaTvPqNAL6ratVB1V_rz6NRczCLaknZDd9rzRzPzpg,4271
138
+ angr/analyses/decompiler/optimization_passes/__init__.py,sha256=pCYamez51inHric94E2tD_Hy9gHl8sGHJbfG2dcpGBQ,4833
139
139
  angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=uUzQWVkeKL2C9Lq8NZ7UkkZBAXydxOd0F1jxr0Zi__Q,5514
140
140
  angr/analyses/decompiler/optimization_passes/call_stmt_rewriter.py,sha256=G1CEWo62dAMrm-3V4DfEDxT6kwXxuks10bcTtW9C_tA,1320
141
141
  angr/analyses/decompiler/optimization_passes/code_motion.py,sha256=7o6lf-qahXv5H8jLqEASVXHaz-_PGo3r6l7qH5PbDtU,15343
@@ -236,18 +236,18 @@ angr/analyses/decompiler/region_simplifiers/region_simplifier.py,sha256=ByEbrHPA
236
236
  angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py,sha256=lsTKhU6aljpXPSz-K9qDhgySuB2FsGrF9j7buWqiYr0,24980
237
237
  angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py,sha256=CngQ_LSACeEVIjuU6kIW2Y0ZSMJWFBwpL95Yh_7w3O4,3335
238
238
  angr/analyses/decompiler/ssailification/__init__.py,sha256=zcHoI7e2El2RSU_bHTpQRd1XRLHOfFScG6f3cm5y_lQ,108
239
- angr/analyses/decompiler/ssailification/rewriting.py,sha256=Ee4BZSFCjgv4q24ARNzUkbuZIXa6KbiPf_WM0kz3d64,12152
240
- angr/analyses/decompiler/ssailification/rewriting_engine.py,sha256=Zc5lAgjSlD0hntCk_GBhnMQ0lMI1NEl2IlAlXwenhmc,27003
239
+ angr/analyses/decompiler/ssailification/rewriting.py,sha256=-3jNGbtTH8-Yznoy0BguKlwoLTh9kqihT1tG0XfXX7E,12328
240
+ angr/analyses/decompiler/ssailification/rewriting_engine.py,sha256=IUQOrEJDxvCZ0iKpPfj-0lod8ejnTke629JMw1dGG_Q,27204
241
241
  angr/analyses/decompiler/ssailification/rewriting_state.py,sha256=L7apDXQLPiItuLdQFoQdut5RMUE8MRV1zRc3CsnuH6E,1883
242
242
  angr/analyses/decompiler/ssailification/ssailification.py,sha256=bTMTwS4auYQCnY9cNwqbgdYksFym0Iro5e7qRIDmlME,8711
243
- angr/analyses/decompiler/ssailification/traversal.py,sha256=Er6XFmgwmpTf6W8vg9vZupO5MDvsE2y4wONYIYYXzAQ,2949
244
- angr/analyses/decompiler/ssailification/traversal_engine.py,sha256=YBsWyuXyt_3q1yTnxqVaU6vL2nM3okUb9vkSGdHvJj8,5307
243
+ angr/analyses/decompiler/ssailification/traversal.py,sha256=75QzMIAC5RY_RcxMmqUTNeoEgGJwuTnR2KXIc8hnaMI,2981
244
+ angr/analyses/decompiler/ssailification/traversal_engine.py,sha256=qVkx9fevkqxXy6PO1Yu2esPholvoaUOzqB1zmLKW9Os,5877
245
245
  angr/analyses/decompiler/ssailification/traversal_state.py,sha256=_AsCnLiI2HFdM6WrPyAudhc0X4aU_PziznbOgmzpDzQ,1313
246
246
  angr/analyses/decompiler/structured_codegen/__init__.py,sha256=unzkTPhZbpjf5J3GWg1iAFkW17aHFHzuByZCMKE4onQ,633
247
247
  angr/analyses/decompiler/structured_codegen/base.py,sha256=9Zfp2d8Oqp6TAgLJyu7v214YDBtdy3Qx8rs801wIsv0,3796
248
- angr/analyses/decompiler/structured_codegen/c.py,sha256=ry6_o-aClSstQXIblbk1Oq-nYBX1ZF02qsKw72o-XQs,138204
248
+ angr/analyses/decompiler/structured_codegen/c.py,sha256=zkS0NwthFXiILkdlRuniPXRKyeKlI6QMHPjaERG8ysQ,138987
249
249
  angr/analyses/decompiler/structured_codegen/dummy.py,sha256=JZLeovXE-8C-unp2hbejxCG30l-yCx4sWFh7JMF_iRM,570
250
- angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=Lf4DKgDs17ohKH8UmCrnJI1BVmPrx2oIb3zXvJ7qc4U,6819
250
+ angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=J6V40RuIyKXN7r6ESftIYfoREgmgFavnUL5m3lyTzlM,7072
251
251
  angr/analyses/decompiler/structuring/__init__.py,sha256=u2SGBezMdqQF_2ixo8wr66vCMedAMY-cSjQyq2m-nR8,711
252
252
  angr/analyses/decompiler/structuring/dream.py,sha256=mPNNsNvNb-LoDcoU_HjUejRytIFY_ZyCAbK4tNq_5lM,48254
253
253
  angr/analyses/decompiler/structuring/phoenix.py,sha256=uJ6V7DMoc7DOH2b_NfnuRPvyKvB31eUIUOmuWmC7Sz4,120632
@@ -255,6 +255,13 @@ angr/analyses/decompiler/structuring/recursive_structurer.py,sha256=HRUpZiD8xlpJ
255
255
  angr/analyses/decompiler/structuring/sailr.py,sha256=6lM9cK3iU1kQ_eki7v1Z2VxTiX5OwQzIRF_BbEsw67Q,5721
256
256
  angr/analyses/decompiler/structuring/structurer_base.py,sha256=ql8HoTn9SG6snNmgEx1xQVeIHAlvdkASQpDwNR04YKw,41547
257
257
  angr/analyses/decompiler/structuring/structurer_nodes.py,sha256=a916imPog4YCCtWtzcnHIQMPLEC73C5t-zSvx9mnvGk,12081
258
+ angr/analyses/deobfuscator/__init__.py,sha256=dkmq-mm3V6kiuchwUZCXr3bDRAEB1-zsPHeEt54tlUE,648
259
+ angr/analyses/deobfuscator/api_obf_finder.py,sha256=WWl55WESeAwcJMrJPX0LqGKN0druzWz--PsG79IliQA,13241
260
+ angr/analyses/deobfuscator/api_obf_peephole_optimizer.py,sha256=VTxw3FPV7-OCPwAy6LLPnBWtiD2eDxYwAF0g3h4YOCM,2207
261
+ angr/analyses/deobfuscator/irsb_reg_collector.py,sha256=-Vd5SKwsKwGNgUVnXATus9Ty9KkvcIm8Om9lwXHSKpc,1912
262
+ angr/analyses/deobfuscator/string_obf_finder.py,sha256=ASVlbRumzlcdKZmmpLslSBU_vqeVdkhKC_g5sRyh7NA,33160
263
+ angr/analyses/deobfuscator/string_obf_opt_passes.py,sha256=W507aFl8ZyLxeUxwF4uOUkt8CIEu0xjM-dS9lVatYIg,5343
264
+ angr/analyses/deobfuscator/string_obf_peephole_optimizer.py,sha256=SlzSTIZos_pMiC_VavvbfjAaYDoCA_ffj5vblhaBI-0,1947
258
265
  angr/analyses/forward_analysis/__init__.py,sha256=59wRf7JtGPRPQLye7gjeEjuIJ2t7lzeUwGiVKgkM6lQ,319
259
266
  angr/analyses/forward_analysis/forward_analysis.py,sha256=xqix831kl0U2p4mXZYpCQKVP52bRtoLaaHhXks1OHF0,20013
260
267
  angr/analyses/forward_analysis/job_info.py,sha256=5iYthtygg22taqFTR9oFhmB2FX6z2rCuoXfBULHhFsU,1592
@@ -317,9 +324,9 @@ angr/analyses/reaching_definitions/rd_state.py,sha256=sVlbPfscDErg9Mag7XPa1HPX20
317
324
  angr/analyses/reaching_definitions/reaching_definitions.py,sha256=1GVrmkz4PfQlg9pkyl8bBM4XB6nT2eFVKaZq77GeYc4,24043
318
325
  angr/analyses/reaching_definitions/subject.py,sha256=LxfEi_uko0KJixwFMWMy79l7QW4ZMEzZ6ftIzsrC8pw,2005
319
326
  angr/analyses/reaching_definitions/function_handler_library/__init__.py,sha256=7q_JCZ0RkwaWEhOeaAd2hns9O9afso3r3BHYsdollk0,458
320
- angr/analyses/reaching_definitions/function_handler_library/stdio.py,sha256=6TFqf5F4RXCt-KQ-L2wSXNE7xC2keg2xArG2MML3k38,11059
327
+ angr/analyses/reaching_definitions/function_handler_library/stdio.py,sha256=To3dKtjqRbtqcJhybbhuQF_uxBXg4JX-A0601SsftRQ,11370
321
328
  angr/analyses/reaching_definitions/function_handler_library/stdlib.py,sha256=5PWr7HGaIxcZwkHqZCumXnGPgur5Gf1mE9a1a9izv2U,6426
322
- angr/analyses/reaching_definitions/function_handler_library/string.py,sha256=qUV3JRRkhxxAX92IeQgLkrlotjTy5SHtPXlFj_YHIhs,5047
329
+ angr/analyses/reaching_definitions/function_handler_library/string.py,sha256=14gNFX-oH8zVmfnyILklXbHAkxmsWcNT0YkYDSdHMo8,5047
323
330
  angr/analyses/reaching_definitions/function_handler_library/unistd.py,sha256=J_wALo_qxPk-KjhiWMoWDhH4O36wKmqKkWyf2zlAqug,1238
324
331
  angr/analyses/s_reaching_definitions/__init__.py,sha256=TyfVplxkJj8FAAAw9wegzJlcrbGwlFpIB23PdCcwrLA,254
325
332
  angr/analyses/s_reaching_definitions/s_rda_model.py,sha256=XBrKqy6Ky9aHqTiWiaJPMQTM4aZT9aF9OKOtiylybUM,5009
@@ -334,6 +341,9 @@ angr/analyses/typehoon/typeconsts.py,sha256=LLXbaYIdU03GgA8xYsW4eguV6qlIoHhSesqW
334
341
  angr/analyses/typehoon/typehoon.py,sha256=YzrzK6iTMCO08l2pk2ov3WAtRZuHB6AYxlFpdtDI5HY,9333
335
342
  angr/analyses/typehoon/typevars.py,sha256=F7CBFVplF_xy1gsUkUXnxEhBVeceXb-VvnYwntJ6ivU,16198
336
343
  angr/analyses/typehoon/variance.py,sha256=3wYw3of8uoar-MQ7gD6arALiwlJRW990t0BUqMarXIY,193
344
+ angr/analyses/unpacker/__init__.py,sha256=uwWYeRUgAs_F_ZtIUkzCyca_5nTpc5HwqW0JeRtPN8o,190
345
+ angr/analyses/unpacker/obfuscation_detector.py,sha256=VWMHOO2UbyiGzRYzAq9yrU3WwZ7N1i99utC8Vkbtptw,3502
346
+ angr/analyses/unpacker/packing_detector.py,sha256=SO6aXR1gZkQ7w17AAv3C1-U2KAc0yL9OIQqjNOtVnuo,5331
337
347
  angr/analyses/variable_recovery/__init__.py,sha256=eA1SHzfSx8aPufUdkvgMmBnbI6VDYKKMJklcOoCO7Ao,208
338
348
  angr/analyses/variable_recovery/annotations.py,sha256=2va7cXnRHYqVqXeVt00QanxfAo3zanL4BkAcC0-Bk20,1438
339
349
  angr/analyses/variable_recovery/engine_ail.py,sha256=oOlvhYyU9FkAcWcpRE9G_simBdDMrsCEyZRasr9TzlI,28546
@@ -345,15 +355,15 @@ angr/analyses/variable_recovery/variable_recovery_base.py,sha256=_WX6Qa6HIFUJkZn
345
355
  angr/analyses/variable_recovery/variable_recovery_fast.py,sha256=7MG8qzgnCJlYyqhZLSQfjpq0022T4825PrWWrCKspnQ,25516
346
356
  angr/angrdb/__init__.py,sha256=Jin6JjtVadtqsgm_a6gQGx3Hn7BblkbJvdcl_GwZshg,307
347
357
  angr/angrdb/db.py,sha256=ecwcJ9b_LcM9a74GXJUm7JVWTghk3JhXScLhaQ4ZP7o,6260
348
- angr/angrdb/models.py,sha256=_DTDAV6S7bEuNER8qiHrlo27fRgBRcv_HCfH7to1ZxE,4747
358
+ angr/angrdb/models.py,sha256=5Akv-fIjk3E2YHymEWu_nrbE8aQ9l75zOAaSIDEzeTQ,4794
349
359
  angr/angrdb/serializers/__init__.py,sha256=Gu2B79cp2wwXx4l_S5ITc4QcqyK5YnoG-zEG253JUZY,184
350
360
  angr/angrdb/serializers/cfg_model.py,sha256=Uxy1VDKAy_50dMXUykpEsl_zp3ko5ETuKNPRAd3Xsek,1314
351
361
  angr/angrdb/serializers/comments.py,sha256=oHlwu9weMpFJrVBo19Ud1OB-XtpUPrdH9MWZy7QnQ40,1578
352
362
  angr/angrdb/serializers/funcs.py,sha256=twDiZ5rx88kat8llBwsukKtg2lgklQpmHJ7X9lLI-DY,1727
353
- angr/angrdb/serializers/kb.py,sha256=4wEiS-q1MES5GuDfnu9iwYDu9tXZrsc6btCiXBiVCio,3876
363
+ angr/angrdb/serializers/kb.py,sha256=vDC9Qh27L4NTRd1nplRwRXDUWXyZT2eOTz-8pEBu2js,3889
354
364
  angr/angrdb/serializers/labels.py,sha256=wShkd0cnxUc5ZfeRAAZYChTUgstQRElhrEI7_T9tPcg,1472
355
365
  angr/angrdb/serializers/loader.py,sha256=xgvlp8t0H4tKgU680SpIW3r5DcrbU-qHtU_L_S_5B7E,5248
356
- angr/angrdb/serializers/structured_code.py,sha256=rnhMYipIzObumQ7N4K5cYGrCwGceP46uip9KrADh7G4,4109
366
+ angr/angrdb/serializers/structured_code.py,sha256=AYaSZneT5py8IxZSoDk-itN-xwjhrH7-M_MhRk5t27A,4309
357
367
  angr/angrdb/serializers/variables.py,sha256=LyrBqhn4B4u6y8_WBiE_JF0vwD2j6sAjIOlWPw8VqxA,2392
358
368
  angr/angrdb/serializers/xrefs.py,sha256=C28PKZVmTJMFjycPttBckvCrrMsRDAzIcU52LCwWjq0,1205
359
369
  angr/concretization_strategies/__init__.py,sha256=g24sC27w9mTCz-gWJOVO_1OPYS7EJgt4AnXh2JsJEuA,4319
@@ -443,7 +453,7 @@ angr/engines/vex/lifter.py,sha256=ZW37S1McKXzOkhP8JRfMwYT7iMxv3wOLhbQOdTW6cp8,16
443
453
  angr/engines/vex/claripy/__init__.py,sha256=4B8H1VOHrrKJMjAXZkZ0r_02issFP_bxDJJMw50yVe4,109
444
454
  angr/engines/vex/claripy/ccall.py,sha256=82w7I1OIIFmnarngCOn39iBwmYv3Xp46Xcz1ATqjn80,81765
445
455
  angr/engines/vex/claripy/datalayer.py,sha256=62OwjpOPxpXBmxkRLde5RYLfI_oCIfdj23GVYP25VUQ,4973
446
- angr/engines/vex/claripy/irop.py,sha256=Y1zmrbI3NVbmoOfcuhTyz_b-HE7HnaY-z4rnrCljlTQ,45601
456
+ angr/engines/vex/claripy/irop.py,sha256=meEiCdsUhAiAydBl8D6Zp9SrTrIOiGVVUlgu3NNRj7w,45753
447
457
  angr/engines/vex/heavy/__init__.py,sha256=VLvDao7Drp2stJnRfznKM04IFYi7rjfdRWVJ09nl7Ow,376
448
458
  angr/engines/vex/heavy/actions.py,sha256=n8LDymfj6qHAd6evzoyZmHkSN8MlVjZHfgREATC-bek,8663
449
459
  angr/engines/vex/heavy/concretizers.py,sha256=2xQYLXmugpJWIUjUrMnall2ewX05kTdOYLWjediaf6Q,14433
@@ -484,18 +494,18 @@ angr/exploration_techniques/unique.py,sha256=uA-BynLkUw9V1QJGdVGHDMmH020I5LWH8xd
484
494
  angr/exploration_techniques/veritesting.py,sha256=XmMuNcvV3lxbAyjtuFdgB8pfGiAtvfGxRPbr1MZrDBc,1388
485
495
  angr/flirt/__init__.py,sha256=O6Qo4OKaEkpq1kxluphTNauGjBH2WS5AuX91xlToyzA,4403
486
496
  angr/flirt/build_sig.py,sha256=3vQl6gZWWcF2HRgTQzFP6G3st8q2vpPHzRa3GfwkBnY,10036
487
- angr/knowledge_plugins/__init__.py,sha256=03TMAHhh9o7KyFhyfKBt9FAJJ_02GslLiWQIvhCKpvY,1177
497
+ angr/knowledge_plugins/__init__.py,sha256=pnbU_L6GoP1rzX-VIXh-RArNV94nVCD_ubHxIcWu7Ho,1160
488
498
  angr/knowledge_plugins/callsite_prototypes.py,sha256=ZVqTebckIj2VonQSGLFYW6TUgft1J5sOpSwE0K1Nyuk,1587
489
499
  angr/knowledge_plugins/comments.py,sha256=s4wUAtbUa75MC0Dc5h44V08kyVtO8VO39zcy_qkU6cg,339
490
500
  angr/knowledge_plugins/custom_strings.py,sha256=5qYAvmcm9BkTA247hZngDaHHrO9iIipYKJgGH9vxLLA,1037
491
501
  angr/knowledge_plugins/data.py,sha256=u2Is51L6Opp4eeWkpO_ss8WfXgceK5AUa_BlnPcZXmk,874
492
502
  angr/knowledge_plugins/debug_variables.py,sha256=pxiY6l0OPX3y2ZEcCGu-vJCGfw60tiPvkjdDFE9Z4uM,8075
493
- angr/knowledge_plugins/decompilation.py,sha256=izceZ5UEhnF7q5EO0D1Hd7_LLKk1QHXfdv4g4kIbFS4,1346
494
503
  angr/knowledge_plugins/indirect_jumps.py,sha256=VlIDWeU3xZyTAp1qSYyZxtusz2idxa1vrlLQmGWlkHA,1034
495
504
  angr/knowledge_plugins/labels.py,sha256=H9_as9RFSKmth-Dxwq-iibXo007ayvS7nFGnYtnN8jE,3146
505
+ angr/knowledge_plugins/obfuscations.py,sha256=CM7wGiSdZamD3t9v9kdymDWkSMtcFYsKupL7jVs-jjo,1407
496
506
  angr/knowledge_plugins/patches.py,sha256=tPjKI2GloTaWcA96u0yp75956HUkqOfsvusitEeWmGE,4335
497
507
  angr/knowledge_plugins/plugin.py,sha256=8tPrsgo1hsZG3ifXs4mWsKkeyB03ubfZdY5YArWw9-Q,766
498
- angr/knowledge_plugins/structured_code.py,sha256=Ri7e9ccjZw1v8I5WTXQ6ccj2NHPuqAkTS3BTEFxb3Rg,2168
508
+ angr/knowledge_plugins/structured_code.py,sha256=9IKRF1Pb7E0eBz0uMK36Pk8HL0fmI7JqVaeihu7uiRQ,2167
499
509
  angr/knowledge_plugins/types.py,sha256=EjskCalakpsUi4CKvjrP530VsWFBGkM4xmPbGN2ymRQ,2076
500
510
  angr/knowledge_plugins/cfg/__init__.py,sha256=Y6sJ3L81gG8oDqewYYuIY27-cxXN3nvcgUg4FRdXqCY,418
501
511
  angr/knowledge_plugins/cfg/cfg_manager.py,sha256=FteAHC7Kk3t46xzabJOn_mu6XoIuj6V6hK2IxhLmV64,2656
@@ -1338,12 +1348,12 @@ angr/utils/orderedset.py,sha256=K5PKeDqy4xUeq47k7SdZ7E3K9M1AMXJ9-veTOo5DQIE,1978
1338
1348
  angr/utils/segment_list.py,sha256=ayUMIeaFp61AhTuxsf_go4XoXRqGi8cxTeP0OyuhEk4,20369
1339
1349
  angr/utils/tagged_interval_map.py,sha256=rXKBuT14N23AAntpOKhZhmA-qqymnsvjpheFXoTRVRA,4417
1340
1350
  angr/utils/timing.py,sha256=ELuRPzdRSHzOATgtAzTFByMlVr021ypMrsvtpopreLg,1481
1341
- angr/utils/ssa/__init__.py,sha256=Z7yXY0xe4X-T4bfdK0YtL9ZFnYF-JhQuJ16ZW-wpSZI,7886
1351
+ angr/utils/ssa/__init__.py,sha256=Sz9zQVnvtmCbJJYeTG_k2JxcZtgxvIxap-KqzvRnIFQ,8015
1342
1352
  angr/utils/ssa/tmp_uses_collector.py,sha256=rSpvMxBHzg-tmvhsfjn3iLyPEKzaZN-xpQrdslMq3J4,793
1343
1353
  angr/utils/ssa/vvar_uses_collector.py,sha256=8gfAWdRMz73Deh-ZshDM3GPAot9Lf-rHzCiaCil0hlE,1342
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,,
1354
+ angr-9.2.127.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1355
+ angr-9.2.127.dist-info/METADATA,sha256=ShqPxcNeKaZBhxu__-FOBkH4XxlaufXprp4jtO5F_yg,4762
1356
+ angr-9.2.127.dist-info/WHEEL,sha256=uEDBtbrkGAvMsG1z7kIl7b5DYNNKZ110KP7bgdmmbH0,109
1357
+ angr-9.2.127.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1358
+ angr-9.2.127.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1359
+ angr-9.2.127.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-manylinux2014_aarch64
5
5
 
@@ -1,45 +0,0 @@
1
- # pylint:disable=import-outside-toplevel
2
- from __future__ import annotations
3
-
4
- from typing import Any, TYPE_CHECKING
5
-
6
- from .plugin import KnowledgeBasePlugin
7
-
8
- if TYPE_CHECKING:
9
- from angr.analyses.decompiler.decompilation_cache import DecompilationCache
10
-
11
-
12
- class DecompilationManager(KnowledgeBasePlugin):
13
- """A knowledge base plugin to store decompilation results."""
14
-
15
- def __init__(self, kb):
16
- super().__init__(kb=kb)
17
- self.cached: dict[Any, DecompilationCache] = {}
18
-
19
- def _normalize_key(self, item: int | str):
20
- if type(item) is str:
21
- item = (self._kb.labels.lookup(item[0]), *item[1:])
22
- return item
23
-
24
- def __getitem__(self, item) -> DecompilationCache:
25
- return self.cached[self._normalize_key(item)]
26
-
27
- def __setitem__(self, key, value: DecompilationCache):
28
- self.cached[self._normalize_key(key)] = value
29
-
30
- def __contains__(self, key):
31
- return self._normalize_key(key) in self.cached
32
-
33
- def __delitem__(self, key):
34
- del self.cached[self._normalize_key(key)]
35
-
36
- def discard(self, key):
37
- normalized_key = self._normalize_key(key)
38
- if normalized_key in self.cached:
39
- del self.cached[normalized_key]
40
-
41
- def copy(self):
42
- raise NotImplementedError
43
-
44
-
45
- KnowledgeBasePlugin.register_default("decompilations", DecompilationManager)