angr 9.2.133__py3-none-macosx_11_0_arm64.whl → 9.2.135__py3-none-macosx_11_0_arm64.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/__init__.py +2 -1
- angr/analyses/calling_convention/__init__.py +6 -0
- angr/analyses/{calling_convention.py → calling_convention/calling_convention.py} +28 -61
- angr/analyses/calling_convention/fact_collector.py +503 -0
- angr/analyses/calling_convention/utils.py +57 -0
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +6 -6
- angr/analyses/complete_calling_conventions.py +32 -3
- angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +0 -6
- angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py +1 -6
- angr/analyses/decompiler/optimization_passes/switch_default_case_duplicator.py +0 -6
- angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py +0 -6
- angr/analyses/decompiler/structured_codegen/c.py +15 -5
- angr/analyses/variable_recovery/engine_vex.py +5 -0
- angr/calling_conventions.py +12 -4
- angr/knowledge_plugins/functions/function.py +4 -4
- angr/knowledge_plugins/functions/function_manager.py +6 -0
- angr/lib/angr_native.dylib +0 -0
- angr/storage/memory_mixins/name_resolution_mixin.py +1 -1
- angr/utils/bits.py +13 -0
- {angr-9.2.133.dist-info → angr-9.2.135.dist-info}/METADATA +6 -6
- {angr-9.2.133.dist-info → angr-9.2.135.dist-info}/RECORD +26 -23
- {angr-9.2.133.dist-info → angr-9.2.135.dist-info}/LICENSE +0 -0
- {angr-9.2.133.dist-info → angr-9.2.135.dist-info}/WHEEL +0 -0
- {angr-9.2.133.dist-info → angr-9.2.135.dist-info}/entry_points.txt +0 -0
- {angr-9.2.133.dist-info → angr-9.2.135.dist-info}/top_level.txt +0 -0
|
@@ -13,12 +13,6 @@ from .optimization_pass import OptimizationPass, OptimizationPassStage
|
|
|
13
13
|
_l = logging.getLogger(name=__name__)
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
def s2u(s, bits):
|
|
17
|
-
if s > 0:
|
|
18
|
-
return s
|
|
19
|
-
return (1 << bits) + s
|
|
20
|
-
|
|
21
|
-
|
|
22
16
|
class RegisterSaveAreaSimplifier(OptimizationPass):
|
|
23
17
|
"""
|
|
24
18
|
Optimizes away register spilling effects, including callee-saved registers.
|
|
@@ -5,18 +5,13 @@ import logging
|
|
|
5
5
|
|
|
6
6
|
import ailment
|
|
7
7
|
|
|
8
|
+
from angr.utils.bits import s2u
|
|
8
9
|
from .optimization_pass import OptimizationPass, OptimizationPassStage
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
_l = logging.getLogger(name=__name__)
|
|
12
13
|
|
|
13
14
|
|
|
14
|
-
def s2u(s, bits):
|
|
15
|
-
if s > 0:
|
|
16
|
-
return s
|
|
17
|
-
return (1 << bits) + s
|
|
18
|
-
|
|
19
|
-
|
|
20
15
|
class StackCanarySimplifier(OptimizationPass):
|
|
21
16
|
"""
|
|
22
17
|
Removes stack canary checks from decompilation results.
|
|
@@ -17,12 +17,6 @@ from .optimization_pass import OptimizationPass, OptimizationPassStage
|
|
|
17
17
|
_l = logging.getLogger(name=__name__)
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
def s2u(s, bits):
|
|
21
|
-
if s > 0:
|
|
22
|
-
return s
|
|
23
|
-
return (1 << bits) + s
|
|
24
|
-
|
|
25
|
-
|
|
26
20
|
class SwitchDefaultCaseDuplicator(OptimizationPass):
|
|
27
21
|
"""
|
|
28
22
|
For each switch-case construct (identified by jump tables), duplicate the default-case node when we detect
|
|
@@ -13,12 +13,6 @@ from .optimization_pass import OptimizationPass, OptimizationPassStage
|
|
|
13
13
|
_l = logging.getLogger(name=__name__)
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
def s2u(s, bits):
|
|
17
|
-
if s > 0:
|
|
18
|
-
return s
|
|
19
|
-
return (1 << bits) + s
|
|
20
|
-
|
|
21
|
-
|
|
22
16
|
class WinStackCanarySimplifier(OptimizationPass):
|
|
23
17
|
"""
|
|
24
18
|
Removes stack canary checks from decompilation results for Windows PE files.
|
|
@@ -1221,20 +1221,30 @@ class CAssignment(CStatement):
|
|
|
1221
1221
|
"Shl": "<<",
|
|
1222
1222
|
"Sar": ">>",
|
|
1223
1223
|
}
|
|
1224
|
+
commutative_ops = {"Add", "Mul", "And", "Xor", "Or"}
|
|
1224
1225
|
|
|
1226
|
+
compound_expr_rhs = None
|
|
1225
1227
|
if (
|
|
1226
1228
|
self.codegen.use_compound_assignments
|
|
1227
1229
|
and isinstance(self.lhs, CVariable)
|
|
1228
1230
|
and isinstance(self.rhs, CBinaryOp)
|
|
1229
|
-
and isinstance(self.rhs.lhs, CVariable)
|
|
1230
|
-
and self.lhs.unified_variable is not None
|
|
1231
|
-
and self.rhs.lhs.unified_variable is not None
|
|
1232
|
-
and self.lhs.unified_variable is self.rhs.lhs.unified_variable
|
|
1233
1231
|
and self.rhs.op in compound_assignment_ops
|
|
1232
|
+
and self.lhs.unified_variable is not None
|
|
1234
1233
|
):
|
|
1234
|
+
if isinstance(self.rhs.lhs, CVariable) and self.lhs.unified_variable is self.rhs.lhs.unified_variable:
|
|
1235
|
+
compound_expr_rhs = self.rhs.rhs
|
|
1236
|
+
elif (
|
|
1237
|
+
self.rhs.op in commutative_ops
|
|
1238
|
+
and isinstance(self.rhs.rhs, CVariable)
|
|
1239
|
+
and self.lhs.unified_variable is self.rhs.rhs.unified_variable
|
|
1240
|
+
):
|
|
1241
|
+
compound_expr_rhs = self.rhs.lhs
|
|
1242
|
+
|
|
1243
|
+
if compound_expr_rhs is not None:
|
|
1235
1244
|
# a = a + x => a += x
|
|
1245
|
+
# a = x + a => a += x
|
|
1236
1246
|
yield f" {compound_assignment_ops[self.rhs.op]}= ", self
|
|
1237
|
-
yield from CExpression._try_c_repr_chunks(
|
|
1247
|
+
yield from CExpression._try_c_repr_chunks(compound_expr_rhs)
|
|
1238
1248
|
else:
|
|
1239
1249
|
yield " = ", self
|
|
1240
1250
|
yield from CExpression._try_c_repr_chunks(self.rhs)
|
|
@@ -215,6 +215,11 @@ class SimEngineVRVEX(
|
|
|
215
215
|
addr = RichR(loc.stack_offset + one_sp)
|
|
216
216
|
self._load(addr, loc.size)
|
|
217
217
|
|
|
218
|
+
# clobber caller-saved registers
|
|
219
|
+
for reg_name in func.calling_convention.CALLER_SAVED_REGS:
|
|
220
|
+
reg_offset, reg_size = self.arch.registers[reg_name]
|
|
221
|
+
self._assign_to_register(reg_offset, self._top(reg_size * self.arch.byte_width), reg_size)
|
|
222
|
+
|
|
218
223
|
def _process_block_end(self, stmt_result, whitelist):
|
|
219
224
|
# handles block-end calls
|
|
220
225
|
current_addr = self.state.block_addr
|
angr/calling_conventions.py
CHANGED
|
@@ -4,6 +4,7 @@ import logging
|
|
|
4
4
|
from typing import cast
|
|
5
5
|
from collections.abc import Iterable
|
|
6
6
|
from collections import defaultdict
|
|
7
|
+
import contextlib
|
|
7
8
|
|
|
8
9
|
import claripy
|
|
9
10
|
import archinfo
|
|
@@ -33,7 +34,6 @@ from .sim_type import (
|
|
|
33
34
|
)
|
|
34
35
|
from .state_plugins.sim_action_object import SimActionObject
|
|
35
36
|
from .engines.soot.engine import SootMixin
|
|
36
|
-
import contextlib
|
|
37
37
|
|
|
38
38
|
l = logging.getLogger(name=__name__)
|
|
39
39
|
l.addFilter(UniqueLogFilter())
|
|
@@ -656,7 +656,7 @@ class SimCC:
|
|
|
656
656
|
self.next_arg(session, SimTypePointer(SimTypeBottom()))
|
|
657
657
|
return session
|
|
658
658
|
|
|
659
|
-
def return_in_implicit_outparam(self, ty):
|
|
659
|
+
def return_in_implicit_outparam(self, ty): # pylint:disable=unused-argument
|
|
660
660
|
return False
|
|
661
661
|
|
|
662
662
|
def stack_space(self, args):
|
|
@@ -1098,7 +1098,8 @@ class SimCC:
|
|
|
1098
1098
|
all_fp_args: set[int | str] = {_arg_ident(a) for a in sample_inst.fp_args}
|
|
1099
1099
|
all_int_args: set[int | str] = {_arg_ident(a) for a in sample_inst.int_args}
|
|
1100
1100
|
both_iter = sample_inst.memory_args
|
|
1101
|
-
|
|
1101
|
+
max_args = cls._guess_arg_count(args)
|
|
1102
|
+
some_both_args: set[int | str] = {_arg_ident(next(both_iter)) for _ in range(max_args)}
|
|
1102
1103
|
|
|
1103
1104
|
new_args = []
|
|
1104
1105
|
for arg in args:
|
|
@@ -1115,6 +1116,13 @@ class SimCC:
|
|
|
1115
1116
|
|
|
1116
1117
|
return True
|
|
1117
1118
|
|
|
1119
|
+
@classmethod
|
|
1120
|
+
def _guess_arg_count(cls, args, limit: int = 64) -> int:
|
|
1121
|
+
# pylint:disable=not-callable
|
|
1122
|
+
stack_args = [a for a in args if isinstance(a, SimStackArg)]
|
|
1123
|
+
stack_arg_count = (max(a.stack_offset for a in stack_args) // cls.ARCH().bytes + 1) if stack_args else 0
|
|
1124
|
+
return min(limit, max(len(args), stack_arg_count))
|
|
1125
|
+
|
|
1118
1126
|
@staticmethod
|
|
1119
1127
|
def find_cc(
|
|
1120
1128
|
arch: archinfo.Arch, args: list[SimFunctionArgument], sp_delta: int, platform: str = "Linux"
|
|
@@ -1687,7 +1695,7 @@ class SimCCARM(SimCC):
|
|
|
1687
1695
|
raise NotImplementedError("Bug. Report to @rhelmot")
|
|
1688
1696
|
elif cls == "MEMORY":
|
|
1689
1697
|
mapped_classes.append(next(session.both_iter))
|
|
1690
|
-
elif cls
|
|
1698
|
+
elif cls in {"INTEGER", "SINGLEP"}:
|
|
1691
1699
|
try:
|
|
1692
1700
|
mapped_classes.append(next(session.int_iter))
|
|
1693
1701
|
except StopIteration:
|
|
@@ -12,7 +12,6 @@ from cle.backends.symbol import Symbol
|
|
|
12
12
|
from archinfo.arch_arm import get_real_address_if_arm
|
|
13
13
|
import claripy
|
|
14
14
|
|
|
15
|
-
from angr.block import Block
|
|
16
15
|
from angr.knowledge_plugins.cfg.memory_data import MemoryDataSort
|
|
17
16
|
|
|
18
17
|
from angr.codenode import CodeNode, BlockNode, HookNode, SyscallNode
|
|
@@ -403,7 +402,7 @@ class Function(Serializable):
|
|
|
403
402
|
def nodes(self) -> Iterable[CodeNode]:
|
|
404
403
|
return self.transition_graph.nodes()
|
|
405
404
|
|
|
406
|
-
def get_node(self, addr) ->
|
|
405
|
+
def get_node(self, addr) -> BlockNode | None:
|
|
407
406
|
return self._addr_to_block_node.get(addr, None)
|
|
408
407
|
|
|
409
408
|
@property
|
|
@@ -1036,8 +1035,9 @@ class Function(Serializable):
|
|
|
1036
1035
|
if function.returning is False:
|
|
1037
1036
|
# the target function does not return
|
|
1038
1037
|
the_node = self.get_node(src.addr)
|
|
1039
|
-
|
|
1040
|
-
|
|
1038
|
+
if the_node is not None:
|
|
1039
|
+
self._callout_sites.add(the_node)
|
|
1040
|
+
self._add_endpoint(the_node, "call")
|
|
1041
1041
|
|
|
1042
1042
|
def get_call_sites(self) -> Iterable[int]:
|
|
1043
1043
|
"""
|
|
@@ -460,6 +460,12 @@ class FunctionManager(KnowledgeBasePlugin, collections.abc.Mapping):
|
|
|
460
460
|
:rtype: Function or None
|
|
461
461
|
"""
|
|
462
462
|
if name is not None and name.startswith("sub_"):
|
|
463
|
+
# first check if a function with the specified name exists
|
|
464
|
+
for func in self.get_by_name(name, check_previous_names=check_previous_names):
|
|
465
|
+
if plt is None or func.is_plt == plt:
|
|
466
|
+
return func
|
|
467
|
+
|
|
468
|
+
# then enter the syntactic sugar mode
|
|
463
469
|
try:
|
|
464
470
|
addr = int(name.split("_")[-1], 16)
|
|
465
471
|
name = None
|
angr/lib/angr_native.dylib
CHANGED
|
Binary file
|
|
@@ -33,7 +33,7 @@ class NameResolutionMixin(MemoryMixin):
|
|
|
33
33
|
self.store("cc_dep1", _get_flags(self.state)) # constraints cannot be added by this
|
|
34
34
|
self.store("cc_op", 0) # OP_COPY
|
|
35
35
|
return self.state.arch.registers["cc_dep1"]
|
|
36
|
-
if is_arm_arch(self.state.arch) and name == "flags":
|
|
36
|
+
if (is_arm_arch(self.state.arch) or self.state.arch.name == "AARCH64") and name == "flags":
|
|
37
37
|
if not is_write:
|
|
38
38
|
self.store("cc_dep1", _get_flags(self.state))
|
|
39
39
|
self.store("cc_op", 0)
|
angr/utils/bits.py
CHANGED
|
@@ -31,3 +31,16 @@ def zeroextend_on_demand(op0: claripy.ast.BV, op1: claripy.ast.BV) -> claripy.as
|
|
|
31
31
|
if op0.size() > op1.size():
|
|
32
32
|
return claripy.ZeroExt(op0.size() - op1.size(), op1)
|
|
33
33
|
return op1
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def s2u(s, bits):
|
|
37
|
+
mask = (1 << bits) - 1
|
|
38
|
+
if s > 0:
|
|
39
|
+
return s & mask
|
|
40
|
+
return ((1 << bits) + s) & mask
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def u2s(u, bits):
|
|
44
|
+
if u < (1 << (bits - 1)):
|
|
45
|
+
return u
|
|
46
|
+
return (u & ((1 << bits) - 1)) - (1 << bits)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: angr
|
|
3
|
-
Version: 9.2.
|
|
3
|
+
Version: 9.2.135
|
|
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.135
|
|
20
|
+
Requires-Dist: archinfo==9.2.135
|
|
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.135
|
|
25
|
+
Requires-Dist: cle==9.2.135
|
|
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.
|
|
34
|
+
Requires-Dist: pyvex==9.2.135
|
|
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=odyiYDh0AXyqpY0ivUXjx-rMAeY96FK0_h_7pMp_sFU,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=4mP-OKNqiTxOf2-GPfyKokpuF4j4ua_o5WZcC7W6BL8,14815
|
|
6
6
|
angr/callable.py,sha256=1rzhXjWlx62jKJaRKHvp12rbsJ75zNa86vXtCt6eFLo,6065
|
|
7
|
-
angr/calling_conventions.py,sha256=
|
|
7
|
+
angr/calling_conventions.py,sha256=zciZ1DAct9heBs-2CkVpkvT2yK5jExIom3SoA9WW2ug,93409
|
|
8
8
|
angr/code_location.py,sha256=kXNJDEMge9VRHadrK4E6HQ8wDdCaHSXNqyAZuHDEGuM,5397
|
|
9
9
|
angr/codenode.py,sha256=hehAHvUuxgUYiVtCFMTxloYC6bO4_CQjcp_52WWDHMA,3781
|
|
10
10
|
angr/errors.py,sha256=I0L-TbxmVYIkC-USuHwaQ9BGPi2YVObnhZXQQ3kJFuo,8385
|
|
@@ -26,19 +26,18 @@ angr/slicer.py,sha256=DND0BERanYKafasRH9MDFAng0rSjdjmzXj2-phCD6CQ,10634
|
|
|
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=
|
|
29
|
+
angr/analyses/__init__.py,sha256=JVCNQfvffUjtvz5kvzvtYKmH_yG1Qjy-caSuQ8JMgpw,3470
|
|
30
30
|
angr/analyses/analysis.py,sha256=7Jkob2CBEXHzW7F1hZk9AqfOKLglpfHplpyxba1fN_4,14998
|
|
31
31
|
angr/analyses/backward_slice.py,sha256=a9uro3rqqDDiQRCnDCQzaSRcZvDQkCdRzLsrx5xe8uM,27219
|
|
32
32
|
angr/analyses/binary_optimizer.py,sha256=Sm05TR-F5QtU1qx9jKr2lGfj03xw_O1IyBJjwnoUjJ0,26160
|
|
33
33
|
angr/analyses/bindiff.py,sha256=AGOlH6Hsofo-6WwEleX80-DYs70aV-P8JV-GiDnoT9A,51391
|
|
34
34
|
angr/analyses/boyscout.py,sha256=pMJNmVBt8MbCiVe8Pk8SQ3IOppHGK2qHe6G7A3e3WA8,2483
|
|
35
35
|
angr/analyses/callee_cleanup_finder.py,sha256=aogcfYfvzsVPVfseJl2KKczMu7pPPtwC7bqTyQ0UsvI,2812
|
|
36
|
-
angr/analyses/calling_convention.py,sha256=tW8NgKRCN9wjc5YpkzBV8hckAAoRKrb0EXjl3kBVa70,40869
|
|
37
36
|
angr/analyses/cdg.py,sha256=oPgHV4MVpGkfRUE0ZiaghBSkgTsr6tkG1IK4f_GtOBA,6230
|
|
38
37
|
angr/analyses/class_identifier.py,sha256=bytFQ0c7KuQhbYPPJDkhtV0ZU_Xo8_9KLZxHe9TtyMs,3010
|
|
39
38
|
angr/analyses/code_tagging.py,sha256=Gj7Ms24RnmhC9OD57gw7R6_c-pLfqSug-LVUMw_JmXE,3510
|
|
40
39
|
angr/analyses/codecave.py,sha256=k_dDhMN4wcq2bs5VrwpOv96OowQ7AbZSs6j5Z6YbIpk,2209
|
|
41
|
-
angr/analyses/complete_calling_conventions.py,sha256=
|
|
40
|
+
angr/analyses/complete_calling_conventions.py,sha256=Jsl9YgYW4OaRFBXqcXNTt_AwKoHMP2M7NIMh3kZYodI,19356
|
|
42
41
|
angr/analyses/congruency_check.py,sha256=SRlUKJaylCQydWsb4AGG8LUGuh5RwI8ksKZL6jf-4P8,16166
|
|
43
42
|
angr/analyses/datagraph_meta.py,sha256=Ng0jqLD5ucRn_fBXhYq3l6scs3kczRk6Sk-Sen1forc,3414
|
|
44
43
|
angr/analyses/ddg.py,sha256=c8P8zCkem7P717PYIJD35evK64Oh8YBa_tj6LdCeuTQ,63229
|
|
@@ -65,6 +64,10 @@ angr/analyses/vfg.py,sha256=_RDuP83ts55-FTVNMQGx7MJD1aDvNw4FHDhCwa7nUFw,72879
|
|
|
65
64
|
angr/analyses/vsa_ddg.py,sha256=NQUauuMPZVrW7oCPpvIl-OIvGWUZHk_xEVLw3SCYzj8,16137
|
|
66
65
|
angr/analyses/vtable.py,sha256=1Ed7jzr99rk9VgOGzcxBw_6GFqby5mIdSTGPqQPhcZM,3872
|
|
67
66
|
angr/analyses/xrefs.py,sha256=vs6cpVmwXHOmxrI9lJUwCRMYbPSqvIQXS5_fINMaOGI,10290
|
|
67
|
+
angr/analyses/calling_convention/__init__.py,sha256=bK5VS6AxT5l86LAhTL7l1HUT9IuvXG9x9ikbIohIFoE,194
|
|
68
|
+
angr/analyses/calling_convention/calling_convention.py,sha256=_fTXe9oVCJ61roZrWhRRv_5FGtiQpiJmlLkf1x3ZL9Q,39692
|
|
69
|
+
angr/analyses/calling_convention/fact_collector.py,sha256=FCRGdAr6VmROUemKM3ibpJ4LU3rUT3PwC312zkq6sT4,21334
|
|
70
|
+
angr/analyses/calling_convention/utils.py,sha256=A4m85U1gd_dEuPEjlh4vWBC-mxxozOFIGIhApmgTvdI,2017
|
|
68
71
|
angr/analyses/cfg/__init__.py,sha256=-w8Vd6FD6rtjlQaQ7MxwmliFgS2zt-kZepAY4gHas04,446
|
|
69
72
|
angr/analyses/cfg/cfb.py,sha256=2Iej5PhB_U9JbfvvBuXy_07_UY9j7yiztKZYrGnc0U0,15369
|
|
70
73
|
angr/analyses/cfg/cfg.py,sha256=ZHZFWtP4uD1YxgKy44O_oD_BiSo871Llcd1zpXmFkBE,3177
|
|
@@ -80,7 +83,7 @@ angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py,sha256=cE713VrHJdNZrB9
|
|
|
80
83
|
angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py,sha256=AIA6YeWlzBAOwhdDolHfxoEWvSsvNPo73KDRIjbHdtY,5202
|
|
81
84
|
angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py,sha256=xD-iVlOmYljEwubiff5tNPvdEl7aQhzMQWWjA7l2C_s,5277
|
|
82
85
|
angr/analyses/cfg/indirect_jump_resolvers/default_resolvers.py,sha256=v555keK0pfM451YzWbIC0pMG1pQu1wCme1moWaMPqGo,1541
|
|
83
|
-
angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=
|
|
86
|
+
angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=KdCaHa4i0ZS3KleySPB46JIswoOid2MWlwgxnhWgkzE,104709
|
|
84
87
|
angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py,sha256=SSwWVKCqMNxdqTeMkLqXk5UFmzgxJDm8H-xLNBr1Hnc,10173
|
|
85
88
|
angr/analyses/cfg/indirect_jump_resolvers/mips_elf_got.py,sha256=DT1tomUTCXmhD8N_V4KMeyS-YecDlR7f4kOANiKyGeI,5213
|
|
86
89
|
angr/analyses/cfg/indirect_jump_resolvers/propagator_utils.py,sha256=ppqn5vYGOD8HknweabD7NWgZmoBgjkOC6m9t-XD46T0,992
|
|
@@ -154,17 +157,17 @@ angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=gsWg
|
|
|
154
157
|
angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=ldEBDJTwS-FfzIkvCilCDY8IxzarHTXxv4jNZG28XDU,38818
|
|
155
158
|
angr/analyses/decompiler/optimization_passes/mod_simplifier.py,sha256=BzgSGM39Uv1WAGPM831wLnKW8t-mw9tQoV07ZlxbU_Y,3379
|
|
156
159
|
angr/analyses/decompiler/optimization_passes/optimization_pass.py,sha256=EYls4BcE4z1Hjvhez5oodKWLjLZe_KpRgKQZV0hck3Q,22637
|
|
157
|
-
angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py,sha256=
|
|
160
|
+
angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py,sha256=X6A252YhqUvT7A6J5NqCKBom2PRlh5NDHpAjXfNvBfg,7854
|
|
158
161
|
angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py,sha256=GIFiYM_C_ChHrD2D1JGRFlE--PU3FOxTqzOX-lXmJLY,6404
|
|
159
162
|
angr/analyses/decompiler/optimization_passes/ret_deduplicator.py,sha256=STMnRyZWiqdoGPa3c7Q4KCHv-JHUdJ2t4oLEltEMpII,7995
|
|
160
163
|
angr/analyses/decompiler/optimization_passes/return_duplicator_base.py,sha256=7QO_sJBR8WgjRxD8PXwxu0NeoCQchNJNClcwMzEmOsU,24921
|
|
161
164
|
angr/analyses/decompiler/optimization_passes/return_duplicator_high.py,sha256=ICDYwQJt5E2OVasdqn42jzbjwUXhSj6Plh3Y1iUHpAQ,2178
|
|
162
165
|
angr/analyses/decompiler/optimization_passes/return_duplicator_low.py,sha256=-mBEVfwGz986lDDEGwBG8wvGQTrFZHE7TLV-7rWt-H0,10076
|
|
163
|
-
angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py,sha256=
|
|
164
|
-
angr/analyses/decompiler/optimization_passes/switch_default_case_duplicator.py,sha256=
|
|
166
|
+
angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py,sha256=vHfTCTG33r-PwwikP8tBbNqWvNt-SvRZfOsDNeAdiPc,14421
|
|
167
|
+
angr/analyses/decompiler/optimization_passes/switch_default_case_duplicator.py,sha256=gvGpjP3t-an8iIBkmPGXob0-aRHL2idGZpd7hErlgFo,6461
|
|
165
168
|
angr/analyses/decompiler/optimization_passes/switch_reused_entry_rewriter.py,sha256=m7ZMkqE2qbl4rl4M_Fi8xS6I1vUaTzUBIzsE6qpbwkM,4020
|
|
166
169
|
angr/analyses/decompiler/optimization_passes/tag_slicer.py,sha256=8_gmoeYgDD1Hb8Rpqcb-01_B4897peDF-J6KA5PjQT8,1176
|
|
167
|
-
angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=
|
|
170
|
+
angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=57AlQgCbaPSiY7OwcKdOXnr0LUACCO0r1TweqIDyUzo,12728
|
|
168
171
|
angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py,sha256=6NxaX2oT6BMkevb8xt9vlS3Jl-CmSK59F0FVab68B48,3088
|
|
169
172
|
angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py,sha256=hTeOdooVDZnBnjiAguD7_BS9YJru8rOiSHN3H0sdzcA,126
|
|
170
173
|
angr/analyses/decompiler/optimization_passes/duplication_reverter/ail_merge_graph.py,sha256=nLu-s4wn6b3z6MlItwCH1kWpeAc4C-fP3MNN3WRCSuo,21666
|
|
@@ -249,7 +252,7 @@ angr/analyses/decompiler/ssailification/traversal_engine.py,sha256=dczhUEuoBTg0w
|
|
|
249
252
|
angr/analyses/decompiler/ssailification/traversal_state.py,sha256=_AsCnLiI2HFdM6WrPyAudhc0X4aU_PziznbOgmzpDzQ,1313
|
|
250
253
|
angr/analyses/decompiler/structured_codegen/__init__.py,sha256=mxG4yruPAab8735wVgXZ1zu8qFPz-njKe0m5UcywE3o,633
|
|
251
254
|
angr/analyses/decompiler/structured_codegen/base.py,sha256=DEeNrBOC8AAJb-qFyUoYeX8fpHSPmAsutCDF-0UhaQ4,3782
|
|
252
|
-
angr/analyses/decompiler/structured_codegen/c.py,sha256=
|
|
255
|
+
angr/analyses/decompiler/structured_codegen/c.py,sha256=MJk6QzT3V9xnAeHfvcruyFdrS7g8xXyktqJthp2QYxo,141432
|
|
253
256
|
angr/analyses/decompiler/structured_codegen/dummy.py,sha256=JZLeovXE-8C-unp2hbejxCG30l-yCx4sWFh7JMF_iRM,570
|
|
254
257
|
angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=J6V40RuIyKXN7r6ESftIYfoREgmgFavnUL5m3lyTzlM,7072
|
|
255
258
|
angr/analyses/decompiler/structuring/__init__.py,sha256=kEFP-zv9CZrhJtLTKwT9-9cGVTls71wLYaLDUuYorBU,711
|
|
@@ -351,7 +354,7 @@ angr/analyses/variable_recovery/__init__.py,sha256=eA1SHzfSx8aPufUdkvgMmBnbI6VDY
|
|
|
351
354
|
angr/analyses/variable_recovery/annotations.py,sha256=2va7cXnRHYqVqXeVt00QanxfAo3zanL4BkAcC0-Bk20,1438
|
|
352
355
|
angr/analyses/variable_recovery/engine_ail.py,sha256=ZmJCMH_y0oYdLRTwHw34MOy-5_9SgrklLgnLLLtHf5k,31197
|
|
353
356
|
angr/analyses/variable_recovery/engine_base.py,sha256=ZqIlYpEPSB5WmhQ6p8H0HIMkRUG7ISMlCDOsHuE4-Sc,51146
|
|
354
|
-
angr/analyses/variable_recovery/engine_vex.py,sha256=
|
|
357
|
+
angr/analyses/variable_recovery/engine_vex.py,sha256=UAA2FpOq4lAjsBzy5FoIOoR9dF4615UFNLDlDiWEfCs,20645
|
|
355
358
|
angr/analyses/variable_recovery/irsb_scanner.py,sha256=vWplxRc-iwIJsQ5aHWH1t29zdyLPjfklm8h3CWHseng,5143
|
|
356
359
|
angr/analyses/variable_recovery/variable_recovery.py,sha256=s5hwY9oOibhLxsJIePhYRmrX0mrDIi_zKkfNblwYyhE,22169
|
|
357
360
|
angr/analyses/variable_recovery/variable_recovery_base.py,sha256=cJsc64ev_UmWTb2KNTdRF3HtpZyh4J2CEgnUAlH2MVg,15181
|
|
@@ -518,8 +521,8 @@ angr/knowledge_plugins/cfg/cfg_node.py,sha256=mAvQ8XAEURM7y0suc_S9lfxCmfXSTJHmWB
|
|
|
518
521
|
angr/knowledge_plugins/cfg/indirect_jump.py,sha256=W3KWpH7Sx-6Z7h_BwQjCK_XfP3ce_MaeAu_Aaq3D3qg,2072
|
|
519
522
|
angr/knowledge_plugins/cfg/memory_data.py,sha256=QLxFZfrtwz8u6UJn1L-Sxa-C8S0Gy9IOlfNfHCLPIow,5056
|
|
520
523
|
angr/knowledge_plugins/functions/__init__.py,sha256=asiLNiT6sHbjP6eU-kDpawIoVxv4J35cwz5yQHtQ2E0,167
|
|
521
|
-
angr/knowledge_plugins/functions/function.py,sha256=
|
|
522
|
-
angr/knowledge_plugins/functions/function_manager.py,sha256=
|
|
524
|
+
angr/knowledge_plugins/functions/function.py,sha256=Kiyi18e8ex8OpoQmbX4MHoHyZOGNLeAP3t-SvERiDtU,67326
|
|
525
|
+
angr/knowledge_plugins/functions/function_manager.py,sha256=cU_0alc7yQ_AE5pm2NiCicjAaeL6zLX4KntQAqy32Ws,19893
|
|
523
526
|
angr/knowledge_plugins/functions/function_parser.py,sha256=cpxn0EYp8qTqVQUBfwxodNIEFuNojdQboJG-q7uLdd0,11822
|
|
524
527
|
angr/knowledge_plugins/functions/soot_function.py,sha256=kAEzniVHa2FOjb2qlLElXtbbgAeeUkor7iQIFyJuoYY,5005
|
|
525
528
|
angr/knowledge_plugins/key_definitions/__init__.py,sha256=-x1VGH3LHMze3T-RygodvUG3oXXa5jhKvjXoPKyiU_0,432
|
|
@@ -548,7 +551,7 @@ angr/knowledge_plugins/xrefs/__init__.py,sha256=5PhqVOtTZ27lCjJ9wp7akUeJydqILbyC
|
|
|
548
551
|
angr/knowledge_plugins/xrefs/xref.py,sha256=U2H1rfffp5EXoh0awlGxMBxA4K5MIwl3CXjV3Uih3tA,4856
|
|
549
552
|
angr/knowledge_plugins/xrefs/xref_manager.py,sha256=Yb88z3L8Y26TfGeRHdsGWQlT9f6oWntjEg6s-kcVtUQ,4040
|
|
550
553
|
angr/knowledge_plugins/xrefs/xref_types.py,sha256=LcQ9pD4E4XlC51Us49xiqAoGAFGpnCrpYO4mOzILiKI,308
|
|
551
|
-
angr/lib/angr_native.dylib,sha256=
|
|
554
|
+
angr/lib/angr_native.dylib,sha256=NjrLt3iP-PZNfV86rrq4pGTpTKXFwqioj2mwrDhpGH8,16187984
|
|
552
555
|
angr/misc/__init__.py,sha256=FoUwjk1DhqlIsr2sBN0MlR8MnSOGQv9QJhxmq32RYuA,355
|
|
553
556
|
angr/misc/ansi.py,sha256=nPJHC0SKfqasMQZ0LxdmmIYojjmk4nr5jI6FrzoTwS0,811
|
|
554
557
|
angr/misc/autoimport.py,sha256=iZagpuPwZWczUTYIqs-JkDMQjftMqc_cchcm7OBFiEg,3450
|
|
@@ -1295,7 +1298,7 @@ angr/storage/memory_mixins/keyvalue_memory_mixin.py,sha256=tqjpvMaGyXeKIPTO669qM
|
|
|
1295
1298
|
angr/storage/memory_mixins/label_merger_mixin.py,sha256=zPCM7I7zEgFzk3pwqeFKFs_clv5qMBaoPnuHxRKv4dY,897
|
|
1296
1299
|
angr/storage/memory_mixins/memory_mixin.py,sha256=ccvxbjLMO98C-PPlRCtTKDrB53eWtq2VAkhSkcADOiM,6474
|
|
1297
1300
|
angr/storage/memory_mixins/multi_value_merger_mixin.py,sha256=ubmdwqxuQVL9LheJ9u_fjfira9yRaRB-Ibv-YQbpbmU,3310
|
|
1298
|
-
angr/storage/memory_mixins/name_resolution_mixin.py,sha256=
|
|
1301
|
+
angr/storage/memory_mixins/name_resolution_mixin.py,sha256=xfqeZZ8DB6NdQawpDhWRdwR2jQcFgu1NWCgqhR7mYYQ,3434
|
|
1299
1302
|
angr/storage/memory_mixins/simple_interface_mixin.py,sha256=isJ3_vuElWtLTW7MxweHs5WJOuawr1LmLlS7-yakWd4,2576
|
|
1300
1303
|
angr/storage/memory_mixins/simplification_mixin.py,sha256=ajjiQ4ulbVQ1WgygR7WuM7vrOzsFGa4D-11R7ipmr1c,594
|
|
1301
1304
|
angr/storage/memory_mixins/size_resolution_mixin.py,sha256=7LwcgsuJpwPlQ8LzX5q0bZj2PTkLs_cngrd3lDiHd2s,5728
|
|
@@ -1333,7 +1336,7 @@ angr/storage/memory_mixins/regioned_memory/static_find_mixin.py,sha256=tWyiNrMxm
|
|
|
1333
1336
|
angr/utils/__init__.py,sha256=kBUIJCp9WSgzb62zMg4puUUeheMSl9U4RFqkfiL3en8,1159
|
|
1334
1337
|
angr/utils/ail.py,sha256=8_FloZ6cP89D2Nfc_2wCPcuVv7ny-aP-OKS3syCSMLk,1054
|
|
1335
1338
|
angr/utils/algo.py,sha256=4TaEFE4tU-59KyRVFASqXeoiwH01ZMj5fZd_JVcpdOY,1038
|
|
1336
|
-
angr/utils/bits.py,sha256=
|
|
1339
|
+
angr/utils/bits.py,sha256=_eWPyymSbj01jsLexicRtD_X7sUKKj_fTUI0DEIZ-rc,1054
|
|
1337
1340
|
angr/utils/constants.py,sha256=ZnK6Ed-1U_8yaw-7ZaCLSM0-z7bSuKPg715bBrquxKE,257
|
|
1338
1341
|
angr/utils/cowdict.py,sha256=qx2iO1rrCDTQUGX9dqi9ZAly2Dgm6bCEgdSAQw9MxRM,2159
|
|
1339
1342
|
angr/utils/dynamic_dictlist.py,sha256=bHQrxhUCkk6NDDzEBouAWESjMyKfQUJIk8g38R27iXw,3048
|
|
@@ -1354,9 +1357,9 @@ angr/utils/timing.py,sha256=ELuRPzdRSHzOATgtAzTFByMlVr021ypMrsvtpopreLg,1481
|
|
|
1354
1357
|
angr/utils/ssa/__init__.py,sha256=OD3eTWAiH9QXGpwliNBCTC3Z4bux9iBX3Sp50aUNHvI,8758
|
|
1355
1358
|
angr/utils/ssa/tmp_uses_collector.py,sha256=rSpvMxBHzg-tmvhsfjn3iLyPEKzaZN-xpQrdslMq3J4,793
|
|
1356
1359
|
angr/utils/ssa/vvar_uses_collector.py,sha256=8gfAWdRMz73Deh-ZshDM3GPAot9Lf-rHzCiaCil0hlE,1342
|
|
1357
|
-
angr-9.2.
|
|
1358
|
-
angr-9.2.
|
|
1359
|
-
angr-9.2.
|
|
1360
|
-
angr-9.2.
|
|
1361
|
-
angr-9.2.
|
|
1362
|
-
angr-9.2.
|
|
1360
|
+
angr-9.2.135.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
|
|
1361
|
+
angr-9.2.135.dist-info/METADATA,sha256=Ls0VQIZqogjAt1EPMIvz_70vDMvP4J1vNj2eNH6nT-4,4762
|
|
1362
|
+
angr-9.2.135.dist-info/WHEEL,sha256=Th5C81u9726-OiPrQL05PcMaVujUUHVcaSeW3fqH1L0,105
|
|
1363
|
+
angr-9.2.135.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
|
|
1364
|
+
angr-9.2.135.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
|
|
1365
|
+
angr-9.2.135.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|