angr 9.2.142__py3-none-manylinux2014_x86_64.whl → 9.2.143__py3-none-manylinux2014_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.

Files changed (28) hide show
  1. angr/__init__.py +1 -1
  2. angr/analyses/calling_convention/calling_convention.py +9 -9
  3. angr/analyses/calling_convention/fact_collector.py +31 -9
  4. angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py +12 -1
  5. angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +4 -1
  6. angr/analyses/complete_calling_conventions.py +18 -5
  7. angr/analyses/decompiler/ail_simplifier.py +90 -65
  8. angr/analyses/decompiler/optimization_passes/condition_constprop.py +49 -14
  9. angr/analyses/decompiler/optimization_passes/ite_region_converter.py +8 -0
  10. angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +15 -1
  11. angr/analyses/decompiler/sequence_walker.py +8 -0
  12. angr/analyses/decompiler/utils.py +13 -0
  13. angr/analyses/s_propagator.py +40 -29
  14. angr/analyses/s_reaching_definitions/s_rda_model.py +45 -36
  15. angr/analyses/s_reaching_definitions/s_rda_view.py +6 -3
  16. angr/analyses/s_reaching_definitions/s_reaching_definitions.py +21 -21
  17. angr/analyses/variable_recovery/engine_ail.py +6 -6
  18. angr/calling_conventions.py +18 -8
  19. angr/procedures/definitions/linux_kernel.py +5 -0
  20. angr/utils/doms.py +40 -33
  21. angr/utils/ssa/__init__.py +21 -14
  22. angr/utils/ssa/vvar_uses_collector.py +2 -2
  23. {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/METADATA +6 -6
  24. {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/RECORD +28 -28
  25. {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/LICENSE +0 -0
  26. {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/WHEEL +0 -0
  27. {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/entry_points.txt +0 -0
  28. {angr-9.2.142.dist-info → angr-9.2.143.dist-info}/top_level.txt +0 -0
@@ -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 # The location where the return address is stored, as a SimFunctionArgument
582
- RETURN_VAL: SimFunctionArgument # The location where the return value is stored, as a SimFunctionArgument
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 (isinstance(val, claripy.ast.Base) and val.op == "Reverse" and val.args[0].op.startswith("fp"))
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.set_value(state, ret_addr, stack_base=stack_base)
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
- if node not in self.graph:
90
- return set()
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")
@@ -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[VirtualVariable, set[VirtualVariable]] | None = None
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] = CodeLocation(block.addr, stmt_idx, ins_addr=stmt.ins_addr, block_idx=block.idx)
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] = {vvar_ for src, vvar_ in stmt.src.src_and_vvars}
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, set[tuple[VirtualVariable, CodeLocation]]]:
106
- vvar_to_loc: dict[int, set[tuple[VirtualVariable, CodeLocation]]] = defaultdict(set)
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] |= vvar_and_uselocs
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, set[tuple[VirtualVariable, CodeLocation]]] = defaultdict(set)
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].add(
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.142
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.142
20
- Requires-Dist: archinfo==9.2.142
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.142
25
- Requires-Dist: cle==9.2.142
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.142
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=6Is74rZykiruoVhoKjPu2gX4PAdA-MFTrLYGwcMdSqw,9153
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=c1BWLPpLz_kxa_SlvT3MRb5wi3yIqtZ9v0CgeY0NmAY,97052
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=dlyDceMjtJ8IONbO7IMi0-_aN23rt10ILuHcgdBnOy4,19588
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=VJWWutbVjpY-rtbAj69YGqirmNrMcz5ymCMl29KCpIo,23215
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=NSyvnNnoeyRMv-rbS-sQk6SNsnAO-vWsa3rlgz3SSZg,43857
69
- angr/analyses/calling_convention/fact_collector.py,sha256=lbTYYARJiLSDcGOH-qvYteqP1bLtuvc8YiCGuLlXdKY,25741
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=grOUivGV9PtVPnzIiPCafV1_g9t8apd738otwYGFWf4,7244
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=dhkQaIG-4f5roig24GEMXW5bbCycl38zUKLQAIeF-Pg,107028
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=p8A22H2MjRQpNnH2tYBAPfspzYLb3xSulLyR1nPnecc,76701
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=XW5nKfa9n0Dh1p6M-tLDK1ofr51RPh_AcLUE50yHvKk,9595
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=m9gBI-1BeSD_iAs5y2PQDLsRpGI6L4kcXAbZ-rWUsO4,39081
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=d_n5EDZsVk09eFdHsohZmDn6El1iVqpWBJqD6TOKX9A,7213
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=HoQTAvZ2-tmNrNjJ1GbR55nTC9O_wuKpJ7yNEfZBszQ,13471
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=9vj8fE4XpuFrnre0ucd138Zqb0P85IMuueW3h4SKhAQ,1449
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=8fwfbDUjNnmQgHz8nzWR5pPv8vew65C8o-Bykq1H6_E,5380
344
- angr/analyses/s_reaching_definitions/s_rda_view.py,sha256=_eC3v9zOmouVwcC4jUep5_qLGbBLr89b3Kf9Yo5XDYI,13498
345
- angr/analyses/s_reaching_definitions/s_reaching_definitions.py,sha256=4J9dIyklZodWAn1DGzMflNRwFuprhS2mwM1ud_yAK0c,7815
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=8L6Vtypw5v4HyFpUulUnfujZB1Rdn6Up-KfTe7zLPvI,31888
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=oeD0p4paxGHTgzriEMdiyUhvikWSAGiU23NkdNKHXAQ,238907
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=qwFo1jABjZBYwao_mfw4MMvouBdULKaSUuS48Prx91s,4834
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=F7Z7BBSwFhsUa0aXKaVWgo_eOcZFy0CSyHP2AoG9ms0,13298
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=8gfAWdRMz73Deh-ZshDM3GPAot9Lf-rHzCiaCil0hlE,1342
1369
- angr-9.2.142.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1370
- angr-9.2.142.dist-info/METADATA,sha256=Gf4UT_m7B3oMMzuxpVqk45qfprwjgjShIKgVcTdixsA,4755
1371
- angr-9.2.142.dist-info/WHEEL,sha256=q0csfyxC0CgL_VbODy1dAROUKOBO6j0wA7STVVTEknI,108
1372
- angr-9.2.142.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1373
- angr-9.2.142.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1374
- angr-9.2.142.dist-info/RECORD,,
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=q0csfyxC0CgL_VbODy1dAROUKOBO6j0wA7STVVTEknI,108
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