angr 9.2.142__py3-none-manylinux2014_aarch64.whl → 9.2.143__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.
- angr/__init__.py +1 -1
- angr/analyses/calling_convention/calling_convention.py +9 -9
- angr/analyses/calling_convention/fact_collector.py +31 -9
- angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py +12 -1
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +4 -1
- angr/analyses/complete_calling_conventions.py +18 -5
- angr/analyses/decompiler/ail_simplifier.py +90 -65
- angr/analyses/decompiler/optimization_passes/condition_constprop.py +49 -14
- angr/analyses/decompiler/optimization_passes/ite_region_converter.py +8 -0
- angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +15 -1
- angr/analyses/decompiler/sequence_walker.py +8 -0
- angr/analyses/decompiler/utils.py +13 -0
- angr/analyses/s_propagator.py +40 -29
- angr/analyses/s_reaching_definitions/s_rda_model.py +45 -36
- angr/analyses/s_reaching_definitions/s_rda_view.py +6 -3
- angr/analyses/s_reaching_definitions/s_reaching_definitions.py +21 -21
- angr/analyses/variable_recovery/engine_ail.py +6 -6
- angr/calling_conventions.py +18 -8
- angr/procedures/definitions/linux_kernel.py +5 -0
- angr/utils/doms.py +40 -33
- angr/utils/ssa/__init__.py +21 -14
- angr/utils/ssa/vvar_uses_collector.py +2 -2
- {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/METADATA +6 -6
- {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/RECORD +28 -28
- {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/LICENSE +0 -0
- {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/WHEEL +0 -0
- {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/entry_points.txt +0 -0
- {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/top_level.txt +0 -0
angr/calling_conventions.py
CHANGED
|
@@ -254,7 +254,7 @@ class SimFunctionArgument:
|
|
|
254
254
|
if self.size not in (4, 8):
|
|
255
255
|
raise ValueError(f"What do I do with a float {self.size} bytes long")
|
|
256
256
|
value = claripy.FPV(value, claripy.FSORT_FLOAT if self.size == 4 else claripy.FSORT_DOUBLE)
|
|
257
|
-
return value.raw_to_bv()
|
|
257
|
+
return value.raw_to_bv() # type:ignore
|
|
258
258
|
|
|
259
259
|
def check_value_get(self, value):
|
|
260
260
|
if self.is_fp:
|
|
@@ -578,8 +578,12 @@ class SimCC:
|
|
|
578
578
|
# (if applicable) and the arguments. Probably zero.
|
|
579
579
|
STACKARG_SP_DIFF = 0 # The amount of stack space reserved for the return address
|
|
580
580
|
CALLER_SAVED_REGS: list[str] = [] # Caller-saved registers
|
|
581
|
-
RETURN_ADDR: SimFunctionArgument
|
|
582
|
-
|
|
581
|
+
RETURN_ADDR: SimFunctionArgument | None = (
|
|
582
|
+
None # The location where the return address is stored, as a SimFunctionArgument
|
|
583
|
+
)
|
|
584
|
+
RETURN_VAL: SimFunctionArgument | None = (
|
|
585
|
+
None # The location where the return value is stored, as a SimFunctionArgument
|
|
586
|
+
)
|
|
583
587
|
OVERFLOW_RETURN_VAL: SimFunctionArgument | None = (
|
|
584
588
|
None # The second half of the location where a double-length return value is stored
|
|
585
589
|
)
|
|
@@ -766,7 +770,11 @@ class SimCC:
|
|
|
766
770
|
return (
|
|
767
771
|
isinstance(val, (float, claripy.ast.FP))
|
|
768
772
|
or (isinstance(val, claripy.ast.Base) and val.op.startswith("fp")) # type: ignore
|
|
769
|
-
or (
|
|
773
|
+
or (
|
|
774
|
+
isinstance(val, claripy.ast.Base)
|
|
775
|
+
and val.op == "Reverse" # type:ignore
|
|
776
|
+
and val.args[0].op.startswith("fp") # type:ignore
|
|
777
|
+
)
|
|
770
778
|
)
|
|
771
779
|
|
|
772
780
|
@staticmethod
|
|
@@ -922,8 +930,10 @@ class SimCC:
|
|
|
922
930
|
allocator.apply(state, alloc_base)
|
|
923
931
|
|
|
924
932
|
for loc, val in zip(arg_locs, vals):
|
|
933
|
+
assert loc is not None
|
|
925
934
|
loc.set_value(state, val, stack_base=stack_base)
|
|
926
|
-
self.return_addr
|
|
935
|
+
if self.return_addr is not None:
|
|
936
|
+
self.return_addr.set_value(state, ret_addr, stack_base=stack_base)
|
|
927
937
|
|
|
928
938
|
def teardown_callsite(self, state, return_val=None, prototype=None, force_callee_cleanup=False):
|
|
929
939
|
"""
|
|
@@ -943,10 +953,10 @@ class SimCC:
|
|
|
943
953
|
self.set_return_val(state, return_val, prototype.returnty)
|
|
944
954
|
# ummmmmmmm hack
|
|
945
955
|
loc = self.return_val(prototype.returnty)
|
|
946
|
-
if isinstance(loc, SimReferenceArgument):
|
|
956
|
+
if self.RETURN_VAL is not None and isinstance(loc, SimReferenceArgument):
|
|
947
957
|
self.RETURN_VAL.set_value(state, loc.ptr_loc.get_value(state))
|
|
948
958
|
|
|
949
|
-
ret_addr = self.return_addr.get_value(state)
|
|
959
|
+
ret_addr = self.return_addr.get_value(state) if self.return_addr is not None else None
|
|
950
960
|
|
|
951
961
|
if state.arch.sp_offset is not None and prototype is not None:
|
|
952
962
|
if force_callee_cleanup or self.CALLEE_CLEANUP:
|
|
@@ -975,7 +985,7 @@ class SimCC:
|
|
|
975
985
|
|
|
976
986
|
if arg.buffer:
|
|
977
987
|
if isinstance(arg.value, claripy.ast.Bits):
|
|
978
|
-
real_value = arg.value.chop(state.arch.byte_width)
|
|
988
|
+
real_value = arg.value.chop(state.arch.byte_width) # type:ignore
|
|
979
989
|
elif type(arg.value) in (bytes, str):
|
|
980
990
|
real_value = claripy.BVV(arg.value).chop(8)
|
|
981
991
|
else:
|
|
@@ -3,6 +3,7 @@ import logging
|
|
|
3
3
|
|
|
4
4
|
from angr.sim_type import SimTypeFunction, SimTypePointer, SimTypeLong, SimStruct, SimTypeInt, SimTypeChar, SimTypeBottom, SimTypeFd, SimTypeLongLong
|
|
5
5
|
from angr.procedures import SIM_PROCEDURES as P
|
|
6
|
+
from angr.calling_conventions import SYSCALL_CC
|
|
6
7
|
from . import SimSyscallLibrary
|
|
7
8
|
|
|
8
9
|
_l = logging.getLogger(__name__)
|
|
@@ -11,6 +12,10 @@ _l = logging.getLogger(__name__)
|
|
|
11
12
|
lib = SimSyscallLibrary()
|
|
12
13
|
lib.set_library_names('linux')
|
|
13
14
|
lib.add_all_from_dict(P['linux_kernel'])
|
|
15
|
+
for arch, os_name_to_cc in SYSCALL_CC.items():
|
|
16
|
+
linux_syscall_cc = os_name_to_cc.get("Linux")
|
|
17
|
+
if linux_syscall_cc:
|
|
18
|
+
lib.set_default_cc(arch, linux_syscall_cc)
|
|
14
19
|
|
|
15
20
|
lib.add('open', P['posix']['open'])
|
|
16
21
|
lib.add('read', P['posix']['read'])
|
angr/utils/doms.py
CHANGED
|
@@ -21,6 +21,7 @@ class IncrementalDominators:
|
|
|
21
21
|
self._pre: bool = not post # calculate dominators
|
|
22
22
|
|
|
23
23
|
self._doms: dict[Any, Any] = {}
|
|
24
|
+
self._dfs: dict[Any, set[Any]] | None = None # initialized on-demand
|
|
24
25
|
self._inverted_dom_tree: dict[Any, Any] | None = None # initialized on demand
|
|
25
26
|
|
|
26
27
|
self._doms = self.init_doms()
|
|
@@ -33,6 +34,21 @@ class IncrementalDominators:
|
|
|
33
34
|
doms = networkx.immediate_dominators(self.graph, self.start)
|
|
34
35
|
return doms
|
|
35
36
|
|
|
37
|
+
def init_dfs(self) -> dict[Any, set[Any]]:
|
|
38
|
+
_pred = self.graph.predecessors if self._pre else self.graph.successors
|
|
39
|
+
df: dict = {}
|
|
40
|
+
for u in self._doms:
|
|
41
|
+
_preds = list(_pred(u)) # type:ignore
|
|
42
|
+
if len(_preds) >= 2:
|
|
43
|
+
for v in _preds:
|
|
44
|
+
if v in self._doms:
|
|
45
|
+
while v is not self._doms[u]:
|
|
46
|
+
if v not in df:
|
|
47
|
+
df[v] = set()
|
|
48
|
+
df[v].add(u)
|
|
49
|
+
v = self._doms[v]
|
|
50
|
+
return df
|
|
51
|
+
|
|
36
52
|
def _update_inverted_domtree(self):
|
|
37
53
|
# recalculate the dominators for dominatees of replaced nodes
|
|
38
54
|
if self._inverted_dom_tree is None:
|
|
@@ -63,6 +79,18 @@ class IncrementalDominators:
|
|
|
63
79
|
new_node_doms.append(dtee)
|
|
64
80
|
self._doms[new_node] = new_dom
|
|
65
81
|
|
|
82
|
+
if self._dfs is not None:
|
|
83
|
+
# update dominance frontiers
|
|
84
|
+
if replaced_head in self._dfs:
|
|
85
|
+
self._dfs[new_node] = self._dfs[replaced_head]
|
|
86
|
+
for rn in replaced_nodes:
|
|
87
|
+
if rn in self._dfs:
|
|
88
|
+
del self._dfs[rn]
|
|
89
|
+
for df in self._dfs.values():
|
|
90
|
+
if rn in df:
|
|
91
|
+
df.remove(rn)
|
|
92
|
+
df.add(new_node)
|
|
93
|
+
|
|
66
94
|
# keep inverted dom tree up-to-date
|
|
67
95
|
self._inverted_dom_tree[new_dom].append(new_node)
|
|
68
96
|
self._inverted_dom_tree[new_node] = new_node_doms
|
|
@@ -85,39 +113,9 @@ class IncrementalDominators:
|
|
|
85
113
|
"""
|
|
86
114
|
Generate the dominance frontier of a node.
|
|
87
115
|
"""
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
_pred = self.graph.predecessors if self._pre else self.graph.successors
|
|
93
|
-
_succ = self.graph.successors if self._pre else self.graph.predecessors
|
|
94
|
-
df = set()
|
|
95
|
-
|
|
96
|
-
visited = {node}
|
|
97
|
-
queue = [node]
|
|
98
|
-
|
|
99
|
-
while queue:
|
|
100
|
-
u = queue.pop(0)
|
|
101
|
-
preds = list(_pred(u)) # type: ignore
|
|
102
|
-
added = False
|
|
103
|
-
if len(preds) >= 2:
|
|
104
|
-
for v in preds:
|
|
105
|
-
if v in self._doms:
|
|
106
|
-
while v != self._doms[u]:
|
|
107
|
-
if v is node:
|
|
108
|
-
df.add(u)
|
|
109
|
-
added = True
|
|
110
|
-
break
|
|
111
|
-
v = self._doms[v]
|
|
112
|
-
if added:
|
|
113
|
-
break
|
|
114
|
-
|
|
115
|
-
if not added:
|
|
116
|
-
for v in _succ(u): # type: ignore
|
|
117
|
-
if v not in visited:
|
|
118
|
-
visited.add(v)
|
|
119
|
-
queue.append(v)
|
|
120
|
-
return df
|
|
116
|
+
if self._dfs is None:
|
|
117
|
+
self._dfs = self.init_dfs()
|
|
118
|
+
return self._dfs.get(node, set())
|
|
121
119
|
|
|
122
120
|
def dominates(self, dominator_node: Any, node: Any) -> bool:
|
|
123
121
|
"""
|
|
@@ -140,3 +138,12 @@ class IncrementalDominators:
|
|
|
140
138
|
if true_doms[k] != self._doms[k]:
|
|
141
139
|
print(f"{k!r}: {true_doms[k]!r} {self._doms[k]!r}")
|
|
142
140
|
raise ValueError("dominators do not match")
|
|
141
|
+
|
|
142
|
+
if self._dfs is not None:
|
|
143
|
+
dfs = self.init_dfs()
|
|
144
|
+
if len(dfs) != len(self._dfs):
|
|
145
|
+
raise ValueError("dfs do not match")
|
|
146
|
+
for k in dfs:
|
|
147
|
+
if dfs[k] != self._dfs[k]:
|
|
148
|
+
print(f"{k!r}: {dfs[k]!r} {self._dfs[k]!r}")
|
|
149
|
+
raise ValueError("dfs do not match")
|
angr/utils/ssa/__init__.py
CHANGED
|
@@ -79,41 +79,42 @@ def get_reg_offset_base(reg_offset, arch, size=None, resilient=True):
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
def get_vvar_deflocs(
|
|
82
|
-
blocks, phi_vvars: dict[
|
|
83
|
-
) -> dict[VirtualVariable, CodeLocation]:
|
|
84
|
-
vvar_to_loc: dict[VirtualVariable, CodeLocation] = {}
|
|
85
|
-
|
|
82
|
+
blocks, phi_vvars: dict[int, set[int]] | None = None
|
|
83
|
+
) -> dict[int, tuple[VirtualVariable, CodeLocation]]:
|
|
84
|
+
vvar_to_loc: dict[int, tuple[VirtualVariable, CodeLocation]] = {}
|
|
86
85
|
for block in blocks:
|
|
87
86
|
for stmt_idx, stmt in enumerate(block.statements):
|
|
88
87
|
if isinstance(stmt, Assignment) and isinstance(stmt.dst, VirtualVariable):
|
|
89
|
-
vvar_to_loc[stmt.dst] =
|
|
88
|
+
vvar_to_loc[stmt.dst.varid] = stmt.dst, CodeLocation(
|
|
89
|
+
block.addr, stmt_idx, ins_addr=stmt.ins_addr, block_idx=block.idx
|
|
90
|
+
)
|
|
90
91
|
if phi_vvars is not None and isinstance(stmt.src, Phi):
|
|
91
|
-
phi_vvars[stmt.dst] = {
|
|
92
|
+
phi_vvars[stmt.dst.varid] = {
|
|
93
|
+
vvar_.varid for src, vvar_ in stmt.src.src_and_vvars if vvar_ is not None
|
|
94
|
+
}
|
|
92
95
|
elif isinstance(stmt, Call):
|
|
93
96
|
if isinstance(stmt.ret_expr, VirtualVariable):
|
|
94
|
-
vvar_to_loc[stmt.ret_expr] = CodeLocation(
|
|
97
|
+
vvar_to_loc[stmt.ret_expr.varid] = stmt.ret_expr, CodeLocation(
|
|
95
98
|
block.addr, stmt_idx, ins_addr=stmt.ins_addr, block_idx=block.idx
|
|
96
99
|
)
|
|
97
100
|
if isinstance(stmt.fp_ret_expr, VirtualVariable):
|
|
98
|
-
vvar_to_loc[stmt.fp_ret_expr] = CodeLocation(
|
|
101
|
+
vvar_to_loc[stmt.fp_ret_expr.varid] = stmt.fp_ret_expr, CodeLocation(
|
|
99
102
|
block.addr, stmt_idx, ins_addr=stmt.ins_addr, block_idx=block.idx
|
|
100
103
|
)
|
|
101
104
|
|
|
102
105
|
return vvar_to_loc
|
|
103
106
|
|
|
104
107
|
|
|
105
|
-
def get_vvar_uselocs(blocks) -> dict[int,
|
|
106
|
-
vvar_to_loc: dict[int,
|
|
107
|
-
|
|
108
|
+
def get_vvar_uselocs(blocks) -> dict[int, list[tuple[VirtualVariable, CodeLocation]]]:
|
|
109
|
+
vvar_to_loc: dict[int, list[tuple[VirtualVariable, CodeLocation]]] = defaultdict(list)
|
|
108
110
|
for block in blocks:
|
|
109
111
|
collector = VVarUsesCollector()
|
|
110
112
|
collector.walk(block)
|
|
111
113
|
for vvar_idx, vvar_and_uselocs in collector.vvar_and_uselocs.items():
|
|
112
114
|
if vvar_idx not in vvar_to_loc:
|
|
113
|
-
vvar_to_loc[vvar_idx] = vvar_and_uselocs
|
|
115
|
+
vvar_to_loc[vvar_idx] = list(vvar_and_uselocs)
|
|
114
116
|
else:
|
|
115
|
-
vvar_to_loc[vvar_idx]
|
|
116
|
-
|
|
117
|
+
vvar_to_loc[vvar_idx] += vvar_and_uselocs
|
|
117
118
|
return vvar_to_loc
|
|
118
119
|
|
|
119
120
|
|
|
@@ -256,6 +257,12 @@ def has_ite_stmt(stmt: Statement) -> bool:
|
|
|
256
257
|
return walker.has_blacklisted_exprs
|
|
257
258
|
|
|
258
259
|
|
|
260
|
+
def has_tmp_expr(expr: Expression) -> bool:
|
|
261
|
+
walker = AILBlacklistExprTypeWalker((Tmp,))
|
|
262
|
+
walker.walk_expression(expr)
|
|
263
|
+
return walker.has_blacklisted_exprs
|
|
264
|
+
|
|
265
|
+
|
|
259
266
|
def check_in_between_stmts(
|
|
260
267
|
graph: networkx.DiGraph,
|
|
261
268
|
blocks: dict[tuple[int, int | None], Block],
|
|
@@ -18,7 +18,7 @@ class VVarUsesCollector(AILBlockWalkerBase):
|
|
|
18
18
|
def __init__(self):
|
|
19
19
|
super().__init__()
|
|
20
20
|
|
|
21
|
-
self.vvar_and_uselocs: dict[int,
|
|
21
|
+
self.vvar_and_uselocs: dict[int, list[tuple[VirtualVariable, CodeLocation]]] = defaultdict(list)
|
|
22
22
|
self.vvars: set[int] = set()
|
|
23
23
|
|
|
24
24
|
def _handle_VirtualVariable(
|
|
@@ -31,7 +31,7 @@ class VVarUsesCollector(AILBlockWalkerBase):
|
|
|
31
31
|
# avoid phi loops
|
|
32
32
|
return
|
|
33
33
|
if block is not None:
|
|
34
|
-
self.vvar_and_uselocs[expr.varid].
|
|
34
|
+
self.vvar_and_uselocs[expr.varid].append(
|
|
35
35
|
(expr, CodeLocation(block.addr, stmt_idx, ins_addr=stmt.ins_addr, block_idx=block.idx))
|
|
36
36
|
)
|
|
37
37
|
self.vvars.add(expr.varid)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: angr
|
|
3
|
-
Version: 9.2.
|
|
3
|
+
Version: 9.2.143
|
|
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.
|
|
20
|
-
Requires-Dist: archinfo==9.2.
|
|
19
|
+
Requires-Dist: ailment==9.2.143
|
|
20
|
+
Requires-Dist: archinfo==9.2.143
|
|
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.
|
|
25
|
-
Requires-Dist: cle==9.2.
|
|
24
|
+
Requires-Dist: claripy==9.2.143
|
|
25
|
+
Requires-Dist: cle==9.2.143
|
|
26
26
|
Requires-Dist: mulpyplexer
|
|
27
27
|
Requires-Dist: nampa
|
|
28
28
|
Requires-Dist: networkx!=2.8.1,>=2.0
|
|
@@ -31,7 +31,7 @@ Requires-Dist: psutil
|
|
|
31
31
|
Requires-Dist: pycparser>=2.18
|
|
32
32
|
Requires-Dist: pydemumble
|
|
33
33
|
Requires-Dist: pyformlang
|
|
34
|
-
Requires-Dist: pyvex==9.2.
|
|
34
|
+
Requires-Dist: pyvex==9.2.143
|
|
35
35
|
Requires-Dist: rich>=13.1.0
|
|
36
36
|
Requires-Dist: sortedcontainers
|
|
37
37
|
Requires-Dist: sympy
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
angr/__init__.py,sha256=
|
|
1
|
+
angr/__init__.py,sha256=Mo641qVF1N3KAGJkmn1JLpl_L-dcI2TU5J8cSAsHHQ0,9153
|
|
2
2
|
angr/__main__.py,sha256=XeawhF6Cco9eWcfMTDWzYYggLB3qjnQ87IIeFOplaHM,2873
|
|
3
3
|
angr/annocfg.py,sha256=0NIvcuCskwz45hbBzigUTAuCrYutjDMwEXtMJf0y0S0,10742
|
|
4
4
|
angr/blade.py,sha256=NhesOPloKJC1DQJRv_HBT18X7oNxK16JwAfNz2Lc1o0,15384
|
|
5
5
|
angr/block.py,sha256=34rsSr800m0CM1cqniusdCF8GMVc1yXJVUVKu7cYfBE,14679
|
|
6
6
|
angr/callable.py,sha256=j9Orwd4H4fPqOYylcEt5GuLGPV7ZOqyA_OYO2bp5PAA,6437
|
|
7
|
-
angr/calling_conventions.py,sha256=
|
|
7
|
+
angr/calling_conventions.py,sha256=6g-jU6Jt6bi0ZwihG1OT7Nq7_uNp52qA2o0Gq__DkWQ,97388
|
|
8
8
|
angr/code_location.py,sha256=kXNJDEMge9VRHadrK4E6HQ8wDdCaHSXNqyAZuHDEGuM,5397
|
|
9
9
|
angr/codenode.py,sha256=hCrQRp4Ebb2X6JicNmY1PXo3_Pm8GDxVivVW0Pwe84k,3918
|
|
10
10
|
angr/errors.py,sha256=I0L-TbxmVYIkC-USuHwaQ9BGPi2YVObnhZXQQ3kJFuo,8385
|
|
@@ -37,7 +37,7 @@ angr/analyses/cdg.py,sha256=UxKp30a1pq0q-FsgmutHU3sdXFwXOjlcal0wzX4EYJM,6229
|
|
|
37
37
|
angr/analyses/class_identifier.py,sha256=7zOIryNL_DrXW11GGzZjp6TPwv--2VZ5ZuSzYpXirmQ,2951
|
|
38
38
|
angr/analyses/code_tagging.py,sha256=Gj7Ms24RnmhC9OD57gw7R6_c-pLfqSug-LVUMw_JmXE,3510
|
|
39
39
|
angr/analyses/codecave.py,sha256=k_dDhMN4wcq2bs5VrwpOv96OowQ7AbZSs6j5Z6YbIpk,2209
|
|
40
|
-
angr/analyses/complete_calling_conventions.py,sha256=
|
|
40
|
+
angr/analyses/complete_calling_conventions.py,sha256=nVrDHhCV3cawD_KxkAYj2fsszAskkFUHC1677rI6xEM,20490
|
|
41
41
|
angr/analyses/congruency_check.py,sha256=QeYRrdrs_iluLLnKz3KUHkCTPRVl5PgM2T0ZXd786HA,16165
|
|
42
42
|
angr/analyses/datagraph_meta.py,sha256=Ng0jqLD5ucRn_fBXhYq3l6scs3kczRk6Sk-Sen1forc,3414
|
|
43
43
|
angr/analyses/ddg.py,sha256=AWPPsL2bfTAua5meuQfPFL6b29PLpCLZzw-LGCv5iVo,63214
|
|
@@ -54,7 +54,7 @@ angr/analyses/pathfinder.py,sha256=_prNqmRUSuSt2ZCP8qbvNN7pw7mtM8pWr9IL0AO6XL8,1
|
|
|
54
54
|
angr/analyses/proximity_graph.py,sha256=-g7pNpbP2HQhKW3w1Eff23K8vAsgWWYoe3wVxRh3Lhk,16066
|
|
55
55
|
angr/analyses/reassembler.py,sha256=dc1bM-4pxVa2dypC7qL2REdKhpyKhSbQPf-LCDIBEwA,98351
|
|
56
56
|
angr/analyses/s_liveness.py,sha256=K4soSrcQE9pIn7Yf2Lb3LZEu1ymuQVpWzOqLKunFDGQ,7974
|
|
57
|
-
angr/analyses/s_propagator.py,sha256=
|
|
57
|
+
angr/analyses/s_propagator.py,sha256=ChFdiT4wCN0p5mY0UsFGopH3ZH0zM5V_2Ur5cN15Kcc,23667
|
|
58
58
|
angr/analyses/smc.py,sha256=0fvLPUpjlg6GCjYnfSqanXkGYlthmPwqMYR-ZYBHsbo,5075
|
|
59
59
|
angr/analyses/soot_class_hierarchy.py,sha256=R4xeacn-a_Q7PxSyj_stu5mnglZkPB5US5srKChX3mk,8740
|
|
60
60
|
angr/analyses/stack_pointer_tracker.py,sha256=54wijIt-uJZ2KIOjbEpgKucNoDK3qIvtGh2WuEvRAD0,33370
|
|
@@ -65,8 +65,8 @@ angr/analyses/vsa_ddg.py,sha256=PNJ1vQNdHKYCcuXrsXZohtjrxznaWn6GZY2TfhBoY2Q,1613
|
|
|
65
65
|
angr/analyses/vtable.py,sha256=1Ed7jzr99rk9VgOGzcxBw_6GFqby5mIdSTGPqQPhcZM,3872
|
|
66
66
|
angr/analyses/xrefs.py,sha256=vs6cpVmwXHOmxrI9lJUwCRMYbPSqvIQXS5_fINMaOGI,10290
|
|
67
67
|
angr/analyses/calling_convention/__init__.py,sha256=bK5VS6AxT5l86LAhTL7l1HUT9IuvXG9x9ikbIohIFoE,194
|
|
68
|
-
angr/analyses/calling_convention/calling_convention.py,sha256=
|
|
69
|
-
angr/analyses/calling_convention/fact_collector.py,sha256=
|
|
68
|
+
angr/analyses/calling_convention/calling_convention.py,sha256=7Vk38yMQO6Ao_ud2AxuFRFCe7ZSA9-9UJMmoF2pI7NY,44051
|
|
69
|
+
angr/analyses/calling_convention/fact_collector.py,sha256=I_qkousJbVd1dPl4T-_jxQG1Qxg3y9MNWKkc6EytFmw,27086
|
|
70
70
|
angr/analyses/calling_convention/utils.py,sha256=WjpagYFRgJkukNzGN-H7N_vuIxMGJmgHTLvRn9Ccf4I,2071
|
|
71
71
|
angr/analyses/cfg/__init__.py,sha256=-w8Vd6FD6rtjlQaQ7MxwmliFgS2zt-kZepAY4gHas04,446
|
|
72
72
|
angr/analyses/cfg/cfb.py,sha256=scykl1FJvqcTe2x69zreWi0PG_zYMbka3k6tlRwaD_g,15367
|
|
@@ -81,9 +81,9 @@ angr/analyses/cfg/indirect_jump_resolvers/__init__.py,sha256=6P6GXkJ0v_WlWtz7aRp
|
|
|
81
81
|
angr/analyses/cfg/indirect_jump_resolvers/amd64_elf_got.py,sha256=_nyJPqXKtzse0LZc6O1uxDIAqkKlSrkTTrsJaZ2GH0U,2070
|
|
82
82
|
angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py,sha256=cE713VrHJdNZrB91fuXmmDPWQg1YkWNz015OiRQfNhE,1777
|
|
83
83
|
angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py,sha256=AIA6YeWlzBAOwhdDolHfxoEWvSsvNPo73KDRIjbHdtY,5202
|
|
84
|
-
angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py,sha256=
|
|
84
|
+
angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py,sha256=1iwVKXt-LCtP8ZfZWXuJOz-0BJaWqsWT0fQIBM3RJic,7665
|
|
85
85
|
angr/analyses/cfg/indirect_jump_resolvers/default_resolvers.py,sha256=AuIdMPP_52Y6BgrwkofnWBkdoQCGeG0q6BYV9pdgoLg,1694
|
|
86
|
-
angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=
|
|
86
|
+
angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=BRQ1-TG9Q9wyH6EwsXRJ2y2i7uq-atZdh3W75QjFUvA,107167
|
|
87
87
|
angr/analyses/cfg/indirect_jump_resolvers/memload_resolver.py,sha256=jmCiDkloyyqb6iRfjXBlu2N9uwYhiqeiXWhnUXW27dU,2950
|
|
88
88
|
angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py,sha256=SSwWVKCqMNxdqTeMkLqXk5UFmzgxJDm8H-xLNBr1Hnc,10173
|
|
89
89
|
angr/analyses/cfg/indirect_jump_resolvers/mips_elf_got.py,sha256=DT1tomUTCXmhD8N_V4KMeyS-YecDlR7f4kOANiKyGeI,5213
|
|
@@ -100,7 +100,7 @@ angr/analyses/data_dep/data_dependency_analysis.py,sha256=_vQPkw1NMrzD7kAFeotOaa
|
|
|
100
100
|
angr/analyses/data_dep/dep_nodes.py,sha256=LcNcxeuKXMMc0GkmvKqqFwNlAk3GhzBR8ixM4CD305k,4640
|
|
101
101
|
angr/analyses/data_dep/sim_act_location.py,sha256=EXmfFF3lV9XogcB2gFRMUoJCbjpDYiSKNyfafkBfiY8,1564
|
|
102
102
|
angr/analyses/decompiler/__init__.py,sha256=eyxt2UKvPkbuS_l_1GPb0CJ6hrj2wTavh-mVf23wwiQ,1162
|
|
103
|
-
angr/analyses/decompiler/ail_simplifier.py,sha256=
|
|
103
|
+
angr/analyses/decompiler/ail_simplifier.py,sha256=rHe7C7SveyuKqimLqA5mNs24L4h0ENjCBcysiymsGM0,77732
|
|
104
104
|
angr/analyses/decompiler/ailgraph_walker.py,sha256=m71HCthOr9J8PZoMxJzCPskay8yfCZ2j8esWT4Ka3KI,1630
|
|
105
105
|
angr/analyses/decompiler/block_io_finder.py,sha256=xMwG8Bi69OGNYVs0U0F4yxM8kEsnyrsMrf0gEr8dOEw,10923
|
|
106
106
|
angr/analyses/decompiler/block_similarity.py,sha256=SseCdWgh-kS9q_C_BRxlQ4OwCRQfg-9IyncxKXm_OG8,6849
|
|
@@ -123,9 +123,9 @@ angr/analyses/decompiler/region_identifier.py,sha256=iZ3bTHWwf3wRaxD3Z3nUZtqUkUj
|
|
|
123
123
|
angr/analyses/decompiler/region_walker.py,sha256=u0hR0bEX1hSwkv-vejIM1gS-hcX2F2DLsDqpKhQ5_pQ,752
|
|
124
124
|
angr/analyses/decompiler/return_maker.py,sha256=pKn9_y5VXqTeJnD5uzLLd9sH_Dp_9wkPcWPiJPTV-7A,2550
|
|
125
125
|
angr/analyses/decompiler/seq_to_blocks.py,sha256=bB-1m8oBO59AlAp6izAROks3BBxFW8zigLlrIMt6Yfs,564
|
|
126
|
-
angr/analyses/decompiler/sequence_walker.py,sha256=
|
|
126
|
+
angr/analyses/decompiler/sequence_walker.py,sha256=FsTQSMAm28xOdI0tbLS0UE51jDNBn0yR8etWmKqeoVw,9898
|
|
127
127
|
angr/analyses/decompiler/stack_item.py,sha256=4HpYE54sOnODzMLrNX1m-Mb9RlQYjojJqNKjjDz9jxU,814
|
|
128
|
-
angr/analyses/decompiler/utils.py,sha256=
|
|
128
|
+
angr/analyses/decompiler/utils.py,sha256=NRUwLPXvdxn4xu6UQom3edJ27olhT-4E5TaoL9j5uCE,39662
|
|
129
129
|
angr/analyses/decompiler/ccall_rewriters/__init__.py,sha256=TrnykR5cGCXy85f8OApJBjWSQ8WQSzjrnpND2fODWG8,207
|
|
130
130
|
angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py,sha256=llCGH-p9AzfECO_fWTsSUYhX1SzIUr1BKRDTLfc8aXs,23426
|
|
131
131
|
angr/analyses/decompiler/ccall_rewriters/rewriter_base.py,sha256=VbCENcybYUGrBD6U1Bp4nonNeEf05z_qhrpHBcyJw_4,496
|
|
@@ -146,7 +146,7 @@ angr/analyses/decompiler/optimization_passes/__init__.py,sha256=nv2cTSPfQAaYXHBq
|
|
|
146
146
|
angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=kai4nR2LONJdsq7Zc4zV8A4IjIsuytzFqcSegsld6lI,5846
|
|
147
147
|
angr/analyses/decompiler/optimization_passes/call_stmt_rewriter.py,sha256=G1CEWo62dAMrm-3V4DfEDxT6kwXxuks10bcTtW9C_tA,1320
|
|
148
148
|
angr/analyses/decompiler/optimization_passes/code_motion.py,sha256=7o6lf-qahXv5H8jLqEASVXHaz-_PGo3r6l7qH5PbDtU,15343
|
|
149
|
-
angr/analyses/decompiler/optimization_passes/condition_constprop.py,sha256=
|
|
149
|
+
angr/analyses/decompiler/optimization_passes/condition_constprop.py,sha256=8uU6jDkwgPwX0JtO0dmygtN8lYbV-a5q2ghC_lzrULw,8762
|
|
150
150
|
angr/analyses/decompiler/optimization_passes/const_derefs.py,sha256=z9owQb8xNtIaVZddpFY1quHQOPEbBRnuQvmXEyiPHo0,10490
|
|
151
151
|
angr/analyses/decompiler/optimization_passes/const_prop_reverter.py,sha256=-Y8JXf4IJIeBY9jSiHe_agVYSWrr6ATaSaat4M10gQs,13245
|
|
152
152
|
angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py,sha256=DzvgsAhU4GqvS0yN0Q2JezkJAuo2KInCgZ7fsB-ibz4,4021
|
|
@@ -157,7 +157,7 @@ angr/analyses/decompiler/optimization_passes/expr_op_swapper.py,sha256=PJMJ0INWi
|
|
|
157
157
|
angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py,sha256=q2ZOxKQUXUwQNEDjEnj-ji32f6n_XR8M82lr_0ImJdM,5079
|
|
158
158
|
angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py,sha256=_rqXGIs03Idkw7IOtxHhapQ-qCMO_mKlJ_FfHAM6TAo,24842
|
|
159
159
|
angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=eeKEkoT0WphueWZd5P07cfa9lTBK3BzL0jUyOx4XmJQ,7820
|
|
160
|
-
angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=
|
|
160
|
+
angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=PE_DnoBzk-86_8nyTPZ8En2ox_o3GQuI-rNJBd2aS-Y,13777
|
|
161
161
|
angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=2ZHySDpRYCmehdvrtC8u_2MHVV2ehdRv7jmmwa8Z4YY,42063
|
|
162
162
|
angr/analyses/decompiler/optimization_passes/mod_simplifier.py,sha256=BzgSGM39Uv1WAGPM831wLnKW8t-mw9tQoV07ZlxbU_Y,3379
|
|
163
163
|
angr/analyses/decompiler/optimization_passes/optimization_pass.py,sha256=P1AtFzsDYws_gZA8Ydy7QS7Ev5sRa4Gu3U9Eztp34rU,25738
|
|
@@ -224,7 +224,7 @@ angr/analyses/decompiler/peephole_optimizations/rewrite_mips_gp_loads.py,sha256=
|
|
|
224
224
|
angr/analyses/decompiler/peephole_optimizations/rol_ror.py,sha256=b1OTZH0mFSPGtlV-a_Gdila38YaVNm1AJX9qtPuyzBA,5134
|
|
225
225
|
angr/analyses/decompiler/peephole_optimizations/sar_to_signed_div.py,sha256=yZ_di2u55BiyjTfZatW5pQoqA5g3dbOXaLQv9CxkXhg,5180
|
|
226
226
|
angr/analyses/decompiler/peephole_optimizations/shl_to_mul.py,sha256=ooZ1wDPl5HsiaIpPQ57wgbtSwHfmTHDJ8xey8P6_3-Y,783
|
|
227
|
-
angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py,sha256=
|
|
227
|
+
angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py,sha256=wjPcnIb0pqPZ9mSpKQPqwJ-1DKre07Hh_tnU3tLPerE,1899
|
|
228
228
|
angr/analyses/decompiler/peephole_optimizations/single_bit_cond_to_boolexpr.py,sha256=1BdUs9d9Ma2PqMYy5VgIvsc30im5ni-By88RWkWbpSY,1872
|
|
229
229
|
angr/analyses/decompiler/peephole_optimizations/single_bit_xor.py,sha256=tnjWYeKWL63rvLVcicVSD1NbVQJfHtLT85E_PNeYt6s,979
|
|
230
230
|
angr/analyses/decompiler/peephole_optimizations/tidy_stack_addr.py,sha256=RRzuc2iGzQPvYaZAmpLKim0pJ_yR3-muGnJQxvpcN8w,4786
|
|
@@ -340,9 +340,9 @@ angr/analyses/reaching_definitions/function_handler_library/stdlib.py,sha256=qig
|
|
|
340
340
|
angr/analyses/reaching_definitions/function_handler_library/string.py,sha256=BHgsZPyMf5FASi8UBgeNm1mV9PpQyZD93v7OuKL3eGw,8181
|
|
341
341
|
angr/analyses/reaching_definitions/function_handler_library/unistd.py,sha256=cKBMwwzKlwTzmmVR-EU5AhFnMbJuDVf45GgA5b-K7Jg,1916
|
|
342
342
|
angr/analyses/s_reaching_definitions/__init__.py,sha256=TyfVplxkJj8FAAAw9wegzJlcrbGwlFpIB23PdCcwrLA,254
|
|
343
|
-
angr/analyses/s_reaching_definitions/s_rda_model.py,sha256=
|
|
344
|
-
angr/analyses/s_reaching_definitions/s_rda_view.py,sha256=
|
|
345
|
-
angr/analyses/s_reaching_definitions/s_reaching_definitions.py,sha256=
|
|
343
|
+
angr/analyses/s_reaching_definitions/s_rda_model.py,sha256=olgGRhPVEtw1Y38Z_uNBZANoguOu-X8Ud84q2nquUbk,5718
|
|
344
|
+
angr/analyses/s_reaching_definitions/s_rda_view.py,sha256=g3ESg9G7eLllEawCPN892uKEQyl7mroyPX1Y-907JY8,13642
|
|
345
|
+
angr/analyses/s_reaching_definitions/s_reaching_definitions.py,sha256=alrfcyKaKCxSklvsDRg2pBlhpC2Tbbc6ee6fq5OUMwk,7771
|
|
346
346
|
angr/analyses/typehoon/__init__.py,sha256=KjKBUZadAd3grXUy48_qO0L4Me-riSqPGteVDcTL59M,92
|
|
347
347
|
angr/analyses/typehoon/dfa.py,sha256=E0dNlKxy6A9uniqRJn3Rcwa6c6_NT_VVjtHM8b-j2LE,3503
|
|
348
348
|
angr/analyses/typehoon/lifter.py,sha256=iLl9F7RZtyth3qEeTvJGyvrKxrmaLn8LxS9DUbkoz4k,2823
|
|
@@ -357,7 +357,7 @@ angr/analyses/unpacker/obfuscation_detector.py,sha256=VWMHOO2UbyiGzRYzAq9yrU3WwZ
|
|
|
357
357
|
angr/analyses/unpacker/packing_detector.py,sha256=SO6aXR1gZkQ7w17AAv3C1-U2KAc0yL9OIQqjNOtVnuo,5331
|
|
358
358
|
angr/analyses/variable_recovery/__init__.py,sha256=eA1SHzfSx8aPufUdkvgMmBnbI6VDYKKMJklcOoCO7Ao,208
|
|
359
359
|
angr/analyses/variable_recovery/annotations.py,sha256=2va7cXnRHYqVqXeVt00QanxfAo3zanL4BkAcC0-Bk20,1438
|
|
360
|
-
angr/analyses/variable_recovery/engine_ail.py,sha256=
|
|
360
|
+
angr/analyses/variable_recovery/engine_ail.py,sha256=oRob9_8oeDTBBO9Jt8vJM5SgtOXu8kgqOhfALkCbOZ4,31898
|
|
361
361
|
angr/analyses/variable_recovery/engine_base.py,sha256=Vx7yhGDJXyFoJziV31PzE9rRO6JMVhLtpHhzS8SoRm4,51428
|
|
362
362
|
angr/analyses/variable_recovery/engine_vex.py,sha256=5Q2S1jAr7tALa0m0okqBHBe3cUePmJlnV1Grxos1xbo,21344
|
|
363
363
|
angr/analyses/variable_recovery/irsb_scanner.py,sha256=1dL2IC7fZGuRrhmcpa2Q-G666aMPmbM8zSzmIRpLNSY,5141
|
|
@@ -583,7 +583,7 @@ angr/procedures/definitions/cgc.py,sha256=Jrb74dNzy05h_nmsC3GjN5Yr5_jWIjpZ24ZsVk
|
|
|
583
583
|
angr/procedures/definitions/glibc.py,sha256=L_NvGd20GQqGx2yGPmjfloFmOwQ0_dmA8rpLA6AlpN0,394188
|
|
584
584
|
angr/procedures/definitions/gnulib.py,sha256=GK4eVXFxwgwhJ9cr47PiTUS4fKYrqPfMtIvwM464Oyo,1107
|
|
585
585
|
angr/procedures/definitions/libstdcpp.py,sha256=IoPJJEFQZR6ysOYvU1EmVK_IyQPuoq73ehImJuGS3JM,750
|
|
586
|
-
angr/procedures/definitions/linux_kernel.py,sha256=
|
|
586
|
+
angr/procedures/definitions/linux_kernel.py,sha256=xPpfHkfaA_5jS6mPX1YDCPLHEAirAmeGW6mLDBKIlC8,239128
|
|
587
587
|
angr/procedures/definitions/linux_loader.py,sha256=uEeMktLesh0NzHmRfgP76IuSzL4YMssR_SSjBRSqA9c,267
|
|
588
588
|
angr/procedures/definitions/msvcr.py,sha256=CQgWXrKcEjx9xfPf2BZOOPaQJ5AUqwdNtN_5FdYtRzg,651
|
|
589
589
|
angr/procedures/definitions/parse_syscalls_from_local_system.py,sha256=ssyMjeyuPVYHnbmArwDPO0XXMW1n5Odv__n17cdLVcY,1823
|
|
@@ -1346,7 +1346,7 @@ angr/utils/bits.py,sha256=_eWPyymSbj01jsLexicRtD_X7sUKKj_fTUI0DEIZ-rc,1054
|
|
|
1346
1346
|
angr/utils/constants.py,sha256=ZnK6Ed-1U_8yaw-7ZaCLSM0-z7bSuKPg715bBrquxKE,257
|
|
1347
1347
|
angr/utils/cowdict.py,sha256=qx2iO1rrCDTQUGX9dqi9ZAly2Dgm6bCEgdSAQw9MxRM,2159
|
|
1348
1348
|
angr/utils/cpp.py,sha256=k6ZOUNIqYxLd5WSRKP2T3li-3zt06PtneLgaBWPOtiU,516
|
|
1349
|
-
angr/utils/doms.py,sha256=
|
|
1349
|
+
angr/utils/doms.py,sha256=l5_GUvVcjfwglZTqGYKOx5QvJ_pE_PWBIhH8fTk_e80,5356
|
|
1350
1350
|
angr/utils/dynamic_dictlist.py,sha256=bHQrxhUCkk6NDDzEBouAWESjMyKfQUJIk8g38R27iXw,3048
|
|
1351
1351
|
angr/utils/endness.py,sha256=wBcek3rwRQCYdMVFOV5h5q16Ahgjn2x_zZdPeZQEui0,501
|
|
1352
1352
|
angr/utils/enums_conv.py,sha256=fA6qeoRZ6Cj6gCIS_PZbP4PX7E8IybnYQ90OZGnBVrc,2746
|
|
@@ -1363,12 +1363,12 @@ angr/utils/segment_list.py,sha256=DulfCDdNETMehseRey64FkjmORQvoSyVd9eRZ4sQ7tw,21
|
|
|
1363
1363
|
angr/utils/tagged_interval_map.py,sha256=rXKBuT14N23AAntpOKhZhmA-qqymnsvjpheFXoTRVRA,4417
|
|
1364
1364
|
angr/utils/timing.py,sha256=n-YZ86g0ZWmLhsoNvcimRpKzewR5hmquLZe6fagxlBw,2224
|
|
1365
1365
|
angr/utils/types.py,sha256=5EDtrusFLf1fIcMz8fgJiPPsUhpEm0bf_oqZ_PSRje0,1836
|
|
1366
|
-
angr/utils/ssa/__init__.py,sha256=
|
|
1366
|
+
angr/utils/ssa/__init__.py,sha256=ohP9IJh9ZvdVH8nH-ZrYA8hwIi8L98XQ6NMNL6q_pJ0,13649
|
|
1367
1367
|
angr/utils/ssa/tmp_uses_collector.py,sha256=rSpvMxBHzg-tmvhsfjn3iLyPEKzaZN-xpQrdslMq3J4,793
|
|
1368
|
-
angr/utils/ssa/vvar_uses_collector.py,sha256=
|
|
1369
|
-
angr-9.2.
|
|
1370
|
-
angr-9.2.
|
|
1371
|
-
angr-9.2.
|
|
1372
|
-
angr-9.2.
|
|
1373
|
-
angr-9.2.
|
|
1374
|
-
angr-9.2.
|
|
1368
|
+
angr/utils/ssa/vvar_uses_collector.py,sha256=O2aNZeM5DL8qatyhYuMhgbYGFp6Onm2yr9pKq1wRjA0,1347
|
|
1369
|
+
angr-9.2.143.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
|
|
1370
|
+
angr-9.2.143.dist-info/METADATA,sha256=ryCEY0JmKGy8FEZUpWjUS-gZI9AMwrHwF3oA2Joz1to,4755
|
|
1371
|
+
angr-9.2.143.dist-info/WHEEL,sha256=CAAIYj673m82uITKVUyoDW3NEf1U9lO9qYeWaWdK-w8,109
|
|
1372
|
+
angr-9.2.143.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
|
|
1373
|
+
angr-9.2.143.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
|
|
1374
|
+
angr-9.2.143.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|