angr 9.2.133__py3-none-macosx_10_9_x86_64.whl → 9.2.134__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 CHANGED
@@ -2,7 +2,7 @@
2
2
  # pylint: disable=wrong-import-position
3
3
  from __future__ import annotations
4
4
 
5
- __version__ = "9.2.133"
5
+ __version__ = "9.2.134"
6
6
 
7
7
  if bytes is str:
8
8
  raise Exception(
@@ -1639,7 +1639,7 @@ class JumpTableResolver(IndirectJumpResolver):
1639
1639
  # If we're just reading a constant, don't bother with the rest of this mess!
1640
1640
  if isinstance(load_stmt, pyvex.IRStmt.WrTmp):
1641
1641
  assert isinstance(load_stmt.data, pyvex.IRExpr.Load)
1642
- if type(load_stmt.data.addr) is pyvex.IRExpr.Const:
1642
+ if isinstance(load_stmt.data.addr, pyvex.IRExpr.Const):
1643
1643
  # It's directly loading from a constant address
1644
1644
  # e.g.,
1645
1645
  # ldr r0, =main+1
@@ -1656,7 +1656,7 @@ class JumpTableResolver(IndirectJumpResolver):
1656
1656
  l.info("Resolved constant indirect jump from %#08x to %#08x", addr, jump_target_addr)
1657
1657
  return jump_target
1658
1658
 
1659
- elif isinstance(load_stmt, pyvex.IRStmt.LoadG) and type(load_stmt.addr) is pyvex.IRExpr.Const:
1659
+ elif isinstance(load_stmt, pyvex.IRStmt.LoadG) and isinstance(load_stmt.addr, pyvex.IRExpr.Const):
1660
1660
  # It's directly loading from a constant address
1661
1661
  # e.g.,
1662
1662
  # 4352c SUB R1, R11, #0x1000
@@ -2269,9 +2269,9 @@ class JumpTableResolver(IndirectJumpResolver):
2269
2269
 
2270
2270
  if isinstance(load_stmt, pyvex.IRStmt.WrTmp):
2271
2271
  assert isinstance(load_stmt.data, pyvex.IRExpr.Load)
2272
- if type(load_stmt.data.addr) is pyvex.IRExpr.RdTmp:
2272
+ if isinstance(load_stmt.data.addr, pyvex.IRExpr.RdTmp):
2273
2273
  load_addr_tmp = load_stmt.data.addr.tmp
2274
- elif type(load_stmt.data.addr) is pyvex.IRExpr.Const:
2274
+ elif isinstance(load_stmt.data.addr, pyvex.IRExpr.Const):
2275
2275
  # It's directly loading from a constant address
2276
2276
  # e.g.,
2277
2277
  # ldr r0, =main+1
@@ -2280,9 +2280,9 @@ class JumpTableResolver(IndirectJumpResolver):
2280
2280
  jump_target_addr = load_stmt.data.addr.con.value
2281
2281
  return claripy.BVV(jump_target_addr, state.arch.bits)
2282
2282
  elif isinstance(load_stmt, pyvex.IRStmt.LoadG):
2283
- if type(load_stmt.addr) is pyvex.IRExpr.RdTmp:
2283
+ if isinstance(load_stmt.addr, pyvex.IRExpr.RdTmp):
2284
2284
  load_addr_tmp = load_stmt.addr.tmp
2285
- elif type(load_stmt.addr) is pyvex.IRExpr.Const:
2285
+ elif isinstance(load_stmt.addr, pyvex.IRExpr.Const):
2286
2286
  # It's directly loading from a constant address
2287
2287
  # e.g.,
2288
2288
  # 4352c SUB R1, R11, #0x1000
@@ -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(self.rhs.rhs)
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)
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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: angr
3
- Version: 9.2.133
3
+ Version: 9.2.134
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.133
20
- Requires-Dist: archinfo==9.2.133
19
+ Requires-Dist: ailment==9.2.134
20
+ Requires-Dist: archinfo==9.2.134
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.133
25
- Requires-Dist: cle==9.2.133
24
+ Requires-Dist: claripy==9.2.134
25
+ Requires-Dist: cle==9.2.134
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.133
34
+ Requires-Dist: pyvex==9.2.134
35
35
  Requires-Dist: rich>=13.1.0
36
36
  Requires-Dist: sortedcontainers
37
37
  Requires-Dist: sympy
@@ -1,4 +1,4 @@
1
- angr/__init__.py,sha256=JLLKDRq6Vl_n1oe8kwqttTcVMSf_N4q7j84Pz1b0_Rg,9153
1
+ angr/__init__.py,sha256=RdEZBtno9mn8PRTf_VSkaLK0AnqKMT1zIMQkRyqJAfI,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
@@ -80,7 +80,7 @@ angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py,sha256=cE713VrHJdNZrB9
80
80
  angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py,sha256=AIA6YeWlzBAOwhdDolHfxoEWvSsvNPo73KDRIjbHdtY,5202
81
81
  angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py,sha256=xD-iVlOmYljEwubiff5tNPvdEl7aQhzMQWWjA7l2C_s,5277
82
82
  angr/analyses/cfg/indirect_jump_resolvers/default_resolvers.py,sha256=v555keK0pfM451YzWbIC0pMG1pQu1wCme1moWaMPqGo,1541
83
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=iml0bkjUitszQpA8nneHWj2VAy07E0qm5tlPF9j_sJw,104685
83
+ angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=KdCaHa4i0ZS3KleySPB46JIswoOid2MWlwgxnhWgkzE,104709
84
84
  angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py,sha256=SSwWVKCqMNxdqTeMkLqXk5UFmzgxJDm8H-xLNBr1Hnc,10173
85
85
  angr/analyses/cfg/indirect_jump_resolvers/mips_elf_got.py,sha256=DT1tomUTCXmhD8N_V4KMeyS-YecDlR7f4kOANiKyGeI,5213
86
86
  angr/analyses/cfg/indirect_jump_resolvers/propagator_utils.py,sha256=ppqn5vYGOD8HknweabD7NWgZmoBgjkOC6m9t-XD46T0,992
@@ -249,7 +249,7 @@ angr/analyses/decompiler/ssailification/traversal_engine.py,sha256=dczhUEuoBTg0w
249
249
  angr/analyses/decompiler/ssailification/traversal_state.py,sha256=_AsCnLiI2HFdM6WrPyAudhc0X4aU_PziznbOgmzpDzQ,1313
250
250
  angr/analyses/decompiler/structured_codegen/__init__.py,sha256=mxG4yruPAab8735wVgXZ1zu8qFPz-njKe0m5UcywE3o,633
251
251
  angr/analyses/decompiler/structured_codegen/base.py,sha256=DEeNrBOC8AAJb-qFyUoYeX8fpHSPmAsutCDF-0UhaQ4,3782
252
- angr/analyses/decompiler/structured_codegen/c.py,sha256=AogaRs4uQx79_LxrlNVuRTyMmiW_xkKmWeIh2FSrGQY,141010
252
+ angr/analyses/decompiler/structured_codegen/c.py,sha256=MJk6QzT3V9xnAeHfvcruyFdrS7g8xXyktqJthp2QYxo,141432
253
253
  angr/analyses/decompiler/structured_codegen/dummy.py,sha256=JZLeovXE-8C-unp2hbejxCG30l-yCx4sWFh7JMF_iRM,570
254
254
  angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=J6V40RuIyKXN7r6ESftIYfoREgmgFavnUL5m3lyTzlM,7072
255
255
  angr/analyses/decompiler/structuring/__init__.py,sha256=kEFP-zv9CZrhJtLTKwT9-9cGVTls71wLYaLDUuYorBU,711
@@ -548,7 +548,7 @@ angr/knowledge_plugins/xrefs/__init__.py,sha256=5PhqVOtTZ27lCjJ9wp7akUeJydqILbyC
548
548
  angr/knowledge_plugins/xrefs/xref.py,sha256=U2H1rfffp5EXoh0awlGxMBxA4K5MIwl3CXjV3Uih3tA,4856
549
549
  angr/knowledge_plugins/xrefs/xref_manager.py,sha256=Yb88z3L8Y26TfGeRHdsGWQlT9f6oWntjEg6s-kcVtUQ,4040
550
550
  angr/knowledge_plugins/xrefs/xref_types.py,sha256=LcQ9pD4E4XlC51Us49xiqAoGAFGpnCrpYO4mOzILiKI,308
551
- angr/lib/angr_native.dylib,sha256=9_6jdhiCnMhjijmb1ZDCBZ4AoUqaAu5rw1WQm7cGzxI,18820608
551
+ angr/lib/angr_native.dylib,sha256=I_fTbNxZZ4GuYLgj1X1yzT2GP-DoW0Xr4Tek5tC5_xU,18820608
552
552
  angr/misc/__init__.py,sha256=FoUwjk1DhqlIsr2sBN0MlR8MnSOGQv9QJhxmq32RYuA,355
553
553
  angr/misc/ansi.py,sha256=nPJHC0SKfqasMQZ0LxdmmIYojjmk4nr5jI6FrzoTwS0,811
554
554
  angr/misc/autoimport.py,sha256=iZagpuPwZWczUTYIqs-JkDMQjftMqc_cchcm7OBFiEg,3450
@@ -1295,7 +1295,7 @@ angr/storage/memory_mixins/keyvalue_memory_mixin.py,sha256=tqjpvMaGyXeKIPTO669qM
1295
1295
  angr/storage/memory_mixins/label_merger_mixin.py,sha256=zPCM7I7zEgFzk3pwqeFKFs_clv5qMBaoPnuHxRKv4dY,897
1296
1296
  angr/storage/memory_mixins/memory_mixin.py,sha256=ccvxbjLMO98C-PPlRCtTKDrB53eWtq2VAkhSkcADOiM,6474
1297
1297
  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=EfgcD9B0Ew-GnY3m1EjbAwhhqGw_bwRrja0tP3tPJgI,3395
1298
+ angr/storage/memory_mixins/name_resolution_mixin.py,sha256=xfqeZZ8DB6NdQawpDhWRdwR2jQcFgu1NWCgqhR7mYYQ,3434
1299
1299
  angr/storage/memory_mixins/simple_interface_mixin.py,sha256=isJ3_vuElWtLTW7MxweHs5WJOuawr1LmLlS7-yakWd4,2576
1300
1300
  angr/storage/memory_mixins/simplification_mixin.py,sha256=ajjiQ4ulbVQ1WgygR7WuM7vrOzsFGa4D-11R7ipmr1c,594
1301
1301
  angr/storage/memory_mixins/size_resolution_mixin.py,sha256=7LwcgsuJpwPlQ8LzX5q0bZj2PTkLs_cngrd3lDiHd2s,5728
@@ -1354,9 +1354,9 @@ angr/utils/timing.py,sha256=ELuRPzdRSHzOATgtAzTFByMlVr021ypMrsvtpopreLg,1481
1354
1354
  angr/utils/ssa/__init__.py,sha256=OD3eTWAiH9QXGpwliNBCTC3Z4bux9iBX3Sp50aUNHvI,8758
1355
1355
  angr/utils/ssa/tmp_uses_collector.py,sha256=rSpvMxBHzg-tmvhsfjn3iLyPEKzaZN-xpQrdslMq3J4,793
1356
1356
  angr/utils/ssa/vvar_uses_collector.py,sha256=8gfAWdRMz73Deh-ZshDM3GPAot9Lf-rHzCiaCil0hlE,1342
1357
- angr-9.2.133.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1358
- angr-9.2.133.dist-info/METADATA,sha256=ghKJD7werb9i_PZtd8MJfsmgFRjiMA3IOpwVT7NF51g,4762
1359
- angr-9.2.133.dist-info/WHEEL,sha256=dYIPLwxtxe-ENqXjLxewAHnumMwYQtssgKNOBq_TWGc,106
1360
- angr-9.2.133.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1361
- angr-9.2.133.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1362
- angr-9.2.133.dist-info/RECORD,,
1357
+ angr-9.2.134.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1358
+ angr-9.2.134.dist-info/METADATA,sha256=F82cwrJZ-zYDIYDpEL9zylN0aNkwmUle6tmDKM2kffg,4762
1359
+ angr-9.2.134.dist-info/WHEEL,sha256=dYIPLwxtxe-ENqXjLxewAHnumMwYQtssgKNOBq_TWGc,106
1360
+ angr-9.2.134.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1361
+ angr-9.2.134.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1362
+ angr-9.2.134.dist-info/RECORD,,
File without changes