angr 9.2.105__py3-none-macosx_10_9_x86_64.whl → 9.2.107__py3-none-macosx_10_9_x86_64.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/decompiler/clinic.py +0 -1
- angr/block.py +1 -1
- angr/engines/pcode/lifter.py +0 -4
- angr/engines/successors.py +12 -8
- angr/knowledge_plugins/cfg/cfg_model.py +15 -15
- angr/knowledge_plugins/cfg/cfg_node.py +11 -5
- angr/knowledge_plugins/functions/function.py +1 -1
- angr/knowledge_plugins/functions/function_parser.py +2 -2
- angr/lib/angr_native.dylib +0 -0
- angr/procedures/stubs/format_parser.py +8 -10
- angr/sim_manager.py +11 -9
- angr/state_plugins/history.py +9 -8
- {angr-9.2.105.dist-info → angr-9.2.107.dist-info}/METADATA +8 -8
- {angr-9.2.105.dist-info → angr-9.2.107.dist-info}/RECORD +19 -19
- {angr-9.2.105.dist-info → angr-9.2.107.dist-info}/LICENSE +0 -0
- {angr-9.2.105.dist-info → angr-9.2.107.dist-info}/WHEEL +0 -0
- {angr-9.2.105.dist-info → angr-9.2.107.dist-info}/entry_points.txt +0 -0
- {angr-9.2.105.dist-info → angr-9.2.107.dist-info}/top_level.txt +0 -0
angr/__init__.py
CHANGED
angr/block.py
CHANGED
angr/engines/pcode/lifter.py
CHANGED
|
@@ -895,10 +895,6 @@ class PcodeBasicBlockLifter:
|
|
|
895
895
|
last_decode_addr = irsb.addr
|
|
896
896
|
last_imark_idx = 0
|
|
897
897
|
for op_idx, op in enumerate(irsb._ops):
|
|
898
|
-
# OpCode space begins with control ops ending with RETURN. Quickly filter non-control instructions.
|
|
899
|
-
if op.opcode > pypcode.OpCode.RETURN:
|
|
900
|
-
continue
|
|
901
|
-
|
|
902
898
|
if op.opcode == pypcode.OpCode.IMARK:
|
|
903
899
|
irsb._instruction_addresses.extend([vn.offset for vn in op.inputs])
|
|
904
900
|
last_decode_addr = op.inputs[0].offset
|
angr/engines/successors.py
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
1
2
|
import logging
|
|
2
3
|
|
|
3
4
|
import claripy
|
|
4
5
|
|
|
5
6
|
from archinfo.arch_soot import ArchSoot
|
|
6
7
|
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from angr import SimState
|
|
10
|
+
|
|
7
11
|
|
|
8
12
|
l = logging.getLogger(name=__name__)
|
|
9
13
|
|
|
@@ -35,21 +39,21 @@ class SimSuccessors:
|
|
|
35
39
|
https://docs.angr.io/core-concepts/simulation#simsuccessors
|
|
36
40
|
"""
|
|
37
41
|
|
|
38
|
-
def __init__(self, addr, initial_state):
|
|
42
|
+
def __init__(self, addr: int | None, initial_state):
|
|
39
43
|
self.addr = addr
|
|
40
|
-
self.initial_state = initial_state
|
|
44
|
+
self.initial_state: "SimState" = initial_state
|
|
41
45
|
|
|
42
|
-
self.successors = []
|
|
43
|
-
self.all_successors = []
|
|
44
|
-
self.flat_successors = []
|
|
45
|
-
self.unsat_successors = []
|
|
46
|
-
self.unconstrained_successors = []
|
|
46
|
+
self.successors: list["SimState"] = []
|
|
47
|
+
self.all_successors: list["SimState"] = []
|
|
48
|
+
self.flat_successors: list["SimState"] = []
|
|
49
|
+
self.unsat_successors: list["SimState"] = []
|
|
50
|
+
self.unconstrained_successors: list["SimState"] = []
|
|
47
51
|
|
|
48
52
|
# the engine that should process or did process this request
|
|
49
53
|
self.engine = None
|
|
50
54
|
self.processed = False
|
|
51
55
|
self.description = "SimSuccessors"
|
|
52
|
-
self.sort = None
|
|
56
|
+
self.sort: str | None = None
|
|
53
57
|
self.artifacts = {}
|
|
54
58
|
|
|
55
59
|
@classmethod
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# pylint:disable=no-member
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
2
4
|
import pickle
|
|
3
5
|
import logging
|
|
4
|
-
from typing import
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
5
7
|
from collections.abc import Callable
|
|
6
8
|
from collections import defaultdict
|
|
7
9
|
import bisect
|
|
@@ -75,7 +77,7 @@ class CFGModel(Serializable):
|
|
|
75
77
|
self.insn_addr_to_memory_data: dict[int, MemoryData] = {}
|
|
76
78
|
|
|
77
79
|
# Lists of CFGNodes indexed by the address of each block. Don't serialize
|
|
78
|
-
self._nodes_by_addr:
|
|
80
|
+
self._nodes_by_addr: defaultdict[int, list[CFGNode]] = defaultdict(list)
|
|
79
81
|
# CFGNodes dict indexed by block ID. Don't serialize
|
|
80
82
|
self._nodes: dict[int, CFGNode] = {}
|
|
81
83
|
# addresses of CFGNodes to speed up get_any_node(..., anyaddr=True). Don't serialize
|
|
@@ -447,7 +449,7 @@ class CFGModel(Serializable):
|
|
|
447
449
|
successors.append(suc)
|
|
448
450
|
return successors
|
|
449
451
|
|
|
450
|
-
def get_successors_and_jumpkinds(self, node, excluding_fakeret=True):
|
|
452
|
+
def get_successors_and_jumpkinds(self, node, excluding_fakeret=True) -> list[tuple[CFGNode, str]]:
|
|
451
453
|
"""
|
|
452
454
|
Get a list of tuples where the first element is the successor of the CFG node and the second element is the
|
|
453
455
|
jumpkind of the successor.
|
|
@@ -564,8 +566,8 @@ class CFGModel(Serializable):
|
|
|
564
566
|
self,
|
|
565
567
|
memory_data_addrs: list[int] | None = None,
|
|
566
568
|
exec_mem_regions: list[tuple[int, int]] | None = None,
|
|
567
|
-
xrefs:
|
|
568
|
-
seg_list:
|
|
569
|
+
xrefs: XRefManager | None = None,
|
|
570
|
+
seg_list: SegmentList | None = None,
|
|
569
571
|
data_type_guessing_handlers: list[Callable] | None = None,
|
|
570
572
|
) -> bool:
|
|
571
573
|
"""
|
|
@@ -745,8 +747,8 @@ class CFGModel(Serializable):
|
|
|
745
747
|
data_addr,
|
|
746
748
|
max_size,
|
|
747
749
|
content_holder=None,
|
|
748
|
-
xrefs:
|
|
749
|
-
seg_list:
|
|
750
|
+
xrefs: XRefManager | None = None,
|
|
751
|
+
seg_list: SegmentList | None = None,
|
|
750
752
|
data_type_guessing_handlers: list[Callable] | None = None,
|
|
751
753
|
extra_memory_regions: list[tuple[int, int]] | None = None,
|
|
752
754
|
):
|
|
@@ -775,7 +777,7 @@ class CFGModel(Serializable):
|
|
|
775
777
|
irsb_addr, stmt_idx = None, None
|
|
776
778
|
if xrefs is not None and seg_list is not None:
|
|
777
779
|
try:
|
|
778
|
-
ref:
|
|
780
|
+
ref: XRef = next(iter(xrefs.get_xrefs_by_dst(data_addr)))
|
|
779
781
|
irsb_addr = ref.block_addr
|
|
780
782
|
except StopIteration:
|
|
781
783
|
pass
|
|
@@ -861,7 +863,7 @@ class CFGModel(Serializable):
|
|
|
861
863
|
irsb_addr, stmt_idx = None, None
|
|
862
864
|
if xrefs is not None and seg_list is not None:
|
|
863
865
|
try:
|
|
864
|
-
ref:
|
|
866
|
+
ref: XRef = next(iter(xrefs.get_xrefs_by_dst(data_addr)))
|
|
865
867
|
irsb_addr = ref.block_addr
|
|
866
868
|
stmt_idx = ref.stmt_idx
|
|
867
869
|
except StopIteration:
|
|
@@ -966,8 +968,8 @@ class CFGModel(Serializable):
|
|
|
966
968
|
self,
|
|
967
969
|
addr: int,
|
|
968
970
|
size: int = 1,
|
|
969
|
-
kb:
|
|
970
|
-
) -> set[
|
|
971
|
+
kb: KnowledgeBase | None = None,
|
|
972
|
+
) -> set[Function]:
|
|
971
973
|
"""
|
|
972
974
|
Find all functions with nodes intersecting [addr, addr + size).
|
|
973
975
|
|
|
@@ -990,9 +992,7 @@ class CFGModel(Serializable):
|
|
|
990
992
|
functions.add(func)
|
|
991
993
|
return functions
|
|
992
994
|
|
|
993
|
-
def find_function_for_reflow_into_addr(
|
|
994
|
-
self, addr: int, kb: Optional["KnowledgeBase"] = None
|
|
995
|
-
) -> Optional["Function"]:
|
|
995
|
+
def find_function_for_reflow_into_addr(self, addr: int, kb: KnowledgeBase | None = None) -> Function | None:
|
|
996
996
|
"""
|
|
997
997
|
Look for a function that flows into a new node at addr.
|
|
998
998
|
|
|
@@ -1019,7 +1019,7 @@ class CFGModel(Serializable):
|
|
|
1019
1019
|
|
|
1020
1020
|
return None
|
|
1021
1021
|
|
|
1022
|
-
def clear_region_for_reflow(self, addr: int, size: int = 1, kb:
|
|
1022
|
+
def clear_region_for_reflow(self, addr: int, size: int = 1, kb: KnowledgeBase | None = None) -> None:
|
|
1023
1023
|
"""
|
|
1024
1024
|
Remove nodes in the graph intersecting region [addr, addr + size).
|
|
1025
1025
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import traceback
|
|
2
4
|
import logging
|
|
3
|
-
from typing import TYPE_CHECKING
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
4
6
|
|
|
5
7
|
from archinfo.arch_soot import SootAddressDescriptor
|
|
6
8
|
import archinfo
|
|
@@ -11,12 +13,16 @@ from angr.serializable import Serializable
|
|
|
11
13
|
from angr.protos import cfg_pb2
|
|
12
14
|
|
|
13
15
|
if TYPE_CHECKING:
|
|
16
|
+
from angr.block import Block, SootBlock
|
|
14
17
|
from .cfg_model import CFGModel
|
|
15
18
|
import angr
|
|
16
19
|
|
|
17
20
|
_l = logging.getLogger(__name__)
|
|
18
21
|
|
|
19
22
|
|
|
23
|
+
AddressType = int | SootAddressDescriptor
|
|
24
|
+
|
|
25
|
+
|
|
20
26
|
class CFGNodeCreationFailure:
|
|
21
27
|
"""
|
|
22
28
|
This class contains additional information for whenever creating a CFGNode failed. It includes a full traceback
|
|
@@ -87,13 +93,13 @@ class CFGNode(Serializable):
|
|
|
87
93
|
__repr__.
|
|
88
94
|
"""
|
|
89
95
|
|
|
90
|
-
self.addr = addr
|
|
96
|
+
self.addr: AddressType = addr
|
|
91
97
|
self.size = size
|
|
92
98
|
self.simprocedure_name = simprocedure_name
|
|
93
99
|
self.no_ret = no_ret
|
|
94
|
-
self._cfg_model:
|
|
100
|
+
self._cfg_model: CFGModel = cfg
|
|
95
101
|
self.function_address = function_address
|
|
96
|
-
self.block_id:
|
|
102
|
+
self.block_id: angr.analyses.cfg.cfg_job_base.BlockID | int = block_id
|
|
97
103
|
self.thumb = thumb
|
|
98
104
|
self.byte_string: bytes | None = byte_string
|
|
99
105
|
|
|
@@ -353,7 +359,7 @@ class CFGNode(Serializable):
|
|
|
353
359
|
return BlockNode(self.addr, self.size, thumb=self.thumb)
|
|
354
360
|
|
|
355
361
|
@property
|
|
356
|
-
def block(self):
|
|
362
|
+
def block(self) -> Block | SootBlock | None:
|
|
357
363
|
if self.is_simprocedure or self.is_syscall:
|
|
358
364
|
return None
|
|
359
365
|
project = self._cfg_model.project # everything in angr is connected with everything...
|
|
@@ -33,7 +33,7 @@ class FunctionParser:
|
|
|
33
33
|
obj.is_simprocedure = function.is_simprocedure
|
|
34
34
|
obj.returning = function.returning
|
|
35
35
|
obj.alignment = function.alignment
|
|
36
|
-
obj.binary_name = function.binary_name
|
|
36
|
+
obj.binary_name = function.binary_name or ""
|
|
37
37
|
obj.normalized = function.normalized
|
|
38
38
|
|
|
39
39
|
# signature matched?
|
|
@@ -105,7 +105,7 @@ class FunctionParser:
|
|
|
105
105
|
is_simprocedure=cmsg.is_simprocedure,
|
|
106
106
|
returning=cmsg.returning,
|
|
107
107
|
alignment=cmsg.alignment,
|
|
108
|
-
binary_name=cmsg.binary_name,
|
|
108
|
+
binary_name=None if not cmsg.binary_name else cmsg.binary_name,
|
|
109
109
|
)
|
|
110
110
|
obj._project = project
|
|
111
111
|
obj.normalized = cmsg.normalized
|
angr/lib/angr_native.dylib
CHANGED
|
Binary file
|
|
@@ -253,18 +253,16 @@ class FormatString:
|
|
|
253
253
|
max_sym_bytes = fmt_spec.length_spec
|
|
254
254
|
|
|
255
255
|
# TODO: look for limits on other characters which scanf is sensitive to, '\x00', '\x20'
|
|
256
|
-
|
|
257
|
-
position,
|
|
256
|
+
result, _, _ = region.find(
|
|
257
|
+
position,
|
|
258
|
+
self.parser.state.solver.BVV(b"\n"),
|
|
259
|
+
max_str_len,
|
|
260
|
+
max_symbolic_bytes=max_sym_bytes,
|
|
261
|
+
default=self.parser.state.solver.BVV(position + max_str_len, 64),
|
|
258
262
|
)
|
|
259
263
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
mm = position + max_str_len
|
|
263
|
-
# we're just going to concretize the length, load will do this anyways
|
|
264
|
-
length = self.parser.state.solver.max_int(mm - position)
|
|
265
|
-
else:
|
|
266
|
-
# a newline is found, or a max length is specified with the specifier
|
|
267
|
-
length = max(match_indices)
|
|
264
|
+
# concretize the length
|
|
265
|
+
length = self.parser.state.solver.max_int(result - position)
|
|
268
266
|
src_str = region.load(position, length)
|
|
269
267
|
|
|
270
268
|
# TODO all of these should be delimiters we search for above
|
angr/sim_manager.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import sys
|
|
2
4
|
import itertools
|
|
3
5
|
import types
|
|
4
6
|
from collections import defaultdict
|
|
5
|
-
from typing import DefaultDict
|
|
6
7
|
import logging
|
|
8
|
+
from types import TracebackType
|
|
7
9
|
|
|
8
10
|
import claripy
|
|
9
11
|
import mulpyplexer
|
|
@@ -91,7 +93,7 @@ class SimulationManager:
|
|
|
91
93
|
|
|
92
94
|
if stashes is None:
|
|
93
95
|
stashes = self._create_integral_stashes()
|
|
94
|
-
self._stashes:
|
|
96
|
+
self._stashes: defaultdict[str, list[SimState]] = stashes
|
|
95
97
|
self._hierarchy = StateHierarchy() if hierarchy is None else hierarchy
|
|
96
98
|
self._save_unsat = save_unsat
|
|
97
99
|
self._auto_drop = {
|
|
@@ -189,11 +191,11 @@ class SimulationManager:
|
|
|
189
191
|
)
|
|
190
192
|
|
|
191
193
|
@property
|
|
192
|
-
def errored(self):
|
|
194
|
+
def errored(self) -> list[ErrorRecord]:
|
|
193
195
|
return self._errored
|
|
194
196
|
|
|
195
197
|
@property
|
|
196
|
-
def stashes(self) ->
|
|
198
|
+
def stashes(self) -> defaultdict[str, list[SimState]]:
|
|
197
199
|
return self._stashes
|
|
198
200
|
|
|
199
201
|
def mulpyplex(self, *stashes):
|
|
@@ -394,7 +396,7 @@ class SimulationManager:
|
|
|
394
396
|
|
|
395
397
|
:param stash: The name of the stash to step (default: 'active')
|
|
396
398
|
:param target_stash: The name of the stash to put the results in (default: same as ``stash``)
|
|
397
|
-
:param error_list: The list to put
|
|
399
|
+
:param error_list: The list to put ErrorRecord objects in (default: ``self.errored``)
|
|
398
400
|
:param selector_func: If provided, should be a function that takes a state and returns a
|
|
399
401
|
boolean. If True, the state will be stepped. Otherwise, it will be
|
|
400
402
|
kept as-is.
|
|
@@ -894,7 +896,7 @@ class SimulationManager:
|
|
|
894
896
|
# ...
|
|
895
897
|
#
|
|
896
898
|
|
|
897
|
-
def _create_integral_stashes(self) ->
|
|
899
|
+
def _create_integral_stashes(self) -> defaultdict[str, list[SimState]]:
|
|
898
900
|
stashes = defaultdict(list)
|
|
899
901
|
stashes.update({name: [] for name in self._integral_stashes})
|
|
900
902
|
return stashes
|
|
@@ -945,9 +947,9 @@ class ErrorRecord:
|
|
|
945
947
|
"""
|
|
946
948
|
|
|
947
949
|
def __init__(self, state, error, traceback):
|
|
948
|
-
self.state = state
|
|
949
|
-
self.error = error
|
|
950
|
-
self.traceback = traceback
|
|
950
|
+
self.state: SimState = state
|
|
951
|
+
self.error: Exception = error
|
|
952
|
+
self.traceback: TracebackType = traceback
|
|
951
953
|
|
|
952
954
|
def debug(self):
|
|
953
955
|
"""
|
angr/state_plugins/history.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections.abc import Reversible
|
|
1
2
|
import operator
|
|
2
3
|
import logging
|
|
3
4
|
import itertools
|
|
@@ -40,7 +41,7 @@ class SimStateHistory(SimStatePlugin):
|
|
|
40
41
|
self.jump_source = None if clone is None else clone.jump_source
|
|
41
42
|
self.jump_avoidable = None if clone is None else clone.jump_avoidable
|
|
42
43
|
self.jump_guard: BV | None = None if clone is None else clone.jump_guard
|
|
43
|
-
self.jumpkind = None if clone is None else clone.jumpkind
|
|
44
|
+
self.jumpkind: str | None = None if clone is None else clone.jumpkind
|
|
44
45
|
|
|
45
46
|
# the execution log for this history
|
|
46
47
|
self.recent_events = [] if clone is None else list(clone.recent_events)
|
|
@@ -358,19 +359,19 @@ class SimStateHistory(SimStatePlugin):
|
|
|
358
359
|
yield from self.parent.lineage
|
|
359
360
|
|
|
360
361
|
@property
|
|
361
|
-
def events(self):
|
|
362
|
+
def events(self) -> Reversible["SimEvent"]:
|
|
362
363
|
return LambdaIterIter(self, operator.attrgetter("recent_events"))
|
|
363
364
|
|
|
364
365
|
@property
|
|
365
|
-
def actions(self):
|
|
366
|
+
def actions(self) -> Reversible["SimAction"]:
|
|
366
367
|
return LambdaIterIter(self, operator.attrgetter("recent_actions"))
|
|
367
368
|
|
|
368
369
|
@property
|
|
369
|
-
def jumpkinds(self):
|
|
370
|
+
def jumpkinds(self) -> Reversible[str]:
|
|
370
371
|
return LambdaAttrIter(self, operator.attrgetter("jumpkind"))
|
|
371
372
|
|
|
372
373
|
@property
|
|
373
|
-
def jump_guards(self):
|
|
374
|
+
def jump_guards(self) -> Reversible[claripy.ast.Bool]:
|
|
374
375
|
return LambdaAttrIter(self, operator.attrgetter("jump_guard"))
|
|
375
376
|
|
|
376
377
|
@property
|
|
@@ -382,15 +383,15 @@ class SimStateHistory(SimStatePlugin):
|
|
|
382
383
|
return LambdaAttrIter(self, operator.attrgetter("jump_source"))
|
|
383
384
|
|
|
384
385
|
@property
|
|
385
|
-
def descriptions(self):
|
|
386
|
+
def descriptions(self) -> Reversible[str]:
|
|
386
387
|
return LambdaAttrIter(self, operator.attrgetter("recent_description"))
|
|
387
388
|
|
|
388
389
|
@property
|
|
389
|
-
def bbl_addrs(self):
|
|
390
|
+
def bbl_addrs(self) -> Reversible[int]:
|
|
390
391
|
return LambdaIterIter(self, operator.attrgetter("recent_bbl_addrs"))
|
|
391
392
|
|
|
392
393
|
@property
|
|
393
|
-
def ins_addrs(self):
|
|
394
|
+
def ins_addrs(self) -> Reversible[int]:
|
|
394
395
|
return LambdaIterIter(self, operator.attrgetter("recent_ins_addrs"))
|
|
395
396
|
|
|
396
397
|
@property
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: angr
|
|
3
|
-
Version: 9.2.
|
|
3
|
+
Version: 9.2.107
|
|
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
|
|
@@ -15,13 +15,13 @@ Description-Content-Type: text/markdown
|
|
|
15
15
|
License-File: LICENSE
|
|
16
16
|
Requires-Dist: CppHeaderParser
|
|
17
17
|
Requires-Dist: GitPython
|
|
18
|
-
Requires-Dist: ailment ==9.2.
|
|
19
|
-
Requires-Dist: archinfo ==9.2.
|
|
18
|
+
Requires-Dist: ailment ==9.2.107
|
|
19
|
+
Requires-Dist: archinfo ==9.2.107
|
|
20
20
|
Requires-Dist: cachetools
|
|
21
21
|
Requires-Dist: capstone ==5.0.0.post1
|
|
22
22
|
Requires-Dist: cffi >=1.14.0
|
|
23
|
-
Requires-Dist: claripy ==9.2.
|
|
24
|
-
Requires-Dist: cle ==9.2.
|
|
23
|
+
Requires-Dist: claripy ==9.2.107
|
|
24
|
+
Requires-Dist: cle ==9.2.107
|
|
25
25
|
Requires-Dist: dpkt
|
|
26
26
|
Requires-Dist: itanium-demangler
|
|
27
27
|
Requires-Dist: mulpyplexer
|
|
@@ -31,7 +31,7 @@ Requires-Dist: protobuf >=3.19.0
|
|
|
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.107
|
|
35
35
|
Requires-Dist: rich >=13.1.0
|
|
36
36
|
Requires-Dist: rpyc
|
|
37
37
|
Requires-Dist: sortedcontainers
|
|
@@ -47,10 +47,10 @@ Requires-Dist: myst-parser ; extra == 'docs'
|
|
|
47
47
|
Requires-Dist: sphinx ; extra == 'docs'
|
|
48
48
|
Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs'
|
|
49
49
|
Provides-Extra: pcode
|
|
50
|
-
Requires-Dist: pypcode ~=
|
|
50
|
+
Requires-Dist: pypcode ~=3.0 ; extra == 'pcode'
|
|
51
51
|
Provides-Extra: testing
|
|
52
52
|
Requires-Dist: keystone-engine ; extra == 'testing'
|
|
53
|
-
Requires-Dist: pypcode ~=
|
|
53
|
+
Requires-Dist: pypcode ~=3.0 ; extra == 'testing'
|
|
54
54
|
Requires-Dist: pytest ; extra == 'testing'
|
|
55
55
|
Requires-Dist: pytest-split ; extra == 'testing'
|
|
56
56
|
Requires-Dist: pytest-xdist ; extra == 'testing'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
angr/__init__.py,sha256=
|
|
1
|
+
angr/__init__.py,sha256=R0l86rWUgejEZSvJjbSX_yUG3S1XbpboqEWc5DN0fcg,3993
|
|
2
2
|
angr/__main__.py,sha256=kaO56Te6h73SM94BVtASF00q5QbBbC3eBs9poVc9sVI,1887
|
|
3
3
|
angr/annocfg.py,sha256=1tnBfxgLJh9I6Brm1JDdsWLHGmCQYdD6PTC_bFTOMrg,10775
|
|
4
4
|
angr/blade.py,sha256=B8QXVQ93jz1YCIlb-dZLeBqYmVFdMXI5GleP1Wnxjrw,15519
|
|
5
|
-
angr/block.py,sha256=
|
|
5
|
+
angr/block.py,sha256=tHxXlBBFrPZbp5phhTn63K55khjDIIUSNJgFn4lPd9I,14761
|
|
6
6
|
angr/callable.py,sha256=-E9HelavtRY1xPAxCVXl120H8Rb7Myd2IcrXtWZFAOU,6034
|
|
7
7
|
angr/calling_conventions.py,sha256=JjgIx0PHOfP9O8fcLjaKFEnznDfgmcf8ezMS6s54Me8,91288
|
|
8
8
|
angr/code_location.py,sha256=IudWSR-gJzq_EeVw-jEZvQumVYwUUDWXR1vmLAkS-SQ,5432
|
|
@@ -15,7 +15,7 @@ angr/project.py,sha256=-1VjiXyaqokF_J4fJ_ZWB3alko7dkx0JBV9AK6dZvcM,37254
|
|
|
15
15
|
angr/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
|
|
16
16
|
angr/serializable.py,sha256=6cljvzAqFwsLqFu9ouCno7hMpgstha5-8C7RyWNCRXc,1502
|
|
17
17
|
angr/service.py,sha256=9R50bFaCf6zjxybiEIVIkODSVCsE2VcTul_KjjsjaGU,1102
|
|
18
|
-
angr/sim_manager.py,sha256=
|
|
18
|
+
angr/sim_manager.py,sha256=YN7WwjAyGEdnTaj3tBSQt-3I9aYn3aEfgxT5RRm4HbQ,39374
|
|
19
19
|
angr/sim_options.py,sha256=OuT01xS_F3ifBD9MAfZmNCnfjtTg0HulZlrKcs1LNSY,18057
|
|
20
20
|
angr/sim_procedure.py,sha256=SKlD_-qGh-llcuennKZoHK1yzDUTaa5z5W2l22Ean-U,26259
|
|
21
21
|
angr/sim_state.py,sha256=-BhSkyucG6wwZSrgSoAKWNRFHQjcVP8R7ux0z7E2AOg,37820
|
|
@@ -96,7 +96,7 @@ angr/analyses/decompiler/block_similarity.py,sha256=mTpELRDw_qXxjq7B0SzXlBVm3i41
|
|
|
96
96
|
angr/analyses/decompiler/block_simplifier.py,sha256=78vfpaG13JWCxijDrp3Q4wyiEw7hQXngb8itd9y39Os,17227
|
|
97
97
|
angr/analyses/decompiler/call_counter.py,sha256=V3TIaSvLUy9vLEWErnvlCS--_ubGWQAeU0tqq6XYeOU,1205
|
|
98
98
|
angr/analyses/decompiler/callsite_maker.py,sha256=GUgUkSsOznUaTIB9PUoBFyWJp9WkH4T8jf5xBIE5p9M,15909
|
|
99
|
-
angr/analyses/decompiler/clinic.py,sha256=
|
|
99
|
+
angr/analyses/decompiler/clinic.py,sha256=81gi7DBCaZy-xK_TZGrApUEz00y756V4ZKVAHtugmwk,95748
|
|
100
100
|
angr/analyses/decompiler/condition_processor.py,sha256=L4piCxmoD3xZHQNSZqgj67WBGhljW3bjUii_Nirugm0,49891
|
|
101
101
|
angr/analyses/decompiler/decompilation_cache.py,sha256=NKbvKYZOe7791udwdf70tq9hJe79GMS6M1jaDJC8lSQ,1130
|
|
102
102
|
angr/analyses/decompiler/decompilation_options.py,sha256=FMfcQ0aFDMPW9d0sYpqCwrOVYoq75YkExAvR6CjZCt4,8224
|
|
@@ -332,7 +332,7 @@ angr/engines/engine.py,sha256=Lm0RE8XxSJQw11wj2umlAaJkUWv6F7VouEu_-0Jry1A,8075
|
|
|
332
332
|
angr/engines/failure.py,sha256=zZw_7cYCkxrVhJ-gWb9apNV6cAf4pqKESDPrQdd1Mpg,996
|
|
333
333
|
angr/engines/hook.py,sha256=_dobnJ3m3F0FPHWbv82ZS5fyNmSt-wuNzMlZ-81sRgc,2546
|
|
334
334
|
angr/engines/procedure.py,sha256=dEvCtpS7-LLfr1OX3LT4_4QFyW7Wgt13UtHuAXowDSs,2515
|
|
335
|
-
angr/engines/successors.py,sha256=
|
|
335
|
+
angr/engines/successors.py,sha256=SuzeKILLcQd2OIQdnLCB6n9rmFJ88Xe_c2quz7osKVU,23887
|
|
336
336
|
angr/engines/syscall.py,sha256=LNMC3zyis3OiWC7_8Zn1blMw1EDib5FjUqepXlaWDTI,2177
|
|
337
337
|
angr/engines/unicorn.py,sha256=gf7LjjWyaaujqSuCq3d-BGm8t5sdZjzsJeBevGfdiLw,24447
|
|
338
338
|
angr/engines/light/__init__.py,sha256=j9vH2fU9MaNVQ8NT3Ek3Tj2zkGlVxlKyzia8zVTofYs,186
|
|
@@ -343,7 +343,7 @@ angr/engines/pcode/behavior.py,sha256=BuzA_nX_ebuFiGgup7aJ-bgD9KmUR2dPSGUM51MKxO
|
|
|
343
343
|
angr/engines/pcode/cc.py,sha256=CUKkivYUddt8McAYLwAPO5btzDHwO65yBQvWs3CV9dU,3085
|
|
344
344
|
angr/engines/pcode/emulate.py,sha256=l4MUuUEJDcCihfKCy5_4S6GOG_rzd1DdYzTQ1ObZdgI,16715
|
|
345
345
|
angr/engines/pcode/engine.py,sha256=WTiIXZ8moilS4BHU-nQSgMopOstLnuoTjXWHpLOKF98,10532
|
|
346
|
-
angr/engines/pcode/lifter.py,sha256=
|
|
346
|
+
angr/engines/pcode/lifter.py,sha256=4y8kAIlqtb5xVL4gyyXZe74vTUXn9Bp6oMdOM_wNrWI,51942
|
|
347
347
|
angr/engines/soot/__init__.py,sha256=TznVGXAtXWZQb7K3vgGXWalwHDuuJu9KkFvacG6rYhU,30
|
|
348
348
|
angr/engines/soot/engine.py,sha256=vCcaW_QOSmK8XsO3qgvNbx303tTzEsf9dx_I2y1PjKU,17238
|
|
349
349
|
angr/engines/soot/exceptions.py,sha256=Ta2qcX_NXRqst6OzoAaIZyzDuCqxhf-BEIBkzzID5Iw,221
|
|
@@ -450,14 +450,14 @@ angr/knowledge_plugins/plugin.py,sha256=5x_6uCatsbqfQBHfRNqoRS9yc8JrwGnGMDyAn29u
|
|
|
450
450
|
angr/knowledge_plugins/types.py,sha256=DNBPxMzFYYTtvdGL0va6irXp9z6qn0kAdlOngHwPz4U,2038
|
|
451
451
|
angr/knowledge_plugins/cfg/__init__.py,sha256=L7qgnAg6rXGq8NCfdr1RLSSPRmQ1O87ZkLEDeC6k000,382
|
|
452
452
|
angr/knowledge_plugins/cfg/cfg_manager.py,sha256=9qvUkOW1pLZTXlVFm1b6lTfHsqKi05BCPPTsJwsSWx8,2613
|
|
453
|
-
angr/knowledge_plugins/cfg/cfg_model.py,sha256=
|
|
454
|
-
angr/knowledge_plugins/cfg/cfg_node.py,sha256=
|
|
453
|
+
angr/knowledge_plugins/cfg/cfg_model.py,sha256=_ueS8bcvXHuZ-NgtBqupRvT0KVL8nmBheOpXBHtql-8,41691
|
|
454
|
+
angr/knowledge_plugins/cfg/cfg_node.py,sha256=sOxGwme_hQ5SAzVjS2aUdMeomCAqXS6GXk70PvSUGvc,17364
|
|
455
455
|
angr/knowledge_plugins/cfg/indirect_jump.py,sha256=ixNJtGspxiaWUPsGNtRJ0fvrskumaJhl3164J2zIkKI,2092
|
|
456
456
|
angr/knowledge_plugins/cfg/memory_data.py,sha256=zoFZMcegVjzlOsLG2rjjGlvxGijZxL1763hw4ISwwdg,4988
|
|
457
457
|
angr/knowledge_plugins/functions/__init__.py,sha256=6IerJjMKKvM70mcJQhmXJYiipePOQ9ZSTmavTIUgg5Q,77
|
|
458
|
-
angr/knowledge_plugins/functions/function.py,sha256=
|
|
458
|
+
angr/knowledge_plugins/functions/function.py,sha256=YaoFHFkj-Dy4VCR-_UlAJSn0PFnCfFRF1rYL2IEkmK0,67113
|
|
459
459
|
angr/knowledge_plugins/functions/function_manager.py,sha256=wGQ41kKOPqPgUe8cMfySusOA7_p0-KWNDROT_lFakZ8,18972
|
|
460
|
-
angr/knowledge_plugins/functions/function_parser.py,sha256=
|
|
460
|
+
angr/knowledge_plugins/functions/function_parser.py,sha256=f2x8ib4kUAZEfd3j3egubY4DpEYYf4_jwlbuM6Fk-CE,11956
|
|
461
461
|
angr/knowledge_plugins/functions/soot_function.py,sha256=2zwz_tdKbEnF8eUkOEmpNr7AUeooun2-SiIoY_xIdMw,4971
|
|
462
462
|
angr/knowledge_plugins/key_definitions/__init__.py,sha256=xnn-6qL8csRtqWkHn6OTHQxiQChD8Z1xuqLN56GjZi4,397
|
|
463
463
|
angr/knowledge_plugins/key_definitions/atoms.py,sha256=sMqROOR2VlEHS8HmEhtPaHl5gE0g0mu2lD2IVIqjkSw,9704
|
|
@@ -489,7 +489,7 @@ angr/knowledge_plugins/xrefs/__init__.py,sha256=-5A2h048WTRu6Et7q7bqlc-AyBXNuJ9A
|
|
|
489
489
|
angr/knowledge_plugins/xrefs/xref.py,sha256=1BMphrr8iViDtVWPXWidmY1_uNmw9LRvEwwZLt3Zqw8,4907
|
|
490
490
|
angr/knowledge_plugins/xrefs/xref_manager.py,sha256=a4uvTJkdM0PQIuyYcd7t76IddrrVjPGe9SZrRaqp2II,3980
|
|
491
491
|
angr/knowledge_plugins/xrefs/xref_types.py,sha256=VR3xLQQ-gUg25oX0OL3BJHyQRlZh2A8syBac9ZMS9n4,271
|
|
492
|
-
angr/lib/angr_native.dylib,sha256=
|
|
492
|
+
angr/lib/angr_native.dylib,sha256=8wBVp7m6U2Ho3HU0btq1nqAjREbNStYzZSIq1PMwP-o,18604080
|
|
493
493
|
angr/misc/__init__.py,sha256=Ct-Q6-c-Frdz5Ihkqmou3j_1jyJi8WJXlQxs-gPQg0Y,237
|
|
494
494
|
angr/misc/ansi.py,sha256=m5RY65yyvluUJErkvCF4I4z1o5kXi2xb3Yuvt9bITCA,776
|
|
495
495
|
angr/misc/autoimport.py,sha256=vSXclz6pss3lMecoT5_doX0SvORNmZPIvVyDm4je4HE,3419
|
|
@@ -1129,7 +1129,7 @@ angr/procedures/stubs/__init__.py,sha256=44m1-NIxNEwXtyCkYnHnH1jYw5Mp53ObHGzw1bT
|
|
|
1129
1129
|
angr/procedures/stubs/b64_decode.py,sha256=baovh7-PURKxG0eks07cTX6_RO8gYw-UmqEgaHlf24w,342
|
|
1130
1130
|
angr/procedures/stubs/caller.py,sha256=wT3A37gO0QBOKdsT12DpNz4zZMivFIwJtXr2oApJ8XI,343
|
|
1131
1131
|
angr/procedures/stubs/crazy_scanf.py,sha256=CJe3qzTJEv_0AHmcl3gOxGwZOhV8o1z73fAMqIOiuJM,643
|
|
1132
|
-
angr/procedures/stubs/format_parser.py,sha256=
|
|
1132
|
+
angr/procedures/stubs/format_parser.py,sha256=fbFkxcAbUrmoUMK5zCBngleVXReOvcFHsPCabip-pBo,27941
|
|
1133
1133
|
angr/procedures/stubs/syscall_stub.py,sha256=ZURVeDuH06xX-eseAMQZCkYYRDxXx2USQSkGhOoAl5o,902
|
|
1134
1134
|
angr/procedures/testing/__init__.py,sha256=mkl-uqerjl2KIlTiJDmE9WW9zE9sL2MQsYLHOfeoJh8,106
|
|
1135
1135
|
angr/procedures/testing/manyargs.py,sha256=omzRwPCNqrBodw1nJ-alQh4v_82NHaJfr-1E5xCGQjU,100
|
|
@@ -1192,7 +1192,7 @@ angr/state_plugins/debug_variables.py,sha256=MjNQKrxhvbDJ3cXW0g6CTA4refWYSWYn8PJ
|
|
|
1192
1192
|
angr/state_plugins/filesystem.py,sha256=SjspfS6OXwXRa2ynbD0lddM__puKbxaIG5zVXwWzRcA,15902
|
|
1193
1193
|
angr/state_plugins/gdb.py,sha256=tPQM-guGghWD65FHF2n_etc2UGMoaUBiXBtlRPVewNA,5125
|
|
1194
1194
|
angr/state_plugins/globals.py,sha256=tfEVa8iqEmvD2vGoogx89aIoouw9GFc8JQcscDlXLbA,1507
|
|
1195
|
-
angr/state_plugins/history.py,sha256=
|
|
1195
|
+
angr/state_plugins/history.py,sha256=EuFnc-6z6k58Z9LCqH5gQVk1Iiz7tKP6XUokxLXVLT0,19285
|
|
1196
1196
|
angr/state_plugins/inspect.py,sha256=49xo60mAI6o1IDZTcLMoqO5N78DXoHHregnSt8V54Eg,11317
|
|
1197
1197
|
angr/state_plugins/javavm_classloader.py,sha256=t0O7e6DbXykuCbBTQ6bPv13vl99GrXpHvqSnkvWlpfo,5547
|
|
1198
1198
|
angr/state_plugins/jni_references.py,sha256=AkrXa_ptTV97V1acnwvpnW7svUttpx1w4g9wmGc4NaA,3403
|
|
@@ -1293,9 +1293,9 @@ angr/utils/mp.py,sha256=cv_NeysxLgyCdE-Euefnfv078ia5maHSnUn9f23zz88,1882
|
|
|
1293
1293
|
angr/utils/segment_list.py,sha256=5nnuVtdZk9NS2y_xUBVA9khWPueP_zagNtPSjaoMHbA,20410
|
|
1294
1294
|
angr/utils/timing.py,sha256=uOowCP8kotDrKDOjlAod-guBuYkAA8zEtiAwpdwMlIU,1334
|
|
1295
1295
|
angr/utils/typing.py,sha256=pCjA7JZAzcvrk-iyIE2cRHc1G66AMSGEON3aFfjtPVc,431
|
|
1296
|
-
angr-9.2.
|
|
1297
|
-
angr-9.2.
|
|
1298
|
-
angr-9.2.
|
|
1299
|
-
angr-9.2.
|
|
1300
|
-
angr-9.2.
|
|
1301
|
-
angr-9.2.
|
|
1296
|
+
angr-9.2.107.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
|
|
1297
|
+
angr-9.2.107.dist-info/METADATA,sha256=_gEn1iA1KJfNDSl9GKjBrAhN7mSwB_qABsgvByfyh5E,4703
|
|
1298
|
+
angr-9.2.107.dist-info/WHEEL,sha256=YBuZgLbEquNCbbbQPlLFm_OOe1fPwf91V3LBhwgnks4,107
|
|
1299
|
+
angr-9.2.107.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
|
|
1300
|
+
angr-9.2.107.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
|
|
1301
|
+
angr-9.2.107.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|