angr 9.2.176__cp310-abi3-macosx_11_0_arm64.whl → 9.2.178__cp310-abi3-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of angr might be problematic. Click here for more details.

Files changed (42) hide show
  1. angr/__init__.py +1 -1
  2. angr/analyses/cfg/cfg_fast.py +15 -0
  3. angr/analyses/decompiler/ail_simplifier.py +69 -1
  4. angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py +45 -7
  5. angr/analyses/decompiler/clinic.py +15 -7
  6. angr/analyses/decompiler/dirty_rewriters/__init__.py +7 -0
  7. angr/analyses/decompiler/dirty_rewriters/amd64_dirty.py +69 -0
  8. angr/analyses/decompiler/dirty_rewriters/rewriter_base.py +27 -0
  9. angr/analyses/decompiler/optimization_passes/__init__.py +3 -0
  10. angr/analyses/decompiler/optimization_passes/optimization_pass.py +10 -8
  11. angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +44 -6
  12. angr/analyses/decompiler/optimization_passes/register_save_area_simplifier_adv.py +198 -0
  13. angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py +111 -55
  14. angr/analyses/decompiler/peephole_optimizations/cas_intrinsics.py +69 -12
  15. angr/analyses/decompiler/peephole_optimizations/inlined_wcscpy_consolidation.py +189 -6
  16. angr/analyses/decompiler/peephole_optimizations/remove_redundant_shifts_around_comparators.py +72 -1
  17. angr/analyses/decompiler/presets/basic.py +2 -0
  18. angr/analyses/decompiler/presets/fast.py +2 -0
  19. angr/analyses/decompiler/presets/full.py +2 -0
  20. angr/analyses/decompiler/utils.py +10 -3
  21. angr/analyses/flirt/flirt.py +5 -4
  22. angr/analyses/s_propagator.py +23 -21
  23. angr/analyses/smc.py +2 -3
  24. angr/analyses/variable_recovery/engine_ail.py +39 -0
  25. angr/emulator.py +2 -1
  26. angr/engines/hook.py +1 -1
  27. angr/engines/icicle.py +19 -3
  28. angr/knowledge_plugins/functions/function.py +2 -2
  29. angr/knowledge_plugins/labels.py +4 -4
  30. angr/procedures/definitions/__init__.py +9 -0
  31. angr/procedures/definitions/parse_win32json.py +11 -0
  32. angr/procedures/definitions/wdk/ntoskrnl.json +4 -0
  33. angr/rustylib.abi3.so +0 -0
  34. angr/unicornlib.dylib +0 -0
  35. angr/utils/funcid.py +85 -0
  36. angr/utils/ssa/__init__.py +2 -6
  37. {angr-9.2.176.dist-info → angr-9.2.178.dist-info}/METADATA +6 -5
  38. {angr-9.2.176.dist-info → angr-9.2.178.dist-info}/RECORD +42 -38
  39. {angr-9.2.176.dist-info → angr-9.2.178.dist-info}/WHEEL +0 -0
  40. {angr-9.2.176.dist-info → angr-9.2.178.dist-info}/entry_points.txt +0 -0
  41. {angr-9.2.176.dist-info → angr-9.2.178.dist-info}/licenses/LICENSE +0 -0
  42. {angr-9.2.176.dist-info → angr-9.2.178.dist-info}/top_level.txt +0 -0
angr/engines/icicle.py CHANGED
@@ -8,7 +8,7 @@ from dataclasses import dataclass
8
8
  from typing_extensions import override
9
9
 
10
10
  import pypcode
11
- from archinfo import Arch, Endness, ArchARMCortexM
11
+ from archinfo import Arch, ArchPcode, Endness, ArchARMCortexM
12
12
 
13
13
  from angr.engines.concrete import ConcreteEngine, HeavyConcreteState
14
14
  from angr.engines.failure import SimEngineFailure
@@ -72,6 +72,8 @@ class IcicleEngine(ConcreteEngine):
72
72
  accurate, just a set of heuristics to get the right architecture. When
73
73
  adding a new architecture, this function may need to be updated.
74
74
  """
75
+ if isinstance(arch, ArchARMCortexM) or (isinstance(arch, ArchPcode) and arch.pcode_arch == "ARM:LE:32:Cortex"):
76
+ return "armv7m"
75
77
  if arch.linux_name == "arm":
76
78
  return "armv7a" if arch.memory_endness == Endness.LE else "armeb"
77
79
  return arch.linux_name
@@ -83,12 +85,21 @@ class IcicleEngine(ConcreteEngine):
83
85
  """
84
86
  return icicle_arch.startswith(("arm", "thumb"))
85
87
 
88
+ @staticmethod
89
+ def __is_cortex_m(angr_arch: Arch, icicle_arch: str) -> bool:
90
+ """
91
+ Check if the architecture is cortex-m based on the address.
92
+ """
93
+ return isinstance(angr_arch, ArchARMCortexM) or icicle_arch == "armv7m"
94
+
86
95
  @staticmethod
87
96
  def __is_thumb(angr_arch: Arch, icicle_arch: str, addr: int) -> bool:
88
97
  """
89
98
  Check if the architecture is thumb based on the address.
90
99
  """
91
- return isinstance(angr_arch, ArchARMCortexM) or (IcicleEngine.__is_arm(icicle_arch) and addr & 1 == 1)
100
+ return IcicleEngine.__is_cortex_m(angr_arch, icicle_arch) or (
101
+ IcicleEngine.__is_arm(icicle_arch) and addr & 1 == 1
102
+ )
92
103
 
93
104
  @staticmethod
94
105
  def __get_pages(state: HeavyConcreteState) -> set[int]:
@@ -132,7 +143,10 @@ class IcicleEngine(ConcreteEngine):
132
143
  for register in state.arch.register_list:
133
144
  register = register.vex_name.lower() if register.vex_name is not None else register.name
134
145
  try:
135
- emu.reg_write(register, state.solver.eval(state.registers.load(register), cast_to=int))
146
+ emu.reg_write(
147
+ register,
148
+ state.solver.eval(state.registers.load(register), cast_to=int),
149
+ )
136
150
  copied_registers.add(register)
137
151
  except KeyError:
138
152
  log.debug("Register %s not found in icicle", register)
@@ -242,11 +256,13 @@ class IcicleEngine(ConcreteEngine):
242
256
  @override
243
257
  def add_breakpoint(self, addr: int) -> None:
244
258
  """Add a breakpoint at the given address."""
259
+ addr = addr & ~1 # Clear thumb bit if set
245
260
  self.breakpoints.add(addr)
246
261
 
247
262
  @override
248
263
  def remove_breakpoint(self, addr: int) -> None:
249
264
  """Remove a breakpoint at the given address, if present."""
265
+ addr = addr & ~1 # Clear thumb bit if set
250
266
  self.breakpoints.discard(addr)
251
267
 
252
268
  @override
@@ -759,8 +759,7 @@ class Function(Serializable):
759
759
  if hooker:
760
760
  if hasattr(hooker, "DYNAMIC_RET") and hooker.DYNAMIC_RET:
761
761
  return True
762
- if hasattr(hooker, "NO_RET"):
763
- return not hooker.NO_RET
762
+ return hooker.returns
764
763
 
765
764
  # Cannot determine
766
765
  return None
@@ -1579,6 +1578,7 @@ class Function(Serializable):
1579
1578
  return False
1580
1579
  self.prototype = proto.with_arch(self.project.arch)
1581
1580
  self.prototype_libname = library.name
1581
+ self.returning = library.is_returning(name)
1582
1582
 
1583
1583
  # update self.calling_convention if necessary
1584
1584
  if self.calling_convention is None:
@@ -68,19 +68,19 @@ class Labels(KnowledgeBasePlugin):
68
68
  def items(self):
69
69
  return self._labels.items()
70
70
 
71
- def get(self, addr):
71
+ def get(self, addr, default=None):
72
72
  """
73
73
  Get a label as string for a given address
74
74
  Same as .labels[x]
75
75
  """
76
- return self[addr]
76
+ return self._labels.get(addr, default)
77
77
 
78
- def lookup(self, name):
78
+ def lookup(self, name, default=None):
79
79
  """
80
80
  Returns an address to a given label
81
81
  To show all available labels, iterate over .labels or list(b.kb.labels)
82
82
  """
83
- return self._reverse_labels[name]
83
+ return self._reverse_labels.get(name, default)
84
84
 
85
85
  def copy(self):
86
86
  o = Labels(self._kb)
@@ -427,6 +427,15 @@ class SimLibrary:
427
427
 
428
428
  return func_name in self.prototypes or func_name in self.prototypes_json
429
429
 
430
+ def is_returning(self, name: str) -> bool:
431
+ """
432
+ Check if a function is known to return.
433
+
434
+ :param name: The name of the function.
435
+ :return: A bool indicating if the function is known to return or not.
436
+ """
437
+ return name not in self.non_returning
438
+
430
439
 
431
440
  class SimCppLibrary(SimLibrary):
432
441
  """
@@ -2443,22 +2443,33 @@ def do_it(in_dir):
2443
2443
 
2444
2444
  parsed_cprotos[(prefix, lib, suffix)].append((func, proto, ""))
2445
2445
 
2446
+ non_returning_functions = {
2447
+ "KeBugCheck",
2448
+ "KeBugCheckEx",
2449
+ }
2450
+
2446
2451
  # dump to JSON files
2447
2452
  for (prefix, libname, suffix), parsed_cprotos_per_lib in parsed_cprotos.items():
2448
2453
  filename = libname.replace(".", "_") + ".json"
2449
2454
  os.makedirs(prefix, exist_ok=True)
2450
2455
  logging.debug("Writing to file %s...", filename)
2456
+ non_returning = []
2451
2457
  d = {
2452
2458
  "_t": "lib",
2453
2459
  "type_collection_names": ["win32"],
2454
2460
  "library_names": [libname if not suffix else f"{libname}.{suffix}"],
2455
2461
  "default_cc": {"X86": "SimCCStdcall", "AMD64": "SimCCMicrosoftAMD64"},
2462
+ "non_returning": non_returning,
2456
2463
  "functions": OrderedDict(),
2457
2464
  }
2458
2465
  for func, cproto, doc in sorted(parsed_cprotos_per_lib, key=lambda x: x[0]):
2459
2466
  d["functions"][func] = {"proto": json.dumps(cproto.to_json()).replace('"', "'")}
2460
2467
  if doc:
2461
2468
  d["functions"][func]["doc"] = doc
2469
+ if func in non_returning_functions:
2470
+ non_returning.append(func)
2471
+ if not non_returning:
2472
+ del d["non_returning"]
2462
2473
  with open(os.path.join(prefix, filename), "w") as f:
2463
2474
  f.write(json.dumps(d, indent="\t"))
2464
2475
 
@@ -10,6 +10,10 @@
10
10
  "X86": "SimCCStdcall",
11
11
  "AMD64": "SimCCMicrosoftAMD64"
12
12
  },
13
+ "non_returning": [
14
+ "KeBugCheck",
15
+ "KeBugCheckEx"
16
+ ],
13
17
  "functions": {
14
18
  "CcAsyncCopyRead": {
15
19
  "proto": "{'_t': 'func', 'args': [{'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'FILE_OBJECT', 'ot': '_ref'}}, {'_t': 'ptr', 'pts_to': {'_t': 'llong', 'label': 'Int64'}}, {'_t': 'int', 'signed': false, 'label': 'UInt32'}, {'_t': '_ref', 'name': 'BOOLEAN', 'ot': 'char'}, {'_t': 'ptr', 'pts_to': {'_t': 'bot', 'label': 'Void'}}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'IO_STATUS_BLOCK', 'ot': '_ref'}}, {'_t': '_ref', 'name': 'PETHREAD', 'ot': 'ptr'}, {'_t': 'ptr', 'pts_to': {'_t': '_ref', 'name': 'CC_ASYNC_READ_CONTEXT', 'ot': '_ref'}}], 'returnty': {'_t': '_ref', 'name': 'BOOLEAN', 'ot': 'char'}, 'arg_names': ['FileObject', 'FileOffset', 'Length', 'Wait', 'Buffer', 'IoStatus', 'IoIssuerThread', 'AsyncReadContext']}"
angr/rustylib.abi3.so CHANGED
Binary file
angr/unicornlib.dylib CHANGED
Binary file
angr/utils/funcid.py CHANGED
@@ -1,5 +1,6 @@
1
1
  # pylint:disable=too-many-boolean-expressions
2
2
  from __future__ import annotations
3
+ from typing import Any
3
4
 
4
5
  import capstone
5
6
 
@@ -47,6 +48,90 @@ def is_function_security_check_cookie(func, project, security_cookie_addr: int)
47
48
  return False
48
49
 
49
50
 
51
+ def is_function_security_check_cookie_strict(func: Function, project) -> tuple[bool, int | None]:
52
+ # security_cookie_addr is unavailable; we examine all bytes in this function
53
+ if func.is_plt or func.is_syscall or func.is_simprocedure:
54
+ return False, None
55
+ if len(func.block_addrs_set) not in {5, 6}:
56
+ return False, None
57
+ block_bytes: list[tuple[int, Any, bytes]] = [
58
+ (b.addr, b, b.bytes)
59
+ for b in sorted(func.blocks, key=lambda b: b.addr)
60
+ if isinstance(b.addr, int) and b.bytes is not None
61
+ ]
62
+ if block_bytes[0][0] != func.addr:
63
+ # the first block is probably the BugCheck function - skip it
64
+ block_bytes = block_bytes[1:]
65
+ elif len(block_bytes) == 6:
66
+ # skip the last block, which is probably the BugCheck function
67
+ block_bytes = block_bytes[:-1]
68
+ if len(block_bytes) != 5:
69
+ return False, None
70
+
71
+ # check the first block
72
+ # cmp rcx, [xxx]
73
+ # jnz xxx
74
+ first_block = block_bytes[0][1]
75
+ if len(first_block.capstone.insns) != 2:
76
+ return False, None
77
+ ins0 = first_block.capstone.insns[0]
78
+ security_cookie_addr = None
79
+ if (
80
+ project.arch.name == "AMD64"
81
+ and ins0.mnemonic == "cmp"
82
+ and len(ins0.operands) == 2
83
+ and ins0.operands[0].type == capstone.x86.X86_OP_REG
84
+ and ins0.operands[0].reg == capstone.x86.X86_REG_RCX
85
+ and ins0.operands[1].type == capstone.x86.X86_OP_MEM
86
+ and ins0.operands[1].mem.base == capstone.x86.X86_REG_RIP
87
+ and ins0.operands[1].mem.index == 0
88
+ ):
89
+ ins1 = first_block.capstone.insns[1]
90
+ if ins1.mnemonic == "jne":
91
+ security_cookie_addr = ins0.operands[1].mem.disp + ins0.address + ins0.size
92
+ if (
93
+ project.arch.name == "X86"
94
+ and ins0.mnemonic == "cmp"
95
+ and len(ins0.operands) == 2
96
+ and ins0.operands[0].type == capstone.x86.X86_OP_REG
97
+ and ins0.operands[0].reg == capstone.x86.X86_REG_ECX
98
+ and ins0.operands[1].type == capstone.x86.X86_OP_MEM
99
+ and ins0.operands[1].mem.base == 0
100
+ and ins0.operands[1].mem.index == 0
101
+ ):
102
+ ins1 = first_block.capstone.insns[1]
103
+ if ins1.mnemonic == "jne":
104
+ security_cookie_addr = ins0.operands[1].mem.disp
105
+
106
+ if security_cookie_addr is None:
107
+ return False, None
108
+
109
+ # the last block should be a jump
110
+ last_block = block_bytes[-1][1]
111
+ if len(last_block.capstone.insns) != 1:
112
+ return False, None
113
+ last_insn = last_block.capstone.insns[-1]
114
+ if last_insn.mnemonic != "jmp":
115
+ return False, None
116
+
117
+ # check the bytes of the remaining three blocks
118
+ if project.arch.name == "AMD64":
119
+ expected_bytes = [b"\x48\xc1\xc1\x10\x66\xf7\xc1\xff\xff\x75\x01", b"\xc3", b"\x48\xc1\xc9\x10"]
120
+ else:
121
+ # TODO: x86 bytes
122
+ expected_bytes = []
123
+
124
+ existing_bytes = []
125
+ for i, b in enumerate(block_bytes[1:-1]):
126
+ block = b[2]
127
+ max_block_size = block_bytes[1 + i + 1][0] - b[0]
128
+ existing_bytes.append(block[:max_block_size])
129
+ # normalize the block bytes if needed
130
+ if existing_bytes == expected_bytes:
131
+ return True, security_cookie_addr
132
+ return False, None
133
+
134
+
50
135
  def is_function_security_init_cookie(func: Function, project, security_cookie_addr: int | None) -> bool:
51
136
  if func.is_plt or func.is_syscall or func.is_simprocedure:
52
137
  return False
@@ -288,9 +288,7 @@ class AILReferenceFinder(AILBlockWalkerBase):
288
288
  self.vvar_id = vvar_id
289
289
  self.has_references_to_vvar = False
290
290
 
291
- def _handle_UnaryOp(
292
- self, expr_idx: int, expr: UnaryOp, stmt_idx: int, stmt: Statement | None, block: Block | None
293
- ) -> Any:
291
+ def _handle_UnaryOp(self, expr_idx: int, expr: UnaryOp, stmt_idx: int, stmt: Statement, block: Block | None) -> Any:
294
292
  if expr.op == "Reference" and isinstance(expr.operand, VirtualVariable) and expr.operand.varid == self.vvar_id:
295
293
  self.has_references_to_vvar = True
296
294
  return None
@@ -386,9 +384,7 @@ def has_load_expr_in_between_stmts(
386
384
  def is_vvar_propagatable(vvar: VirtualVariable, def_stmt: Statement | None) -> bool:
387
385
  if vvar.was_tmp or vvar.was_reg or vvar.was_parameter:
388
386
  return True
389
- if vvar.was_stack and isinstance(def_stmt, Assignment):
390
- if isinstance(def_stmt.src, Const):
391
- return True
387
+ if vvar.was_stack and isinstance(def_stmt, Assignment): # noqa:SIM102
392
388
  if (
393
389
  isinstance(def_stmt.src, VirtualVariable)
394
390
  and def_stmt.src.was_stack
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: angr
3
- Version: 9.2.176
3
+ Version: 9.2.178
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
  License: BSD-2-Clause
6
6
  Project-URL: Homepage, https://angr.io/
@@ -16,12 +16,12 @@ Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
17
  Requires-Dist: cxxheaderparser
18
18
  Requires-Dist: GitPython
19
- Requires-Dist: archinfo==9.2.176
19
+ Requires-Dist: archinfo==9.2.178
20
20
  Requires-Dist: cachetools
21
21
  Requires-Dist: capstone==5.0.3
22
22
  Requires-Dist: cffi>=1.14.0
23
- Requires-Dist: claripy==9.2.176
24
- Requires-Dist: cle==9.2.176
23
+ Requires-Dist: claripy==9.2.178
24
+ Requires-Dist: cle==9.2.178
25
25
  Requires-Dist: msgspec
26
26
  Requires-Dist: mulpyplexer
27
27
  Requires-Dist: networkx!=2.8.1,>=2.0
@@ -31,7 +31,7 @@ Requires-Dist: pycparser>=2.18
31
31
  Requires-Dist: pydemumble
32
32
  Requires-Dist: pyformlang
33
33
  Requires-Dist: pypcode<4.0,>=3.2.1
34
- Requires-Dist: pyvex==9.2.176
34
+ Requires-Dist: pyvex==9.2.178
35
35
  Requires-Dist: rich>=13.1.0
36
36
  Requires-Dist: sortedcontainers
37
37
  Requires-Dist: sympy
@@ -46,6 +46,7 @@ Provides-Extra: telemetry
46
46
  Requires-Dist: opentelemetry-api; extra == "telemetry"
47
47
  Provides-Extra: unicorn
48
48
  Requires-Dist: unicorn==2.0.1.post1; extra == "unicorn"
49
+ Requires-Dist: setuptools; extra == "unicorn"
49
50
  Dynamic: license-file
50
51
 
51
52
  # angr
@@ -1,23 +1,17 @@
1
- angr-9.2.176.dist-info/RECORD,,
2
- angr-9.2.176.dist-info/WHEEL,sha256=kFn0Fg1gyV9Pk02-Hr4CbqbhAvYPyosBpF5pwZB07jU,135
3
- angr-9.2.176.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
4
- angr-9.2.176.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
5
- angr-9.2.176.dist-info/METADATA,sha256=lrk4bMUevPqReFweFtx6o_EAXq9sgiK_Sryiv0K4Ozw,4366
6
- angr-9.2.176.dist-info/licenses/LICENSE,sha256=PmWf0IlSz6Jjp9n7nyyBQA79Q5C2ma68LRykY1V3GF0,1456
7
1
  angr/vaults.py,sha256=D_gkDegCyPlZMKGC5E8zINYAaZfSXNWbmhX0rXCYpvM,9718
8
- angr/unicornlib.dylib,sha256=EL2FkYaFfO-vrfDh8m-cCjD6XXwvowty0vdtO6OJZ_U,234064
2
+ angr/unicornlib.dylib,sha256=I63V6zKOQHoPRNohN06z4IyiigGt4OD1YMhFiTHW7w0,234064
9
3
  angr/state_hierarchy.py,sha256=qDQCUGXmQm3vOxE3CSoiqTH4OAFFOWZZt9BLhNpeOhA,8484
10
4
  angr/callable.py,sha256=j9Orwd4H4fPqOYylcEt5GuLGPV7ZOqyA_OYO2bp5PAA,6437
11
5
  angr/sim_type.py,sha256=8AJjzu_hp4GvgXogz8KnLiPXSnxBGUy-D3G8w4wEicQ,144714
12
6
  angr/knowledge_base.py,sha256=hRoSLuLaOXmddTSF9FN5TVs7liftpBGq_IICz5AaYBk,4533
13
- angr/emulator.py,sha256=572e9l-N4VUzUzLKylqpv3JmBvVC5VExi1tLy6MZSoU,4633
14
- angr/rustylib.abi3.so,sha256=A5DNNnSDHh6ooFdFp5aFd4FWN_ILkd0hW-AdFfs-kNU,4790512
7
+ angr/emulator.py,sha256=aZXi8-jQ_9uelN2zvlecR2ZYXPey4PHyju6yVJIWDAk,4708
8
+ angr/rustylib.abi3.so,sha256=LoK2BUZxT4aUd3fBgo884clsFeP-Rg9JWGJjdfMwrFE,4772320
15
9
  angr/codenode.py,sha256=hCrQRp4Ebb2X6JicNmY1PXo3_Pm8GDxVivVW0Pwe84k,3918
16
10
  angr/graph_utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
11
  angr/sim_manager.py,sha256=w7yTfWR-P9yoN5x85eeiNpj9dTrnjpJ3o5aoFpDAPnc,39396
18
12
  angr/serializable.py,sha256=l908phj_KcqopEEL_oCufbP_H6cm3Wc9v-5xdux1-6g,1533
19
13
  angr/code_location.py,sha256=kXNJDEMge9VRHadrK4E6HQ8wDdCaHSXNqyAZuHDEGuM,5397
20
- angr/__init__.py,sha256=4UvTdkXxjnXyp62HCIJ0DcE_mJsddEmoelS1AbMR5ZQ,9246
14
+ angr/__init__.py,sha256=vN_wwQPUaez8llCxHPyGbA0xDZPdNi9jbjCSU0hqngI,9246
21
15
  angr/blade.py,sha256=OGGW-oggqI9_LvgZhiQuh9Ktkvf3vhRBmH0XviNyZ6o,15801
22
16
  angr/factory.py,sha256=PPNWvTiWaIgzxzyoTr8ObSF-TXp1hCdbY2e-0xBePNc,17815
23
17
  angr/sim_state_options.py,sha256=dsMY3UefvL7yZKXloubMhzUET3N2Crw-Fpw2Vd1ouZQ,12468
@@ -310,8 +304,8 @@ angr/procedures/definitions/cgc.py,sha256=Jrb74dNzy05h_nmsC3GjN5Yr5_jWIjpZ24ZsVk
310
304
  angr/procedures/definitions/gnulib.py,sha256=GK4eVXFxwgwhJ9cr47PiTUS4fKYrqPfMtIvwM464Oyo,1107
311
305
  angr/procedures/definitions/linux_kernel.py,sha256=xPpfHkfaA_5jS6mPX1YDCPLHEAirAmeGW6mLDBKIlC8,239128
312
306
  angr/procedures/definitions/parse_glibc.py,sha256=-vmm4hKO2GnBVXmk6Nq4fxGHuLxesRbF52UIrPk4a6Q,2092
313
- angr/procedures/definitions/parse_win32json.py,sha256=z4Rjr3L9HTSWsKtKImUynpcvMUJCinG4fIii-o7dPXw,109101
314
- angr/procedures/definitions/__init__.py,sha256=_0icfYOL57Jz4yUNZ0hVemX-CaUfKe93f_rWG-_8oso,43342
307
+ angr/procedures/definitions/parse_win32json.py,sha256=LzvSZC5u6Jkbe-tx9L7swZmJ0DOm26BjTmJWZGiMhBw,109413
308
+ angr/procedures/definitions/__init__.py,sha256=wYoWkHRSh6wjWE-9wPgNJbTfyeHaqkN2zDWOtHJMdF8,43644
315
309
  angr/procedures/definitions/msvcr.py,sha256=CQgWXrKcEjx9xfPf2BZOOPaQJ5AUqwdNtN_5FdYtRzg,651
316
310
  angr/procedures/definitions/parse_syscalls_from_local_system.py,sha256=ssyMjeyuPVYHnbmArwDPO0XXMW1n5Odv__n17cdLVcY,1823
317
311
  angr/procedures/definitions/linux_loader.py,sha256=uEeMktLesh0NzHmRfgP76IuSzL4YMssR_SSjBRSqA9c,267
@@ -328,7 +322,7 @@ angr/procedures/definitions/wdk/hal.json,sha256=RxvRTa5sumqXXPJai2YrdssJD5fbWeTQ
328
322
  angr/procedures/definitions/wdk/api-ms-win-dx-d3dkmt-l1-1-6.json,sha256=W4md-By6xMbKPnSvDQG4Sqh5C6HSrl_61NHY9GWGbQM,460
329
323
  angr/procedures/definitions/wdk/gdi32.json,sha256=YByprF-byACUskCT17vLClW6P0b3BfA53HRgCYxPGTk,44925
330
324
  angr/procedures/definitions/wdk/fwpuclnt.json,sha256=EYx_oyvbqFnSvI6LeiPy1BbAEnc-WMyn_7aOr3qxP_M,69854
331
- angr/procedures/definitions/wdk/ntoskrnl.json,sha256=YpUmEfHaIMctYyqWoNauhnnnK-fe-NpA6Hb7FQLm3Ic,680493
325
+ angr/procedures/definitions/wdk/ntoskrnl.json,sha256=Y7NWnwB-Yg4_ecbz9yZwmwH2UofZcNB1D8T-3keJpEg,680550
332
326
  angr/procedures/definitions/wdk/fwpkclnt.json,sha256=W_0xXafBO0bheqpLGXOO0tVORvx2KXMwrhPaoBUJTko,1225
333
327
  angr/procedures/definitions/wdk/ksecdd.json,sha256=xYYdocSCK8LBeQYFlhZ7ZKiTK-ju26KDWRIQiw7rBKQ,13262
334
328
  angr/procedures/definitions/wdk/secur32.json,sha256=M9aMvWxz7zzLtZU4X7Ue5tNJOuNtHvHWHz81e7DvTNs,3432
@@ -771,7 +765,7 @@ angr/utils/timing.py,sha256=n-YZ86g0ZWmLhsoNvcimRpKzewR5hmquLZe6fagxlBw,2224
771
765
  angr/utils/mp.py,sha256=y6Q0nDOykRZvcQ805DZpcJHQTGN-gqFi0eERGNhb3C0,1903
772
766
  angr/utils/loader.py,sha256=5PtUlonkbqENNg3AMJ4YI3-g5dyyXJ0GP83SwO2dECY,1951
773
767
  angr/utils/tagged_interval_map.py,sha256=rXKBuT14N23AAntpOKhZhmA-qqymnsvjpheFXoTRVRA,4417
774
- angr/utils/funcid.py,sha256=Rd4r8juv2IpeMtCpPp4wxJoEZTnZZ1NsxdT42tvrKVA,6353
768
+ angr/utils/funcid.py,sha256=PA115tjmdUpfrGQvva4Ad3Q5SoToRiGjJzNRhX2Ca6Y,9567
775
769
  angr/utils/algo.py,sha256=4TaEFE4tU-59KyRVFASqXeoiwH01ZMj5fZd_JVcpdOY,1038
776
770
  angr/utils/enums_conv.py,sha256=fA6qeoRZ6Cj6gCIS_PZbP4PX7E8IybnYQ90OZGnBVrc,2746
777
771
  angr/utils/endness.py,sha256=PDpDNbiIbaSx1DGH1z16nU2B5GMrTqONGivGeVNiGyU,506
@@ -779,7 +773,7 @@ angr/utils/strings.py,sha256=iv3Mg_KCyyPx9dkIw-O0ZidWyGl8mqPDkyNJwZYQr_U,688
779
773
  angr/utils/vex.py,sha256=epcrCexi_NjKnPGM2gfpiRsUea_Scd-71UMuF32ZAQo,306
780
774
  angr/utils/ssa/tmp_uses_collector.py,sha256=digAUQpYoFR1VYfwoXlF3T1pYdDi6Pdq_ck54SjMabQ,813
781
775
  angr/utils/ssa/vvar_uses_collector.py,sha256=HewqUQluNE9EsaiLeFo7LaBvws_DDBDYNt9RBExy464,1367
782
- angr/utils/ssa/__init__.py,sha256=xbuVllFoPane9lHACdRQP5OO99Mca-4sqpFrtoAvnxo,17464
776
+ angr/utils/ssa/__init__.py,sha256=rKlgdaTSouwofsLNMa8MKfWb_tqntfp_B5nm-FOeh2Y,17390
783
777
  angr/exploration_techniques/spiller.py,sha256=B5qy8B3l_0JSo8YDH9cJUX97anf9YdDeJMVAsN1xZi8,9415
784
778
  angr/exploration_techniques/memory_watcher.py,sha256=9grrkwq4ha5u8gtJIqTFhVG9Yur18r7Tec7bv_HpNlw,1312
785
779
  angr/exploration_techniques/lengthlimiter.py,sha256=To8SlXhtdDVSqAlCSIvhvqyY8BUs37ZU7ABymhJDz14,590
@@ -870,7 +864,7 @@ angr/storage/memory_mixins/paged_memory/pages/multi_values.py,sha256=aeKBWosclmN
870
864
  angr/storage/memory_mixins/paged_memory/pages/list_page.py,sha256=dAZIA0Z7tM5ZDQPtmkQ7OsUHq6bTqWPl_NcIj0RO7X0,14421
871
865
  angr/storage/memory_mixins/paged_memory/pages/base.py,sha256=NiIZdOH1nrkP1AO6QKd1x-Ax_l1vRkDmFgR4mHpIH0c,1421
872
866
  angr/knowledge_plugins/custom_strings.py,sha256=5qYAvmcm9BkTA247hZngDaHHrO9iIipYKJgGH9vxLLA,1037
873
- angr/knowledge_plugins/labels.py,sha256=Q7BTpBWRfJl3vxtd0vci91EA3KXiIwLNPyO5UQh6QEA,3156
867
+ angr/knowledge_plugins/labels.py,sha256=HvDQjL3jayVmKNdOHTteNSIgd4aOrAp1qGaBIDqzdPQ,3218
874
868
  angr/knowledge_plugins/structured_code.py,sha256=9IKRF1Pb7E0eBz0uMK36Pk8HL0fmI7JqVaeihu7uiRQ,2167
875
869
  angr/knowledge_plugins/debug_variables.py,sha256=pxiY6l0OPX3y2ZEcCGu-vJCGfw60tiPvkjdDFE9Z4uM,8075
876
870
  angr/knowledge_plugins/__init__.py,sha256=T8ovRNYYhqk_QkKN2OU5JXzeYZob8iq3v0ZlnX8_Hho,1160
@@ -914,15 +908,15 @@ angr/knowledge_plugins/functions/soot_function.py,sha256=OzCvQPWxnjbwPWTW0JXrQey
914
908
  angr/knowledge_plugins/functions/function_parser.py,sha256=DTdVwYt6nXLMc0EOh-V_GhvZYQ947UNBaA77qn7Y6Vo,12379
915
909
  angr/knowledge_plugins/functions/function_manager.py,sha256=StsK3biTFRRA2ugrmeQLuHiN894p789Tlw1CIKlE0PY,23462
916
910
  angr/knowledge_plugins/functions/__init__.py,sha256=asiLNiT6sHbjP6eU-kDpawIoVxv4J35cwz5yQHtQ2E0,167
917
- angr/knowledge_plugins/functions/function.py,sha256=wyOVBKNGbiiBcWLuzgYMwgcJIG9tFkThCNMEJX1O2EE,72292
911
+ angr/knowledge_plugins/functions/function.py,sha256=orSBM5R073Tf-PDWw8NcvKl_iUgCnnk1SyFFMPZP6VE,72303
918
912
  angr/knowledge_plugins/xrefs/xref.py,sha256=U2H1rfffp5EXoh0awlGxMBxA4K5MIwl3CXjV3Uih3tA,4856
919
913
  angr/knowledge_plugins/xrefs/xref_manager.py,sha256=1n373rtV91xicAfSUresRigsZ6qCBhPOaJKrN_SW3QY,4157
920
914
  angr/knowledge_plugins/xrefs/__init__.py,sha256=5PhqVOtTZ27lCjJ9wp7akUeJydqILbyCBZK0gP7BGQs,193
921
915
  angr/knowledge_plugins/xrefs/xref_types.py,sha256=LcQ9pD4E4XlC51Us49xiqAoGAFGpnCrpYO4mOzILiKI,308
922
916
  angr/engines/unicorn.py,sha256=fq2akQ4dVFAWqek0Yr4JTaTJWwp5vICiSQ7Sg4wuDJE,24533
923
917
  angr/engines/concrete.py,sha256=kEt6Dyp8QAIaOP3oW5lRcDs_2UMP2vbiNzylGiqvf7g,2143
924
- angr/engines/icicle.py,sha256=V08Rco5MBtNvXyVvUUt9ZdWOw16d6pgWEwEr4yC444Q,10421
925
- angr/engines/hook.py,sha256=lAEYYAXQY_GDOpsz3JZ7IswxrBccZnZ6EaQwyNBb4W8,2590
918
+ angr/engines/icicle.py,sha256=JSbHnTJePV1l6dmF5WPhlzYjm6ZApQfjCUrgJ4jewOg,11033
919
+ angr/engines/hook.py,sha256=YMCUWs-cC3fQCN9xlYAy7vaMPKWDNJkl9KtCMYUyMP0,2569
926
920
  angr/engines/__init__.py,sha256=_3oRkiTrPO7QPiCg3qXymt4o9ZAOrAHt5pdfjkp3W9k,1661
927
921
  angr/engines/procedure.py,sha256=8kgFH56nkqSWm0p1apuGBaFngl-4BnAzE0bXhq9mc6Y,2561
928
922
  angr/engines/engine.py,sha256=2kwOT-sbxKXAVX2PmsPTr8Ax36Vxq6hkRdDKaITBQNc,657
@@ -1060,13 +1054,13 @@ angr/analyses/soot_class_hierarchy.py,sha256=R4xeacn-a_Q7PxSyj_stu5mnglZkPB5US5s
1060
1054
  angr/analyses/__init__.py,sha256=KFu0Otm7bqAcjX8dsnQzphJmkUVxMLssjFIJJOci32U,3479
1061
1055
  angr/analyses/ddg.py,sha256=AWPPsL2bfTAua5meuQfPFL6b29PLpCLZzw-LGCv5iVo,63214
1062
1056
  angr/analyses/dominance_frontier.py,sha256=kRoOCr3EaIUW1YnvtjmKFJW65zYsJHNe-HtVx2LR15s,2002
1063
- angr/analyses/smc.py,sha256=DC4l7fTmoOybD_lSQaLjcUdeLUifQhhsSu1nx8Ax6pM,5176
1057
+ angr/analyses/smc.py,sha256=0jU8fJL3i96ouFcwwOb2DR0l2Xxy1eWiY6ThWyUiRdM,5155
1064
1058
  angr/analyses/complete_calling_conventions.py,sha256=a-hJQ6yRusDhRADGcLxjY6ETlD1vN_QsHd2c0VZlo7I,21079
1065
1059
  angr/analyses/callee_cleanup_finder.py,sha256=lQRn5rHS6mGNOqDh-UsxX-gs4cDpwQ6KNjvzQFVCdio,2800
1066
1060
  angr/analyses/static_hooker.py,sha256=AYJXoHtdq2m-MgpJbx4eur7wy7llrKXvsVM5NdPcKHU,1852
1067
1061
  angr/analyses/code_tagging.py,sha256=Gj7Ms24RnmhC9OD57gw7R6_c-pLfqSug-LVUMw_JmXE,3510
1068
1062
  angr/analyses/disassembly.py,sha256=YgU--tr1mZtlNhXTTWLBD4s-4g8vUs-01Vk6A04f5ng,46192
1069
- angr/analyses/s_propagator.py,sha256=pEq11sNPZoR0PrWLdIIjE0s5IEmOpCpNxYYnf2qMURY,24872
1063
+ angr/analyses/s_propagator.py,sha256=-pqaSlP6TmonDylPbQeHz1DirlpDBq0cMn29LuEzsU8,25157
1070
1064
  angr/analyses/s_liveness.py,sha256=mSWwwAPpXl-dIZNx5pAHA5vWXqCO_OivOXWoiaI7tss,7984
1071
1065
  angr/analyses/patchfinder.py,sha256=yf8FwkWPVOrvMRA90dKZizVz4s4QE-upq6B0Xxn8wj8,5063
1072
1066
  angr/analyses/xrefs.py,sha256=vs6cpVmwXHOmxrI9lJUwCRMYbPSqvIQXS5_fINMaOGI,10290
@@ -1101,7 +1095,7 @@ angr/analyses/cfg_slice_to_sink/transitions.py,sha256=9Y1qG789dsAcv73FwgYtppUzPW
1101
1095
  angr/analyses/variable_recovery/irsb_scanner.py,sha256=1dL2IC7fZGuRrhmcpa2Q-G666aMPmbM8zSzmIRpLNSY,5141
1102
1096
  angr/analyses/variable_recovery/variable_recovery_fast.py,sha256=OeSnBVpcNlZU-miBlIrbyaPt2IHtExtnpBoACnWNs_Q,27996
1103
1097
  angr/analyses/variable_recovery/__init__.py,sha256=eA1SHzfSx8aPufUdkvgMmBnbI6VDYKKMJklcOoCO7Ao,208
1104
- angr/analyses/variable_recovery/engine_ail.py,sha256=UWM9TmiGfhA8VrjNRV3jLZbT47yYmlKDnGVkzR1YnjM,33761
1098
+ angr/analyses/variable_recovery/engine_ail.py,sha256=N9sEHMUT9qVMJCm1h4da3vLnSLPDp3oY9fE3WN60ioc,35652
1105
1099
  angr/analyses/variable_recovery/variable_recovery.py,sha256=I45eVUpOOcSobA_QyXl3aRNa0kppJH_7YOj95fPPTdE,22272
1106
1100
  angr/analyses/variable_recovery/engine_vex.py,sha256=Sjh3bZZfnEaich7PLTitaZITSMW7agqgyxck4gWKDbQ,21465
1107
1101
  angr/analyses/variable_recovery/variable_recovery_base.py,sha256=Ewd0TzNdZ_gRYXtXjVrJfODNABMMPjnuvMy9-Nnyui0,16813
@@ -1146,7 +1140,7 @@ angr/analyses/reaching_definitions/function_handler_library/stdlib.py,sha256=YRN
1146
1140
  angr/analyses/cfg/cfg.py,sha256=dc9M91CaLeEKduYfMwpsT_01x6XyYuoNvgvcDKtbN-I,3177
1147
1141
  angr/analyses/cfg/cfb.py,sha256=HI25OJKs2OUlWkOSG4kLsZQFnBJcfDwSQKp6_ZRsoQY,15353
1148
1142
  angr/analyses/cfg/cfg_job_base.py,sha256=Zshze972MakTsd-licQz77lac17igQaaTsAteHeHhYQ,5974
1149
- angr/analyses/cfg/cfg_fast.py,sha256=sW6mvJr6dXp2mWte1otf2QZLuXmKV7vYRq95bLRi6L4,235307
1143
+ angr/analyses/cfg/cfg_fast.py,sha256=uTW7bOn8WR9aP0RZiZQFgEuHunrrHp4FhgU8wX_cpwo,236180
1150
1144
  angr/analyses/cfg/__init__.py,sha256=-w8Vd6FD6rtjlQaQ7MxwmliFgS2zt-kZepAY4gHas04,446
1151
1145
  angr/analyses/cfg/cfg_fast_soot.py,sha256=8YgMtY_8w4nAMcHR6n-q_eFvKwsvNz0anUH7EzIL1B4,25924
1152
1146
  angr/analyses/cfg/cfg_arch_options.py,sha256=_XRewFZ51SeNaxChadb6_ER7-8LW8KXeTIpoP8_iRj0,3506
@@ -1215,18 +1209,18 @@ angr/analyses/decompiler/region_identifier.py,sha256=kQJ_KCd3Qx9LWStTM_iUNBG10bD
1215
1209
  angr/analyses/decompiler/empty_node_remover.py,sha256=4CdxTM1AVmRoEdRIwJg1YEy10AgkEoRmJ8SU7xGbKnM,7424
1216
1210
  angr/analyses/decompiler/seq_to_blocks.py,sha256=4-tqstendHHO2J0WD3JHQkm8c4c2KG3AO3mYWrn4xvg,569
1217
1211
  angr/analyses/decompiler/__init__.py,sha256=eyxt2UKvPkbuS_l_1GPb0CJ6hrj2wTavh-mVf23wwiQ,1162
1218
- angr/analyses/decompiler/clinic.py,sha256=LIsOw2U3P72AQ0GMK5DSn8JyQ7uY-cLcJPNpTcCERNo,151635
1212
+ angr/analyses/decompiler/clinic.py,sha256=src88SCieo4EXC-n9_vRPzMFsKMnBvxN4y--AXl4v7U,151838
1219
1213
  angr/analyses/decompiler/decompilation_cache.py,sha256=06oiG299mVpGOTL54Xy1CUxz5s8QLgYJn5XIvKFLYkU,1566
1220
1214
  angr/analyses/decompiler/block_simplifier.py,sha256=vjlugXCB3xFYBDBn3LPxOtU1dDc76PpYtVEoju3i9-4,15513
1221
1215
  angr/analyses/decompiler/node_replacer.py,sha256=jJd3XkIwFE07bIbLriJ6_mQEvfhm90C8lqlrL5Mz1Xg,1450
1222
1216
  angr/analyses/decompiler/decompilation_options.py,sha256=bs6CNpU3UxepgBB_9eUH4jriNpGoryyPP0sR1hDWpTk,8477
1223
1217
  angr/analyses/decompiler/region_walker.py,sha256=u0hR0bEX1hSwkv-vejIM1gS-hcX2F2DLsDqpKhQ5_pQ,752
1224
1218
  angr/analyses/decompiler/graph_region.py,sha256=uSDdCLXfLZJVcb0wMdgBh-KtBJUUhLGHQ-Ap4dNs8wo,18186
1225
- angr/analyses/decompiler/utils.py,sha256=slKEGEpWBN7X1ACbMDbd3e4Zs9txgDYeGBFqnFGCpD4,42705
1219
+ angr/analyses/decompiler/utils.py,sha256=B7YwnEBF6AZ5DG3E7zHK0TF7zOLeiMWEcc18YL_eUyA,43074
1226
1220
  angr/analyses/decompiler/decompiler.py,sha256=adX2UJv6s4JAF7Qf6HTgwPo28QQ6yCzrrQrtlqDZyfE,31864
1227
1221
  angr/analyses/decompiler/goto_manager.py,sha256=wVoeXJcadIda84LloGgqW-rL0QHLv3fx4vZHLhmz-_o,4027
1228
1222
  angr/analyses/decompiler/block_similarity.py,sha256=S1lTlXFyOmJlQa7I3y7xgLsENLS4XGET7tdD55k_6Vg,6859
1229
- angr/analyses/decompiler/ail_simplifier.py,sha256=c6xgZIZkvToFpcnOxWx6h0t39hdQ_EkFUafQkJ8Rhq4,93281
1223
+ angr/analyses/decompiler/ail_simplifier.py,sha256=1qzHYpc5zS9Ei0wstbNUgbV7wkb0z0-6dPJEvK_Vh1g,95948
1230
1224
  angr/analyses/decompiler/jump_target_collector.py,sha256=CucT99luxIVrioM-keMMjyNKWE5QaXEFQOFphtyU8b4,1189
1231
1225
  angr/analyses/decompiler/label_collector.py,sha256=fsCkldy8ZKH4FjkREByg-NDmfCd7Pmuz2K1Dks9oVjM,814
1232
1226
  angr/analyses/decompiler/jumptable_entry_condition_rewriter.py,sha256=f_JyNiSZfoudElfl2kIzONoYCiosR4xYFOe8Q5SkvLg,2176
@@ -1246,7 +1240,7 @@ angr/analyses/decompiler/ssailification/rewriting_engine.py,sha256=wGUdybrGWTlE7
1246
1240
  angr/analyses/decompiler/ccall_rewriters/x86_ccalls.py,sha256=dvdiAXWGte_4xcDZnP7h980DVZqpxMgQt-fTC1nxChQ,13437
1247
1241
  angr/analyses/decompiler/ccall_rewriters/__init__.py,sha256=TrnykR5cGCXy85f8OApJBjWSQ8WQSzjrnpND2fODWG8,207
1248
1242
  angr/analyses/decompiler/ccall_rewriters/rewriter_base.py,sha256=c7-GxWZbFfJvmg4DPdjYgLXyiasmfgmiQ6IY4fjOVWs,727
1249
- angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py,sha256=8LA05CKwFzoNAloOJ3KF4AkFM3bDTQdstr1_46WauxM,24958
1243
+ angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py,sha256=pANATa8vdZ9zeVau_VHatCY3ZeSmMszjDpfNI0r3C-4,26634
1250
1244
  angr/analyses/decompiler/dephication/seqnode_dephication.py,sha256=kigkzU78eNe-zD16hUI2YMNt_jHvixpohHpnLhAHMlw,5437
1251
1245
  angr/analyses/decompiler/dephication/graph_rewriting.py,sha256=cRMrYJgGV57H5TzWY70S8tl3D9GVkrzOetkxCUevyW4,3502
1252
1246
  angr/analyses/decompiler/dephication/__init__.py,sha256=xd6YSsoXLKVB2g52l-TZGsDwN5Vm3p4b35lqAYcrlhU,280
@@ -1271,7 +1265,7 @@ angr/analyses/decompiler/region_simplifiers/cascading_ifs.py,sha256=kPWajH8__ap-
1271
1265
  angr/analyses/decompiler/region_simplifiers/expr_folding.py,sha256=naCgnDUjdiDsh6dvoNO-VARfbTfaEYpu3EX9HkJ1cqE,31790
1272
1266
  angr/analyses/decompiler/peephole_optimizations/basepointeroffset_and_mask.py,sha256=2Tb4zGnFA5hZH8oI6t1hoRstGDmOBsOoQxf6fU5Ct7A,1105
1273
1267
  angr/analyses/decompiler/peephole_optimizations/tidy_stack_addr.py,sha256=8gPWhFTcezgO7pZ_v0pxR7pweds4_GrrY82ur6Nrlf8,4796
1274
- angr/analyses/decompiler/peephole_optimizations/cas_intrinsics.py,sha256=2A7NZIzZpDCq3i8e72l7c7KHfEwfJvzi5NffoXU_NNE,4559
1268
+ angr/analyses/decompiler/peephole_optimizations/cas_intrinsics.py,sha256=lzlyhe1RP020ezYN77QRFu5p7zNaH4XSMkpBhxRP7ms,7959
1275
1269
  angr/analyses/decompiler/peephole_optimizations/remove_redundant_nots.py,sha256=V5Vm1zUGjsauyOYXbUgDfZEgmChLbY8wnvmcRbfdMk0,1278
1276
1270
  angr/analyses/decompiler/peephole_optimizations/bool_expr_xor_1.py,sha256=vLXt0ekjRep4SgaNq1wyxVkBTzOMTa03d3rgkjUOcUg,995
1277
1271
  angr/analyses/decompiler/peephole_optimizations/bswap.py,sha256=fXV_a58W2X30KCanYeSHdZ2yPcfDlyZq_OkYNMkglrg,6420
@@ -1317,9 +1311,9 @@ angr/analyses/decompiler/peephole_optimizations/conv_a_sub0_shr_and.py,sha256=4f
1317
1311
  angr/analyses/decompiler/peephole_optimizations/coalesce_same_cascading_ifs.py,sha256=--C1JQluHt8ltdfUPBHvRD3SjW_ZcBU3oWdFwpCtpuw,1072
1318
1312
  angr/analyses/decompiler/peephole_optimizations/coalesce_adjacent_shrs.py,sha256=fXq-qFe7JUdD5LdtUhoA9AF3LnY-3Jrmo4t3ZRJIIiQ,1414
1319
1313
  angr/analyses/decompiler/peephole_optimizations/remove_redundant_bitmasks.py,sha256=FUf1bg9nADlwT1upwTKcVhhPcvZ98C-8PlmkWoHqwZ4,4787
1320
- angr/analyses/decompiler/peephole_optimizations/remove_redundant_shifts_around_comparators.py,sha256=pMdKsNJtAIPqyWsR8cUEyujdF7e7kbqqvVgelVmKtqY,1610
1314
+ angr/analyses/decompiler/peephole_optimizations/remove_redundant_shifts_around_comparators.py,sha256=N0TGL6V9AzhXGbt1SS6UCW3Ney_SgOf_YgV2UTLvLvs,4512
1321
1315
  angr/analyses/decompiler/peephole_optimizations/optimized_div_simplifier.py,sha256=M4GxEWKs6V9aEYejGluZ8w8QpvPKpaESeFFzid88HjE,14208
1322
- angr/analyses/decompiler/peephole_optimizations/inlined_wcscpy_consolidation.py,sha256=R1k3ByTY2tL72O9VLjVkXqIY-1dnTbvstma1pguZxLw,5393
1316
+ angr/analyses/decompiler/peephole_optimizations/inlined_wcscpy_consolidation.py,sha256=TfimMI0FwpRBrWVQZy4m9XAf_BBPInu0zfywQ9CoGgs,12712
1323
1317
  angr/analyses/decompiler/peephole_optimizations/a_div_const_add_a_mul_n_div_const.py,sha256=HY6EQkThiyMaahz3bodJUqLBKWY2n4aKGbKyspMXN50,1641
1324
1318
  angr/analyses/decompiler/peephole_optimizations/rewrite_bit_extractions.py,sha256=tezg1gsxxH-iMmo_346NYO0YHwJz_Gpb8Ztm526o0G4,3300
1325
1319
  angr/analyses/decompiler/peephole_optimizations/single_bit_cond_to_boolexpr.py,sha256=3eQSTFUNRDWz0No90GzxM_TaIYa7-xouf8afytds5Dk,2967
@@ -1333,8 +1327,9 @@ angr/analyses/decompiler/structuring/dream.py,sha256=QNZ8dKk79Uq0urUEpwmBgX2Ak3Z
1333
1327
  angr/analyses/decompiler/structuring/structurer_nodes.py,sha256=3T6QPeD1KlLkcjMDBblQCb1Cf50VF36C-hlFhiKi9nc,12823
1334
1328
  angr/analyses/decompiler/structuring/phoenix.py,sha256=-yGUKZt37N0tbqTJoRI4Pk_ohZhYaxT22wWEWsblzZ4,164692
1335
1329
  angr/analyses/decompiler/structuring/structurer_base.py,sha256=xzQMYBInNyeRYibbiuk6EYbvPO235El3guT1yh1qAxw,50690
1336
- angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=FBz1UGl5rj13GYSF2tYWaQR135q4VQUxCBPW6SgdQ2w,19485
1337
- angr/analyses/decompiler/optimization_passes/optimization_pass.py,sha256=VGpCQmx8H2w3HoVFGdqwYYZ0z_IdHrFjOhz37yvxxTQ,28169
1330
+ angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py,sha256=M9ywJ3WuQBurI5hZw9WqcwLCppW9iHGvK9HkqSXUIbY,22115
1331
+ angr/analyses/decompiler/optimization_passes/optimization_pass.py,sha256=cr_9dkuQdvlhErrf221V2ugpNDj0ReAwO6FD3ksf9f8,28307
1332
+ angr/analyses/decompiler/optimization_passes/register_save_area_simplifier_adv.py,sha256=sYucCf43c7LYH8kfXylS2wa5GYWRK77MZVad_75m5XU,8670
1338
1333
  angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=RkZdMPJ_JKDkywVYp0MrCf6PK95GWT7Q0K7jsCVk_cE,42132
1339
1334
  angr/analyses/decompiler/optimization_passes/const_derefs.py,sha256=-vvd0QvLCmnRREmvN5LCLeKpUqisyPWj0yw1CHY8TwQ,10505
1340
1335
  angr/analyses/decompiler/optimization_passes/call_stmt_rewriter.py,sha256=INLmzfGDMsVzyQF2S6uwiQSoNcxM7DUBJrdWlL2gqlY,1325
@@ -1344,11 +1339,11 @@ angr/analyses/decompiler/optimization_passes/condition_constprop.py,sha256=8UBN1
1344
1339
  angr/analyses/decompiler/optimization_passes/ret_deduplicator.py,sha256=hqOBkbiyQwGDoPdkMLwJjJOI_90QQ2R6ESs2HQ4z0iw,8005
1345
1340
  angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py,sha256=A7azHMeTQDXPFj44lI-mK7wnbJZ6cdSL-lwwqxiBTk0,6420
1346
1341
  angr/analyses/decompiler/optimization_passes/switch_default_case_duplicator.py,sha256=154pzAHjRaDJA1bc69Z49qDBouToemUL0BoT2ybmjw8,6476
1347
- angr/analyses/decompiler/optimization_passes/__init__.py,sha256=v6LlcY49Z816sgba6FORCZUQ0XHtw58AztlZ9hsTtms,5354
1342
+ angr/analyses/decompiler/optimization_passes/__init__.py,sha256=np49PaxIYrNgFBSrQR3TJ_lOI2_EXsFPYEBX5GTVohQ,5518
1348
1343
  angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=DA2H1Uk8ZUTBcebQ3SFFl5n8pDSsZnQZC1Hnjv-A1a0,7835
1349
1344
  angr/analyses/decompiler/optimization_passes/switch_reused_entry_rewriter.py,sha256=6-b3u4zCwSQkMaYXDP4aTjTZdFTlIWlYfd8zC1vNuRM,4035
1350
1345
  angr/analyses/decompiler/optimization_passes/tag_slicer.py,sha256=VSlwk9ZdnFZnAAxL0gUAgqAtP6HEk4fqcYGWlD3ylGg,1181
1351
- angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py,sha256=-MoVamrPN9fMakQMZPwRYQ5rbeuQURXvyELuUhPVXKI,9088
1346
+ angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py,sha256=hKT0lUyKGPVLYuOG89nrvAW9KlYrBUh6v787V6wlFm0,11126
1352
1347
  angr/analyses/decompiler/optimization_passes/expr_op_swapper.py,sha256=GNrqp7-CakO6JmxXHoaDKqiNslRI0mSBoNmImU5rNh4,4730
1353
1348
  angr/analyses/decompiler/optimization_passes/determine_load_sizes.py,sha256=cyDEGP7be5FAHX32eTE6FD_RZHF6G3vRo5rCYrNCfJM,2246
1354
1349
  angr/analyses/decompiler/optimization_passes/return_duplicator_base.py,sha256=cU4p-QGklqgillWLdD-o1nBPAsrfZS66GfAhuhHSz1I,27395
@@ -1380,16 +1375,19 @@ angr/analyses/decompiler/counters/__init__.py,sha256=UT5K0cWgkVTAXZxy1qBBzrQip3Y
1380
1375
  angr/analyses/decompiler/counters/boolean_counter.py,sha256=FG3M8dMpbU_WAyr8PV2iEI43OLUxoZ6JQ1johkMtivw,893
1381
1376
  angr/analyses/decompiler/presets/__init__.py,sha256=NWARH5yOyBz4-5qKhzH56PNfPNRViNKMDeESlpplFxo,375
1382
1377
  angr/analyses/decompiler/presets/preset.py,sha256=LvX7ydyO0ZzQsC0M2fy1wXA_0ygSqeP9P52VJAK0Eeo,1264
1383
- angr/analyses/decompiler/presets/fast.py,sha256=0q9DEyWZOzt6MMJe2bb9LjlGrgv5NxgEjAb6Z1fah24,1636
1384
- angr/analyses/decompiler/presets/full.py,sha256=j6ccrb3I8RFnxAZXbkdnMwCmG6AwIddP0qGD-7LzXz8,1880
1385
- angr/analyses/decompiler/presets/basic.py,sha256=sHT2oalBmINVSZfpEbx4LmK0G1zqbZmLaVCAH-r-VDI,897
1378
+ angr/analyses/decompiler/presets/fast.py,sha256=pR1EDVih9we_Gwepoqi2DfPitC_9YCvnDVpXVlkivcU,1720
1379
+ angr/analyses/decompiler/presets/full.py,sha256=a2oBOQicpKfwLWLsYLdBfK5YGq1BFJyheHXkbADU0qk,1964
1380
+ angr/analyses/decompiler/presets/basic.py,sha256=lb4TyVOHL-NqHsGPDOvw5XeGOfuKyzlQAY8fUMrwMI4,981
1381
+ angr/analyses/decompiler/dirty_rewriters/__init__.py,sha256=Go9Znxszue8UZD8w7nHJXcU885ZvZ8fa6BAuOa3Qpms,136
1382
+ angr/analyses/decompiler/dirty_rewriters/rewriter_base.py,sha256=ghiYgB5O78ozGaCti7SqR_YlXQJrHtMEHnxQKe3Rw2I,817
1383
+ angr/analyses/decompiler/dirty_rewriters/amd64_dirty.py,sha256=QM0mUMKm5eyTybGL7yaXgGDuewHfmuctpZ4faxXczsg,2409
1386
1384
  angr/analyses/s_reaching_definitions/__init__.py,sha256=TyfVplxkJj8FAAAw9wegzJlcrbGwlFpIB23PdCcwrLA,254
1387
1385
  angr/analyses/s_reaching_definitions/s_reaching_definitions.py,sha256=gNdg8xpu5by_McWU8j0g0502yQsO2evkTlben9yimV0,7826
1388
1386
  angr/analyses/s_reaching_definitions/s_rda_model.py,sha256=FJSge_31FFzyzBJA1xm7dQz40TfuNna6v_RWAZMZvi0,5801
1389
1387
  angr/analyses/s_reaching_definitions/s_rda_view.py,sha256=7o-llkMUJP_ZhnQ4tkCDrzYok4cAOA7PLt2tX9DY8Mo,13929
1390
1388
  angr/analyses/fcp/__init__.py,sha256=E9dxFckDM9DijfU4RRg9SGL6xDKCz7yBBP-XSkS-S9U,115
1391
1389
  angr/analyses/fcp/fcp.py,sha256=djkJsvSja_De7ptNwllmTHjvVl62BFcH_haBhwhzFtw,16373
1392
- angr/analyses/flirt/flirt.py,sha256=UNXtUBs11WafKeMAW2BwqKJLFhOyObqmRhfCqYdsJpc,10762
1390
+ angr/analyses/flirt/flirt.py,sha256=fZ0BvmJnx6ve1j76lMvKFHM2y3g17wg00fU8hWvSl14,10829
1393
1391
  angr/analyses/flirt/flirt_sig.py,sha256=9cWSXqFBEIpui7pluMTaskfD0mVMomNt1mPXN6pIdjg,11574
1394
1392
  angr/analyses/flirt/__init__.py,sha256=1jKkwUDhwwnxG5BRcYtwogLHLBvtZApXgvcAcHrJrdw,1293
1395
1393
  angr/analyses/flirt/consts.py,sha256=9ldvicgtJZa8Hw8cWOKxGkCYtc09I2q5ZWxctXcg20w,4861
@@ -1400,3 +1398,9 @@ angr/analyses/flirt/flirt_node.py,sha256=ecfJq4Ymp38zzvoZPDfLcLSR045GNOM9je-F_NP
1400
1398
  angr/analyses/flirt/flirt_utils.py,sha256=ojZ_01s7O23vU7dN6xZL7Wyx5M3pgm43frxjbZzSmyU,819
1401
1399
  angr/flirt/__init__.py,sha256=uPA4ff2d8FQYfGzq2rgM5pJ9PAH82275On3EFKqXktE,3514
1402
1400
  angr/flirt/build_sig.py,sha256=AO48uuWi76eMiw4-RTJn58j6DDyziy7HCuWMNpApcOQ,10020
1401
+ angr-9.2.178.dist-info/RECORD,,
1402
+ angr-9.2.178.dist-info/WHEEL,sha256=kFn0Fg1gyV9Pk02-Hr4CbqbhAvYPyosBpF5pwZB07jU,135
1403
+ angr-9.2.178.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
1404
+ angr-9.2.178.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
1405
+ angr-9.2.178.dist-info/METADATA,sha256=eFS8mj0EGjYZtRGsL89HOjuId2Xhn5DVxTroY727LgA,4412
1406
+ angr-9.2.178.dist-info/licenses/LICENSE,sha256=PmWf0IlSz6Jjp9n7nyyBQA79Q5C2ma68LRykY1V3GF0,1456
File without changes