angr 9.2.97__py3-none-manylinux2014_x86_64.whl → 9.2.98__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 (27) hide show
  1. angr/__init__.py +1 -1
  2. angr/analyses/cfg/cfg_base.py +14 -1
  3. angr/analyses/cfg/indirect_jump_resolvers/propagator_utils.py +10 -6
  4. angr/analyses/decompiler/optimization_passes/__init__.py +2 -0
  5. angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +380 -0
  6. angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py +4 -1
  7. angr/analyses/decompiler/peephole_optimizations/__init__.py +1 -0
  8. angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py +71 -3
  9. angr/analyses/decompiler/peephole_optimizations/inlined_wstrcpy.py +162 -0
  10. angr/analyses/decompiler/structured_codegen/__init__.py +1 -1
  11. angr/analyses/decompiler/structured_codegen/c.py +72 -99
  12. angr/analyses/decompiler/utils.py +5 -1
  13. angr/analyses/propagator/engine_vex.py +15 -0
  14. angr/analyses/reaching_definitions/engine_vex.py +6 -0
  15. angr/analyses/variable_recovery/engine_vex.py +6 -0
  16. angr/analyses/variable_recovery/irsb_scanner.py +12 -0
  17. angr/engines/light/engine.py +126 -15
  18. angr/knowledge_plugins/functions/function.py +4 -0
  19. angr/storage/memory_mixins/paged_memory/pages/list_page.py +20 -5
  20. angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +2 -1
  21. angr/storage/memory_mixins/simple_interface_mixin.py +4 -0
  22. {angr-9.2.97.dist-info → angr-9.2.98.dist-info}/METADATA +6 -6
  23. {angr-9.2.97.dist-info → angr-9.2.98.dist-info}/RECORD +27 -25
  24. {angr-9.2.97.dist-info → angr-9.2.98.dist-info}/LICENSE +0 -0
  25. {angr-9.2.97.dist-info → angr-9.2.98.dist-info}/WHEEL +0 -0
  26. {angr-9.2.97.dist-info → angr-9.2.98.dist-info}/entry_points.txt +0 -0
  27. {angr-9.2.97.dist-info → angr-9.2.98.dist-info}/top_level.txt +0 -0
@@ -239,10 +239,55 @@ class SimEngineLightVEXMixin(SimEngineLightMixin):
239
239
  return None
240
240
 
241
241
  def _handle_Triop(self, expr: pyvex.IRExpr.Triop): # pylint: disable=useless-return
242
- if self.l is not None:
242
+ handler = None
243
+ if expr.op.startswith("Iop_AddF"):
244
+ handler = "_handle_AddF"
245
+ elif expr.op.startswith("Iop_SubF"):
246
+ handler = "_handle_AddF"
247
+ elif expr.op.startswith("Iop_MulF"):
248
+ handler = "_handle_MulF"
249
+ elif expr.op.startswith("Iop_DivF"):
250
+ handler = "_handle_DivF"
251
+ elif expr.op.startswith("Iop_SinF"):
252
+ handler = "_handle_SinF"
253
+ elif expr.op.startswith("Iop_ScaleF"):
254
+ handler = "_handle_ScaleF"
255
+
256
+ if handler is not None and hasattr(self, handler):
257
+ return getattr(self, handler)(expr)
258
+
259
+ if once(expr.op) and self.l is not None:
243
260
  self.l.error("Unsupported Triop %s.", expr.op)
261
+
244
262
  return None
245
263
 
264
+ def _handle_AddF(self, expr):
265
+ return self._top(expr.result_size(self.tyenv))
266
+
267
+ def _handle_SubF(self, expr):
268
+ return self._top(expr.result_size(self.tyenv))
269
+
270
+ def _handle_MulF(self, expr):
271
+ return self._top(expr.result_size(self.tyenv))
272
+
273
+ def _handle_DivF(self, expr):
274
+ return self._top(expr.result_size(self.tyenv))
275
+
276
+ def _handle_NegF(self, expr):
277
+ return self._top(expr.result_size(self.tyenv))
278
+
279
+ def _handle_AbsF(self, expr):
280
+ return self._top(expr.result_size(self.tyenv))
281
+
282
+ def _handle_SinF(self, expr):
283
+ return self._top(expr.result_size(self.tyenv))
284
+
285
+ def _handle_CosF(self, expr):
286
+ return self._top(expr.result_size(self.tyenv))
287
+
288
+ def _handle_ScaleF(self, expr):
289
+ return self._top(expr.result_size(self.tyenv))
290
+
246
291
  def _handle_RdTmp(self, expr):
247
292
  tmp = expr.tmp
248
293
 
@@ -294,6 +339,10 @@ class SimEngineLightVEXMixin(SimEngineLightMixin):
294
339
  handler = "_handle_Clz"
295
340
  elif expr.op.startswith("Iop_Ctz"):
296
341
  handler = "_handle_Ctz"
342
+ elif expr.op.startswith("Iop_NegF"):
343
+ handler = "_handle_NegF"
344
+ elif expr.op.startswith("Iop_AbsF"):
345
+ handler = "_handle_AbsF"
297
346
 
298
347
  if handler is not None and hasattr(self, handler):
299
348
  return getattr(self, handler)(expr)
@@ -361,6 +410,10 @@ class SimEngineLightVEXMixin(SimEngineLightMixin):
361
410
  handler = "_handle_16HLto32"
362
411
  elif expr.op.startswith("Iop_ExpCmpNE64"):
363
412
  handler = "_handle_ExpCmpNE64"
413
+ elif expr.op.startswith("Iop_SinF"):
414
+ handler = "_handle_SinF"
415
+ elif expr.op.startswith("Iop_CosF"):
416
+ handler = "_handle_CosF"
364
417
 
365
418
  vector_size, vector_count = None, None
366
419
  if handler is not None:
@@ -539,6 +592,10 @@ class SimEngineLightVEXMixin(SimEngineLightMixin):
539
592
 
540
593
  return expr_0 * expr_1
541
594
 
595
+ def _handle_Mull(self, expr):
596
+ self._binop_get_args(expr)
597
+ return self._top(expr.result_size(self.tyenv))
598
+
542
599
  def _handle_DivMod(self, expr):
543
600
  args, r = self._binop_get_args(expr)
544
601
  if args is None:
@@ -938,35 +995,47 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
938
995
  return expr
939
996
 
940
997
  def _ail_handle_UnaryOp(self, expr):
941
- handler_name = "_ail_handle_%s" % expr.op
998
+ handler_name = f"_handle_{expr.op}"
942
999
  try:
943
1000
  handler = getattr(self, handler_name)
944
1001
  except AttributeError:
945
- if self.l is not None:
946
- self.l.warning("Unsupported UnaryOp %s.", expr.op)
947
- return None
1002
+ handler_name = "_ail_handle_%s" % expr.op
1003
+ try:
1004
+ handler = getattr(self, handler_name)
1005
+ except AttributeError:
1006
+ if self.l is not None:
1007
+ self.l.warning("Unsupported UnaryOp %s.", expr.op)
1008
+ return None
948
1009
 
949
1010
  return handler(expr)
950
1011
 
951
1012
  def _ail_handle_BinaryOp(self, expr):
952
- handler_name = "_ail_handle_%s" % expr.op
1013
+ handler_name = f"_handle_{expr.op}"
953
1014
  try:
954
1015
  handler = getattr(self, handler_name)
955
1016
  except AttributeError:
956
- if self.l is not None:
957
- self.l.warning("Unsupported BinaryOp %s.", expr.op)
958
- return None
1017
+ handler_name = "_ail_handle_%s" % expr.op
1018
+ try:
1019
+ handler = getattr(self, handler_name)
1020
+ except AttributeError:
1021
+ if self.l is not None:
1022
+ self.l.warning("Unsupported BinaryOp %s.", expr.op)
1023
+ return None
959
1024
 
960
1025
  return handler(expr)
961
1026
 
962
1027
  def _ail_handle_TernaryOp(self, expr):
963
- handler_name = "_ail_handle_%s" % expr.op
1028
+ handler_name = f"_handle_{expr.op}"
964
1029
  try:
965
1030
  handler = getattr(self, handler_name)
966
1031
  except AttributeError:
967
- if self.l is not None:
968
- self.l.warning("Unsupported Ternary %s.", expr.op)
969
- return None
1032
+ handler_name = "_ail_handle_%s" % expr.op
1033
+ try:
1034
+ handler = getattr(self, handler_name)
1035
+ except AttributeError:
1036
+ if self.l is not None:
1037
+ self.l.warning("Unsupported Ternary %s.", expr.op)
1038
+ return None
970
1039
 
971
1040
  return handler(expr)
972
1041
 
@@ -974,6 +1043,44 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
974
1043
  # Binary operation handlers
975
1044
  #
976
1045
 
1046
+ def _ail_handle_CmpEQ(self, expr):
1047
+ arg0, arg1 = expr.operands
1048
+
1049
+ expr_0 = self._expr(arg0)
1050
+ expr_1 = self._expr(arg1)
1051
+ if expr_0 is None:
1052
+ expr_0 = arg0
1053
+ if expr_1 is None:
1054
+ expr_1 = arg1
1055
+
1056
+ try:
1057
+ if isinstance(expr_0, ailment.Expr.Const) and isinstance(expr_1, ailment.Expr.Const):
1058
+ if expr_0.value == expr_1.value:
1059
+ return ailment.Expr.Const(None, None, 1, 1)
1060
+ return ailment.Expr.Const(None, None, 0, 1)
1061
+ except TypeError:
1062
+ pass
1063
+ return ailment.Expr.BinaryOp(expr.idx, "CmpEQ", [expr_0, expr_1], expr.signed, **expr.tags)
1064
+
1065
+ def _ail_handle_CmpNE(self, expr):
1066
+ arg0, arg1 = expr.operands
1067
+
1068
+ expr_0 = self._expr(arg0)
1069
+ expr_1 = self._expr(arg1)
1070
+ if expr_0 is None:
1071
+ expr_0 = arg0
1072
+ if expr_1 is None:
1073
+ expr_1 = arg1
1074
+
1075
+ try:
1076
+ if isinstance(expr_0, ailment.Expr.Const) and isinstance(expr_1, ailment.Expr.Const):
1077
+ if expr_0.value != expr_1.value:
1078
+ return ailment.Expr.Const(None, None, 1, 1)
1079
+ return ailment.Expr.Const(None, None, 0, 1)
1080
+ except TypeError:
1081
+ pass
1082
+ return ailment.Expr.BinaryOp(expr.idx, "CmpNE", [expr_0, expr_1], expr.signed, **expr.tags)
1083
+
977
1084
  def _ail_handle_CmpLT(self, expr):
978
1085
  arg0, arg1 = expr.operands
979
1086
 
@@ -985,9 +1092,13 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
985
1092
  expr_1 = arg1
986
1093
 
987
1094
  try:
988
- return expr_0 <= expr_1
1095
+ if isinstance(expr_0, ailment.Expr.Const) and isinstance(expr_1, ailment.Expr.Const):
1096
+ if expr_0.value < expr_1.value:
1097
+ return ailment.Expr.Const(None, None, 1, 1)
1098
+ return ailment.Expr.Const(None, None, 0, 1)
989
1099
  except TypeError:
990
- return ailment.Expr.BinaryOp(expr.idx, "CmpLT", [expr_0, expr_1], expr.signed, **expr.tags)
1100
+ pass
1101
+ return ailment.Expr.BinaryOp(expr.idx, "CmpLT", [expr_0, expr_1], expr.signed, **expr.tags)
991
1102
 
992
1103
  def _ail_handle_Add(self, expr):
993
1104
  arg0, arg1 = expr.operands
@@ -1535,6 +1535,10 @@ class Function(Serializable):
1535
1535
 
1536
1536
  for library in libraries:
1537
1537
  for name in name_variants:
1538
+ if isinstance(library, SimSyscallLibrary):
1539
+ # FIXME: we don't support getting declaration from a syscall library yet. we don't have the concept
1540
+ # of abi at this point.
1541
+ continue
1538
1542
  if not library.has_prototype(name):
1539
1543
  continue
1540
1544
 
@@ -2,6 +2,8 @@
2
2
  import logging
3
3
  from typing import Optional, List, Set, Tuple
4
4
 
5
+ import claripy
6
+
5
7
  from angr.utils.dynamic_dictlist import DynamicDictList
6
8
  from angr.storage.memory_object import SimMemoryObject, SimLabeledMemoryObject
7
9
  from . import PageBase
@@ -192,9 +194,14 @@ class ListPage(MemoryObjectMixin, PageBase):
192
194
  merged_offsets.add(b)
193
195
 
194
196
  else:
195
- # get the size that we can merge easily. This is the minimum of
196
- # the size of all memory objects and unallocated spaces.
197
- min_size = min([mo.length - (b + page_addr - mo.base) for mo, _ in memory_objects])
197
+ # get the size that we can merge easily. This is the minimum of the size of all memory objects and
198
+ # unallocated spaces.
199
+ min_size = None
200
+ mask = (1 << memory.state.arch.bits) - 1
201
+ for mo, _ in memory_objects:
202
+ mo_size = mo.length - ((b + page_addr - mo.base) & mask)
203
+ if min_size is None or mo_size < min_size:
204
+ min_size = mo_size
198
205
  for um, _ in unconstrained_in:
199
206
  for i in range(0, min_size):
200
207
  if um._contains(b + i, page_addr):
@@ -263,15 +270,23 @@ class ListPage(MemoryObjectMixin, PageBase):
263
270
  differences.add(c)
264
271
  else:
265
272
  if self.content[c] is None:
273
+ if self.sinkhole is None:
274
+ v = claripy.BVV(0, 8)
275
+ else:
276
+ v = (self.sinkhole.bytes_at(page_addr + c, 1),)
266
277
  self.content[c] = SimMemoryObject(
267
- self.sinkhole.bytes_at(page_addr + c, 1),
278
+ v,
268
279
  page_addr + c,
269
280
  byte_width=byte_width,
270
281
  endness="Iend_BE",
271
282
  )
272
283
  if other.content[c] is None:
284
+ if other.sinkhole is None:
285
+ v = claripy.BVV(0, 8)
286
+ else:
287
+ v = (other.sinkhole.bytes_at(page_addr + c, 1),)
273
288
  other.content[c] = SimMemoryObject(
274
- other.sinkhole.bytes_at(page_addr + c, 1),
289
+ v,
275
290
  page_addr + c,
276
291
  byte_width=byte_width,
277
292
  endness="Iend_BE",
@@ -239,9 +239,10 @@ class MVListPage(
239
239
  # get the size that we can merge easily. This is the minimum of the size of all memory objects and
240
240
  # unallocated spaces.
241
241
  min_size = len(self.content) - b
242
+ mask = (1 << memory.state.arch.bits) - 1
242
243
  for mo_set in mo_sets:
243
244
  for mo in mo_set:
244
- min_size = min(min_size, mo.length - (b + page_addr - mo.base))
245
+ min_size = min(min_size, mo.length - ((b + page_addr - mo.base) & mask))
245
246
  for um, _ in unconstrained_in:
246
247
  for i in range(0, min_size):
247
248
  if um._contains(b + i, page_addr):
@@ -28,6 +28,8 @@ class SimpleInterfaceMixin(MemoryMixin):
28
28
  )
29
29
 
30
30
  def _translate_addr(self, a):
31
+ if isinstance(a, int):
32
+ return a
31
33
  if isinstance(a, claripy.ast.Base) and not a.singlevalued:
32
34
  raise SimMemoryError("address not supported")
33
35
  return self.state.solver.eval(a)
@@ -43,6 +45,8 @@ class SimpleInterfaceMixin(MemoryMixin):
43
45
  raise SimMemoryError("data not supported")
44
46
 
45
47
  def _translate_size(self, s, data):
48
+ if isinstance(s, int):
49
+ return s
46
50
  if isinstance(s, claripy.ast.Base) and not s.singlevalued:
47
51
  raise SimMemoryError("size not supported")
48
52
  if s is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: angr
3
- Version: 9.2.97
3
+ Version: 9.2.98
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
@@ -17,13 +17,13 @@ Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
18
  Requires-Dist: CppHeaderParser
19
19
  Requires-Dist: GitPython
20
- Requires-Dist: ailment ==9.2.97
21
- Requires-Dist: archinfo ==9.2.97
20
+ Requires-Dist: ailment ==9.2.98
21
+ Requires-Dist: archinfo ==9.2.98
22
22
  Requires-Dist: cachetools
23
23
  Requires-Dist: capstone ==5.0.0.post1
24
24
  Requires-Dist: cffi >=1.14.0
25
- Requires-Dist: claripy ==9.2.97
26
- Requires-Dist: cle ==9.2.97
25
+ Requires-Dist: claripy ==9.2.98
26
+ Requires-Dist: cle ==9.2.98
27
27
  Requires-Dist: dpkt
28
28
  Requires-Dist: itanium-demangler
29
29
  Requires-Dist: mulpyplexer
@@ -33,7 +33,7 @@ Requires-Dist: protobuf >=3.19.0
33
33
  Requires-Dist: psutil
34
34
  Requires-Dist: pycparser >=2.18
35
35
  Requires-Dist: pyformlang
36
- Requires-Dist: pyvex ==9.2.97
36
+ Requires-Dist: pyvex ==9.2.98
37
37
  Requires-Dist: rich >=13.1.0
38
38
  Requires-Dist: rpyc
39
39
  Requires-Dist: sortedcontainers
@@ -1,4 +1,4 @@
1
- angr/__init__.py,sha256=Auc70xLKdT9S693CD1Y0AUiVTYGNK3sjurd9uhyWrBQ,3992
1
+ angr/__init__.py,sha256=NZ9Eg7WFAHNg7afS6iARWdkgVjV-jC9Vx2fQTtVTRNo,3992
2
2
  angr/__main__.py,sha256=kaO56Te6h73SM94BVtASF00q5QbBbC3eBs9poVc9sVI,1887
3
3
  angr/annocfg.py,sha256=dK5JAdN4Ig_jgxTBZeZXwk3kAS4-IQUvE6T02GBZTDQ,10818
4
4
  angr/blade.py,sha256=B8QXVQ93jz1YCIlb-dZLeBqYmVFdMXI5GleP1Wnxjrw,15519
@@ -63,7 +63,7 @@ angr/analyses/cfg/__init__.py,sha256=DRCry4KO2k5VJLyfxD_O6dWAdi21IUoaN5TqCnukJJs
63
63
  angr/analyses/cfg/cfb.py,sha256=TqYdFau9ZH_m6cwkxbA35vDs2ES5rOFqfIuZi0lCBsQ,15450
64
64
  angr/analyses/cfg/cfg.py,sha256=1JpPGlqXXRFwE0tk26xjabT_-dq-kqAxMv7o6-DUhp4,3146
65
65
  angr/analyses/cfg/cfg_arch_options.py,sha256=YONHg6y-h6BCsBkJK9tuxb94DDfeOoy9CUS-LVyyDyg,3112
66
- angr/analyses/cfg/cfg_base.py,sha256=RzXERr48Q6HO29A1saDKL5u9m7PxEx4Vy9f7IIHY4G8,122546
66
+ angr/analyses/cfg/cfg_base.py,sha256=JOliBFWPDWiIJlV5IUxU2Uf7BjExUNcJCibIlOQKoTs,123056
67
67
  angr/analyses/cfg/cfg_emulated.py,sha256=Fi3rDN5ByxhO-H4Y7qn-3WZgBG12JGyvxcWmrD_FnFQ,152842
68
68
  angr/analyses/cfg/cfg_fast.py,sha256=lLzVD5jli8cScRa_R2nnVCjWAmvGpRP-m8ns7RvQJaw,218220
69
69
  angr/analyses/cfg/cfg_fast_soot.py,sha256=eA_P-OY3gRRNj2BBgSPMsB_llGyFFCNW3VyGZ2uiMoM,26047
@@ -76,7 +76,7 @@ angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py,sha256=9ctRVLyVUMhkB
76
76
  angr/analyses/cfg/indirect_jump_resolvers/default_resolvers.py,sha256=TyRIBvH8St1eHktpRrErD4zp8HKP3ppglfPuCEE0wg0,1441
77
77
  angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=XnRqocVq_Y52d_XkoMnQoWQCGbwpDdQV4RpQlK9pOIc,101955
78
78
  angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py,sha256=G3y7GYPxtuDQCwBz1eec-74YC87npLK6K2mtRPOsOqc,19350
79
- angr/analyses/cfg/indirect_jump_resolvers/propagator_utils.py,sha256=--Xd8ZZTfoB6s6v0KIru-INgX6ilxccGXlECZ-9l5AU,880
79
+ angr/analyses/cfg/indirect_jump_resolvers/propagator_utils.py,sha256=z77LC9YyQjNEr8ncVwIXVVqPyUjL2x2pGvqAax6QlYo,957
80
80
  angr/analyses/cfg/indirect_jump_resolvers/resolver.py,sha256=2YyKPaXuWVbPwUQZcn0CKuba3ydYGIMT0Vxhy09kcV0,3019
81
81
  angr/analyses/cfg/indirect_jump_resolvers/x86_elf_pic_plt.py,sha256=suPJkHzib8JGQpIrB0K5_AC6FgMOUe0iLnLLLhWVCM0,2971
82
82
  angr/analyses/cfg/indirect_jump_resolvers/x86_pe_iat.py,sha256=tGDb2dpgHATY5AlBExtD3mvIEMqqV6fxKOHNTn8uohU,1621
@@ -113,11 +113,11 @@ angr/analyses/decompiler/region_identifier.py,sha256=KR4SifhPbPwjrJiW2xQ_64BSdAE
113
113
  angr/analyses/decompiler/region_walker.py,sha256=lTfweYbY4_a2f2yGztTKG6JtU1jXf-kaz-NHbX9nkXE,717
114
114
  angr/analyses/decompiler/seq_to_blocks.py,sha256=2KINMEgaXMG3XIiFDMRkbn10dggy7a9AHgwV383huRM,529
115
115
  angr/analyses/decompiler/sequence_walker.py,sha256=mw4RG-Act5_no_RyQcsxWZwva-n7FdH2a7w_uItGUpI,8428
116
- angr/analyses/decompiler/utils.py,sha256=5oBviBzyOQ_Lv4Y-lMGFEMqgV202iygvbRZCOSSHfjw,27930
116
+ angr/analyses/decompiler/utils.py,sha256=jHTMKKyk4GDkWhJGwmZTl_ZD6efJSr9vtG-cULyzKUc,28116
117
117
  angr/analyses/decompiler/ccall_rewriters/__init__.py,sha256=wbWqZ8xG6ZvzEApkAwMsNQFC-iwF3swG1YJsaf1cIrQ,102
118
118
  angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py,sha256=fSvoTtGeFtyvDp60BNNqPlBMxzBICkEAJi8wV29nwF8,21551
119
119
  angr/analyses/decompiler/ccall_rewriters/rewriter_base.py,sha256=gWezEKB7A_YnlfUDs8V8D5syoYAyIXSIme1BKQRoouM,498
120
- angr/analyses/decompiler/optimization_passes/__init__.py,sha256=9FG5MNQdDEIlpo3n49yycm8rxL8dleLEu4kfhgCCnvI,3811
120
+ angr/analyses/decompiler/optimization_passes/__init__.py,sha256=xlLn9Mzcd9vmvV0exca84xejLlOqP1MKYv3WVsQxmX8,3954
121
121
  angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=bjpEMW-Lqj5XW9NWUikGPcRn5scKNc8VvEjVMXxAuq8,5289
122
122
  angr/analyses/decompiler/optimization_passes/code_motion.py,sha256=KEQPdpSfSYiIzHFYGkfj3W8ZupJbogQNhYnYKzo1xUA,15319
123
123
  angr/analyses/decompiler/optimization_passes/const_derefs.py,sha256=FEoiprXxns-3S0nFaIWm2DBW_aDMq3GZ-VOG3CIqcMw,10593
@@ -126,6 +126,7 @@ angr/analyses/decompiler/optimization_passes/div_simplifier.py,sha256=J7LRc3-DKf
126
126
  angr/analyses/decompiler/optimization_passes/engine_base.py,sha256=7nnNZkVMqvikHCy9X11M8KLWbL8lF0DoLYPemETWP4c,10388
127
127
  angr/analyses/decompiler/optimization_passes/expr_op_swapper.py,sha256=vlPhWDyvuEmbGcd1ka8rS68F72Ty6Hw3J00KM3tWCus,4701
128
128
  angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py,sha256=GuDDqmZXUo_a9Af30n9tcihNQcATDrztmraZ-88v134,3946
129
+ angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py,sha256=RPxrXnPZoYGQ63eol6Ttfv5s_C-iP7k1Iz_dRCDn6oM,16281
129
130
  angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=-6znFCAXS7Z3cn5CTqr3mg4r1G_jJgDFJHk2PzMVwtE,7756
130
131
  angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=l571GUDoCt4hZ2RHBNVUraLl-ODmP_kb11bLKwbCIB0,6762
131
132
  angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=9hhCcvE15MCM6KoJU1ba11hFiN6MXxYAb9FbntzYJbg,34328
@@ -141,8 +142,8 @@ angr/analyses/decompiler/optimization_passes/return_duplicator_low.py,sha256=EsP
141
142
  angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py,sha256=csNKaA4dAP5bIYzC29z67nHKNKzDShcauPuapY4rmF4,12559
142
143
  angr/analyses/decompiler/optimization_passes/switch_default_case_duplicator.py,sha256=U9XIMXWYI_UHTamKHdjdXP4QVBvi386SSI0f2KoHu3I,4523
143
144
  angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=tIMZ4kDutUY-5jFrfA34tf3NufE7n33PcAlxz_mSebE,12304
144
- angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py,sha256=lwLc9QpOCTdSIb-0SK0hdxi2gzpABTk2kzdwBY20UOo,2980
145
- angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=pe_zErF540hOybDNC0ij9B3ASQOck9PYNa64hzSEp3U,3208
145
+ angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py,sha256=ZuD4EMJFEf-lNBLg-vmx1zVOfsb4Vq487RbwnubBs4A,3067
146
+ angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=nOxGRR-auZN-oEwhjKtNnPAXcxKvQsCEb-a_LZ5qJxk,3252
146
147
  angr/analyses/decompiler/peephole_optimizations/a_div_const_add_a_mul_n_div_const.py,sha256=Whptbt1qujPPRsNX8kJaobHTwgvym7SPu-tC2wBynBs,1727
147
148
  angr/analyses/decompiler/peephole_optimizations/a_mul_const_div_shr_const.py,sha256=xuLPEVN1QdQT_5U9K4-WIdVdHTogCBOmJPWlnDW8Cz8,1365
148
149
  angr/analyses/decompiler/peephole_optimizations/a_shl_const_sub_a.py,sha256=tEr_XcYoOXcFm5paY_CEzgSOjrksz20utMZa6smF9TU,988
@@ -163,8 +164,9 @@ angr/analyses/decompiler/peephole_optimizations/conv_a_sub0_shr_and.py,sha256=vz
163
164
  angr/analyses/decompiler/peephole_optimizations/conv_shl_shr.py,sha256=0IHIk7uxIC70140k3VcXlnx4QcunAeoETXF1ZgJi2Pk,2070
164
165
  angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=A0AUf60c047X7VhOr7tTAJE95qS3yiUxE1dYr9maA-8,10131
165
166
  angr/analyses/decompiler/peephole_optimizations/extended_byte_and_mask.py,sha256=ymP9tDU4NipGOdFWsmLHrR6dKVcEFiaTgM1-L_dfmOM,2015
166
- angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py,sha256=x8ZS-ThnUiJPBacRFpOZ3gBqixamrHSCCZSR-L5jyC8,2601
167
+ angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py,sha256=YSphozdu4ORdM_222viSUb6EPigRDkRi9klBQd76nqs,5765
167
168
  angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py,sha256=vrXAaYKT99LJK5BLKlyQ7xtzQx6hIujqTAv0-Ur1CWo,4676
169
+ angr/analyses/decompiler/peephole_optimizations/inlined_wstrcpy.py,sha256=tT57fo30sPuUy2sYD64mZSCL_yAgwBmdvvoW9CA6aUc,6283
168
170
  angr/analyses/decompiler/peephole_optimizations/invert_negated_logical_conjuction_disjunction.py,sha256=a0IDp0kKBrPwhDVejPFhcNseZdprF_5EZRZs7KTR4gA,2084
169
171
  angr/analyses/decompiler/peephole_optimizations/one_sub_bool.py,sha256=kW8AbWfMqFzI1CVFp79TFX60IZxaQhRG8XUckuc-vGI,1136
170
172
  angr/analyses/decompiler/peephole_optimizations/remove_cascading_conversions.py,sha256=3a1ZoTq66HTU68y5DCC2sLvItPmqF_Kv05uvOacxsRM,591
@@ -198,9 +200,9 @@ angr/analyses/decompiler/region_simplifiers/node_address_finder.py,sha256=OjcyE-
198
200
  angr/analyses/decompiler/region_simplifiers/region_simplifier.py,sha256=odeRyT8VItRPIFuUPNaRnA936LwxwXOFbM_HhehK90I,8209
199
201
  angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py,sha256=0NBa_tpz03ZcaHYUNKXSVZjF3TVmqs2FUc2TdVGwsqc,24545
200
202
  angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py,sha256=HGIiC6c3C91VfcqxUHe9aTsRohwmMXOHZH_G_dbwwx4,3327
201
- angr/analyses/decompiler/structured_codegen/__init__.py,sha256=Glc4jBCr7lZckltN9XZdSvMrGHf0swXFyKTr_QQKdWE,290
203
+ angr/analyses/decompiler/structured_codegen/__init__.py,sha256=NLEvs8xnJwJiUgX8AmgS7rtFFW4SxtQcA1AjzE-GryA,313
202
204
  angr/analyses/decompiler/structured_codegen/base.py,sha256=nJPOoeJCbewchYdXjSE4S2b1-WN6pT3TxmCQMDO0azw,3845
203
- angr/analyses/decompiler/structured_codegen/c.py,sha256=t7upcoi5ttK7aMM0YfzngXbIzEHUGh6bi2XxcQcn0_4,135109
205
+ angr/analyses/decompiler/structured_codegen/c.py,sha256=UpljxwZANYUX9UrQoYKW5yjTW0OO0faxOzLEyocDKYM,134738
204
206
  angr/analyses/decompiler/structured_codegen/dummy.py,sha256=IVfmtcWpTgNCRVsuW3GdQgDnuPmvodX85V0bBYtF_BI,535
205
207
  angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=TMz65TkF_ID_Ipocj0aFDb84H6slolN90wq0tzhY2Rk,6773
206
208
  angr/analyses/decompiler/structuring/__init__.py,sha256=eSiT6xUpv9K5-enK3OZj2lNzxwowS9_5OTrjHiPgfFs,371
@@ -251,7 +253,7 @@ angr/analyses/identifier/functions/strtol.py,sha256=Py_6Y9rR5dfy53LX8w9WktSBaxdy
251
253
  angr/analyses/propagator/__init__.py,sha256=5-UKSiAtYocLzmQWXPzxyBnPui_c8P_r617KDwtRnNw,43
252
254
  angr/analyses/propagator/engine_ail.py,sha256=R4_XLRN7Z_Il37bhFPLCBYa01fuGFCXyg7sUhbFo7mY,68660
253
255
  angr/analyses/propagator/engine_base.py,sha256=0j5NzJ9jArF4KeysBeiPoo_RKyCvlgn-i3inSZt1cyc,1735
254
- angr/analyses/propagator/engine_vex.py,sha256=BthcZPPizwrCfPe4P6ycZ8bNAT8YN0h5gAmR-8UqpLE,12491
256
+ angr/analyses/propagator/engine_vex.py,sha256=mbFkn1LTmhL0H_etG4JLdOSBoH6Z2TG6qJJ4W5Oq_0c,12900
255
257
  angr/analyses/propagator/outdated_definition_walker.py,sha256=OJnI9rlyutyy2qHMTqnrnQJCXKcBHvgwHfiqlWDECiY,6890
256
258
  angr/analyses/propagator/propagator.py,sha256=IdIGtwYtxJPS4nU-ktBZBhoLz1_2JtfTVcc7kPczZxs,16134
257
259
  angr/analyses/propagator/tmpvar_finder.py,sha256=GqP1lm-_ez4AvXraDt1BQ1o7GvdjLI7j-TUL5k-lKbU,442
@@ -262,7 +264,7 @@ angr/analyses/reaching_definitions/__init__.py,sha256=3itfNz4b0XcTDJJbU10gZfSuqU
262
264
  angr/analyses/reaching_definitions/call_trace.py,sha256=5y8VtU-5-2ISamCkok6zoMahWASO2TBQYl5Q0pgeLGw,2217
263
265
  angr/analyses/reaching_definitions/dep_graph.py,sha256=M4P5jyA7nVrWk9oEOB5EQUtGIf-eKCevwhH3uj-O7rQ,14886
264
266
  angr/analyses/reaching_definitions/engine_ail.py,sha256=uvkgtdxWxFn2ZBM6-mEhuvYEBjvdwa7PiTlN4yOKqMI,45997
265
- angr/analyses/reaching_definitions/engine_vex.py,sha256=q3CDtDG7p5ZhYLzEO7NAK47TJu9saa7X_uRqqk-n31U,42934
267
+ angr/analyses/reaching_definitions/engine_vex.py,sha256=aN1daC3XSsVSkiPcUAi5_3UvwlXA_nSuQhxMpKk2Rpc,43124
266
268
  angr/analyses/reaching_definitions/external_codeloc.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
267
269
  angr/analyses/reaching_definitions/function_handler.py,sha256=TB6yW0TBQnTdAv3SOBcui6dSCBMoviivKx0v8COY12w,26839
268
270
  angr/analyses/reaching_definitions/heap_allocator.py,sha256=L7LCcE-QvLd_vuc0slWmQ6X73wkYNMkUEDy1cJAV818,2634
@@ -283,8 +285,8 @@ angr/analyses/variable_recovery/__init__.py,sha256=j2SZyfzCAagqNTj0IcYJtOx4b3oAv
283
285
  angr/analyses/variable_recovery/annotations.py,sha256=eAifcWVmb1xUmEGtpiy8PzIupSuZtmEDEiUav-3_z20,1403
284
286
  angr/analyses/variable_recovery/engine_ail.py,sha256=DEotW9Pe6NyS23dOgbDZ5EAYY3qaik_mECGisuNRyb8,25716
285
287
  angr/analyses/variable_recovery/engine_base.py,sha256=SM-BCv-UPE7bmaFCRpxLKJGL6u0WUUtQr3CgmIeqG5Y,41633
286
- angr/analyses/variable_recovery/engine_vex.py,sha256=oDmUaawW8sKJmbtHadubJmiuYuFeORn0Q-BTRG-rUTA,19046
287
- angr/analyses/variable_recovery/irsb_scanner.py,sha256=3lUK_jfJCVEZQ0QvhwsmgCn2RAIj_0FDDn8ftggubjA,4701
288
+ angr/analyses/variable_recovery/engine_vex.py,sha256=ni-OCeHFhhPRo5iH2p4AvI_43ADOO1jUc__GX0tIb-U,19215
289
+ angr/analyses/variable_recovery/irsb_scanner.py,sha256=c8SMeqX4rddO7lDtFaXvFQRwA7AnHHOpXnWOQyjgYtw,4907
288
290
  angr/analyses/variable_recovery/variable_recovery.py,sha256=F7dOWJVdV2kE1jjIyqEDgp0bZ03_cReEeHSPKPnhI1s,21802
289
291
  angr/analyses/variable_recovery/variable_recovery_base.py,sha256=mm9p86ZRYwIXrMB-BW_s5_Aj0_PoOg865QCKDWsrBwE,14960
290
292
  angr/analyses/variable_recovery/variable_recovery_fast.py,sha256=l2O6TRAoENsLnWQu60n_pmgAIyXrk86f1JNzlCJLLi0,24125
@@ -331,7 +333,7 @@ angr/engines/syscall.py,sha256=LNMC3zyis3OiWC7_8Zn1blMw1EDib5FjUqepXlaWDTI,2177
331
333
  angr/engines/unicorn.py,sha256=gf7LjjWyaaujqSuCq3d-BGm8t5sdZjzsJeBevGfdiLw,24447
332
334
  angr/engines/light/__init__.py,sha256=j9vH2fU9MaNVQ8NT3Ek3Tj2zkGlVxlKyzia8zVTofYs,186
333
335
  angr/engines/light/data.py,sha256=jZBAJxor2zg5m4s63joSrjUs8H-OeHBZiqZmc3dqEQQ,23132
334
- angr/engines/light/engine.py,sha256=REogUdY0UD85-07Qc9Nn0gEA4mhgqevq46iRmBy-OvI,40918
336
+ angr/engines/light/engine.py,sha256=dJxHkFrfCjufo-d4PO_SkBT8CMp3aQ7lbWpfQGImCoI,44929
335
337
  angr/engines/pcode/__init__.py,sha256=UwMEwXQvHXIIgedJn2ZOvBBEgfHg2rfREBSpcTSXCZ4,83
336
338
  angr/engines/pcode/behavior.py,sha256=gwMFXQ3cibqchRHnRfiVzzzLIg2mgX-2XJlkD82p8J0,28720
337
339
  angr/engines/pcode/cc.py,sha256=lwMeO9Mg8L7-uxxPzYmu13n7YLNo-Sr3xxLk_-QHTOU,2994
@@ -448,7 +450,7 @@ angr/knowledge_plugins/cfg/cfg_node.py,sha256=Q_qqQ1LisCzTWROOQAfvyaBjS86zxcMw6I
448
450
  angr/knowledge_plugins/cfg/indirect_jump.py,sha256=yzPf1jjUNPgGP7D7IamqX6KF-EJX-heZjDEr4SRUWDA,2145
449
451
  angr/knowledge_plugins/cfg/memory_data.py,sha256=FzRUFltXrN0G3OeMZEbb3xc7I-W8AaomtCTSXUQlJ0g,5040
450
452
  angr/knowledge_plugins/functions/__init__.py,sha256=6IerJjMKKvM70mcJQhmXJYiipePOQ9ZSTmavTIUgg5Q,77
451
- angr/knowledge_plugins/functions/function.py,sha256=cxrP3rh3nMcAkl0mBb5sLpbQmTj5cXXWlmCcAzBMeJw,66932
453
+ angr/knowledge_plugins/functions/function.py,sha256=EBvfQWQqPPvAz3_Hw44kodDz9K5uGbGuhgtf57NTU-I,67184
452
454
  angr/knowledge_plugins/functions/function_manager.py,sha256=BsVGnI-cvcCkpZ_8ssoOCspKmU58uKjLb0CBzIAKo7c,18990
453
455
  angr/knowledge_plugins/functions/function_parser.py,sha256=cb_AD5oFqoyXapDBawnJV1D9XVRMBGa9GwwDudNSc3M,11916
454
456
  angr/knowledge_plugins/functions/soot_function.py,sha256=2zwz_tdKbEnF8eUkOEmpNr7AUeooun2-SiIoY_xIdMw,4971
@@ -1231,7 +1233,7 @@ angr/storage/memory_mixins/hex_dumper_mixin.py,sha256=ciMIrmfTmxWPWVUUiIw5h8YNdH
1231
1233
  angr/storage/memory_mixins/label_merger_mixin.py,sha256=F-1F_zotCO9OOTXaG8Ax2-Mi2F2aN7hQ8pIwxgH1nVE,858
1232
1234
  angr/storage/memory_mixins/multi_value_merger_mixin.py,sha256=Gssxe83oAn8AsFyF2b9Ye99Y3Z6tgYos3Y-24hYVmQ0,3036
1233
1235
  angr/storage/memory_mixins/name_resolution_mixin.py,sha256=YOM3yDjTmybDgAVvJGHuVWUgkDqsbFsWRgkJP8vI9ho,3412
1234
- angr/storage/memory_mixins/simple_interface_mixin.py,sha256=zdTLTKblqep-eA5LwQ3kuUIfV2fhUpgQN4bxRGhIf-g,2492
1236
+ angr/storage/memory_mixins/simple_interface_mixin.py,sha256=KTHvca8MXCWF4W8dbnQLFd7uJ-Gsab03_3kJGfFTAyY,2596
1235
1237
  angr/storage/memory_mixins/simplification_mixin.py,sha256=stTzmaoa0IHxhDSWsYdzKGSt2n37XRjJ7kgZdoa5Uu0,502
1236
1238
  angr/storage/memory_mixins/size_resolution_mixin.py,sha256=KEOCz6B_YOUXczNYeCU4UH2YMoi7k9ww86Ll5cCKNVE,5659
1237
1239
  angr/storage/memory_mixins/slotted_memory.py,sha256=tf-SqyvUg9H9e_cAJBXD5KZ_IIL1PBz5tDiODQCMad8,4884
@@ -1254,9 +1256,9 @@ angr/storage/memory_mixins/paged_memory/pages/__init__.py,sha256=rwGAcESljLORCDt
1254
1256
  angr/storage/memory_mixins/paged_memory/pages/cooperation.py,sha256=wAFitUWddf8-iCuueqg-GW0aqhv7UgnwWekLI7hX3eo,12776
1255
1257
  angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py,sha256=_Nn4lRfGwAHelfl4fCZo41pqH9DM_NI-VXhBPXQbI0o,3039
1256
1258
  angr/storage/memory_mixins/paged_memory/pages/ispo_mixin.py,sha256=mHt5nQYXkXifwGT0_UGvKirECEC2v7jNNtf_6oY57uI,2050
1257
- angr/storage/memory_mixins/paged_memory/pages/list_page.py,sha256=ey-c8PLa_iH5gyz6VRcxtK1I9w8JbIrvkFO1Hj9V8L8,14108
1259
+ angr/storage/memory_mixins/paged_memory/pages/list_page.py,sha256=UpD45TazurTnukRn_t5LZAGH-dRT1TvDcVC4Vxqiasc,14644
1258
1260
  angr/storage/memory_mixins/paged_memory/pages/multi_values.py,sha256=Qhgy3Ie76Hektg_u35Hyt8VfCGV_HS2F5D1nkhYlmCQ,11302
1259
- angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py,sha256=J4RUUfaNCSixtTqrEpoRVjMkgvBDQPYVIMntC8r2yF0,17647
1261
+ angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py,sha256=bxlsOlDUANb2hC6AlQk6W5YlczgSrePR40JzYPHAMRo,17713
1260
1262
  angr/storage/memory_mixins/paged_memory/pages/permissions_mixin.py,sha256=Ek2YSmFOGUScFXPx8hqroNkl3gK1aqKCMv_X3_pImLs,830
1261
1263
  angr/storage/memory_mixins/paged_memory/pages/refcount_mixin.py,sha256=oES5tahTy4SgyDi2h5oRRC0PC4JHNcIvdAC4INKkeJw,1701
1262
1264
  angr/storage/memory_mixins/paged_memory/pages/ultra_page.py,sha256=-q0bkJvWMw-ki9AfZP6hvQeD6JljoWiYTKmuTjDRorA,19139
@@ -1286,9 +1288,9 @@ angr/utils/mp.py,sha256=EPeBml7i1HNOg9OFvj-hoqaGJzKD4fKyM-mHWIaJ3Ko,1825
1286
1288
  angr/utils/segment_list.py,sha256=lhGy16YKKaD-F0JtWmjJ6a2RFcdTrKcLfPE9ILRVtCs,20431
1287
1289
  angr/utils/timing.py,sha256=uOowCP8kotDrKDOjlAod-guBuYkAA8zEtiAwpdwMlIU,1334
1288
1290
  angr/utils/typing.py,sha256=_I4dzZSh1_uRKQ3PpjXseA_CaJH6ru2yAxjICkJhfmI,417
1289
- angr-9.2.97.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1290
- angr-9.2.97.dist-info/METADATA,sha256=sXHpTXy0d0PQYwp2VuqnppRHIL9I-9yvx8FWx8K4ktQ,4796
1291
- angr-9.2.97.dist-info/WHEEL,sha256=eqK0rWjSY7_bgNbVXZVO2Wi8Tj4K-w2xVOdGmXi88ck,109
1292
- angr-9.2.97.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1293
- angr-9.2.97.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1294
- angr-9.2.97.dist-info/RECORD,,
1291
+ angr-9.2.98.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
1292
+ angr-9.2.98.dist-info/METADATA,sha256=Gp-S2YVeHajTilRoayEKgiRAVso4CYYLs7mJq3ynCi0,4796
1293
+ angr-9.2.98.dist-info/WHEEL,sha256=eqK0rWjSY7_bgNbVXZVO2Wi8Tj4K-w2xVOdGmXi88ck,109
1294
+ angr-9.2.98.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1295
+ angr-9.2.98.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1296
+ angr-9.2.98.dist-info/RECORD,,
File without changes
File without changes