angr 9.2.97__py3-none-manylinux2014_x86_64.whl → 9.2.99__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.
- angr/__init__.py +1 -1
- angr/analyses/cfg/cfg_base.py +14 -1
- angr/analyses/cfg/cfg_fast.py +3 -3
- angr/analyses/cfg/indirect_jump_resolvers/propagator_utils.py +10 -6
- angr/analyses/decompiler/clinic.py +2 -40
- angr/analyses/decompiler/optimization_passes/__init__.py +2 -0
- angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +380 -0
- angr/analyses/decompiler/optimization_passes/ite_region_converter.py +10 -2
- angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py +4 -1
- angr/analyses/decompiler/peephole_optimizations/__init__.py +1 -0
- angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py +71 -3
- angr/analyses/decompiler/peephole_optimizations/inlined_wstrcpy.py +162 -0
- angr/analyses/decompiler/region_simplifiers/expr_folding.py +5 -3
- angr/analyses/decompiler/return_maker.py +71 -0
- angr/analyses/decompiler/structured_codegen/__init__.py +1 -1
- angr/analyses/decompiler/structured_codegen/c.py +72 -99
- angr/analyses/decompiler/utils.py +5 -1
- angr/analyses/propagator/engine_vex.py +15 -0
- angr/analyses/reaching_definitions/engine_vex.py +6 -0
- angr/analyses/variable_recovery/engine_vex.py +6 -0
- angr/analyses/variable_recovery/irsb_scanner.py +12 -0
- angr/engines/light/engine.py +126 -15
- angr/knowledge_plugins/functions/function.py +4 -0
- angr/storage/memory_mixins/paged_memory/pages/list_page.py +20 -5
- angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +2 -1
- angr/storage/memory_mixins/simple_interface_mixin.py +4 -0
- {angr-9.2.97.dist-info → angr-9.2.99.dist-info}/METADATA +6 -6
- {angr-9.2.97.dist-info → angr-9.2.99.dist-info}/RECORD +32 -29
- {angr-9.2.97.dist-info → angr-9.2.99.dist-info}/LICENSE +0 -0
- {angr-9.2.97.dist-info → angr-9.2.99.dist-info}/WHEEL +0 -0
- {angr-9.2.97.dist-info → angr-9.2.99.dist-info}/entry_points.txt +0 -0
- {angr-9.2.97.dist-info → angr-9.2.99.dist-info}/top_level.txt +0 -0
|
@@ -163,6 +163,9 @@ class SimEnginePropagatorVEX(
|
|
|
163
163
|
self.state.store_register(stmt.offset, size, data)
|
|
164
164
|
self.state.add_replacement(self._codeloc(block_only=False), VEXReg(stmt.offset, size), data)
|
|
165
165
|
|
|
166
|
+
def _handle_PutI(self, stmt):
|
|
167
|
+
self._expr(stmt.data)
|
|
168
|
+
|
|
166
169
|
def _store_data(self, addr, data, size, endness):
|
|
167
170
|
# pylint: disable=unused-argument,no-self-use
|
|
168
171
|
if isinstance(addr, claripy.ast.Base):
|
|
@@ -260,6 +263,9 @@ class SimEnginePropagatorVEX(
|
|
|
260
263
|
size = expr.result_size(self.tyenv) // self.arch.byte_width
|
|
261
264
|
return self.state.load_register(expr.offset, size)
|
|
262
265
|
|
|
266
|
+
def _handle_GetI(self, expr):
|
|
267
|
+
return self.state.top(expr.result_size(self.tyenv))
|
|
268
|
+
|
|
263
269
|
def _handle_Load(self, expr):
|
|
264
270
|
addr = self._expr(expr.addr)
|
|
265
271
|
if addr is None or type(addr) in (Top, Bottom):
|
|
@@ -278,6 +284,13 @@ class SimEnginePropagatorVEX(
|
|
|
278
284
|
# print(expr.op, r)
|
|
279
285
|
return r
|
|
280
286
|
|
|
287
|
+
def _handle_Triop(self, expr: pyvex.IRExpr.Triop):
|
|
288
|
+
if not self.state.do_binops:
|
|
289
|
+
return self.state.top(expr.result_size(self.tyenv))
|
|
290
|
+
|
|
291
|
+
r = super()._handle_Triop(expr)
|
|
292
|
+
return r
|
|
293
|
+
|
|
281
294
|
def _handle_Conversion(self, expr):
|
|
282
295
|
expr_ = self._expr(expr.args[0])
|
|
283
296
|
to_size = expr.result_size(self.tyenv)
|
|
@@ -311,3 +324,5 @@ class SimEnginePropagatorVEX(
|
|
|
311
324
|
self.state.block_initial_reg_values[self.block.addr, dst.concrete_value].append(v)
|
|
312
325
|
|
|
313
326
|
super()._handle_Exit(stmt)
|
|
327
|
+
|
|
328
|
+
_handle_CmpF = _handle_CmpEQ
|
|
@@ -176,6 +176,9 @@ class SimEngineRDVEX(
|
|
|
176
176
|
return
|
|
177
177
|
self.state.kill_and_add_definition(reg, data)
|
|
178
178
|
|
|
179
|
+
def _handle_PutI(self, stmt):
|
|
180
|
+
pass
|
|
181
|
+
|
|
179
182
|
# e.g. STle(t6) = t21, t6 and/or t21 might include multiple values
|
|
180
183
|
def _handle_Store(self, stmt):
|
|
181
184
|
addr = self._expr(stmt.addr)
|
|
@@ -404,6 +407,9 @@ class SimEngineRDVEX(
|
|
|
404
407
|
|
|
405
408
|
return values
|
|
406
409
|
|
|
410
|
+
def _handle_GetI(self, expr: pyvex.IRExpr.GetI) -> MultiValues:
|
|
411
|
+
return MultiValues(self.state.top(expr.result_size(self.tyenv)))
|
|
412
|
+
|
|
407
413
|
# e.g. t27 = LDle:I64(t9), t9 might include multiple values
|
|
408
414
|
# caution: Is also called from StoreG
|
|
409
415
|
def _handle_Load(self, expr) -> MultiValues:
|
|
@@ -61,6 +61,9 @@ class SimEngineVRVEX(
|
|
|
61
61
|
return
|
|
62
62
|
self._assign_to_register(offset, r, size)
|
|
63
63
|
|
|
64
|
+
def _handle_PutI(self, stmt):
|
|
65
|
+
pass
|
|
66
|
+
|
|
64
67
|
def _handle_Store(self, stmt):
|
|
65
68
|
addr_r = self._expr(stmt.addr)
|
|
66
69
|
size = stmt.data.result_size(self.tyenv) // 8
|
|
@@ -159,6 +162,9 @@ class SimEngineVRVEX(
|
|
|
159
162
|
create_variable=self.stmt_idx not in self.reg_read_stmts_to_ignore,
|
|
160
163
|
)
|
|
161
164
|
|
|
165
|
+
def _handle_GetI(self, expr: pyvex.IRExpr.GetI):
|
|
166
|
+
return RichR(self.state.top(expr.result_size(self.tyenv)))
|
|
167
|
+
|
|
162
168
|
def _handle_Load(self, expr: pyvex.IRExpr.Load) -> RichR:
|
|
163
169
|
addr = self._expr(expr.addr)
|
|
164
170
|
size = expr.result_size(self.tyenv) // 8
|
|
@@ -33,6 +33,12 @@ class VEXIRSBScanner(SimEngineLightVEXMixin):
|
|
|
33
33
|
self.reg_read_stmt_id: Dict[int, int] = {}
|
|
34
34
|
self.reg_read_stmts_to_ignore: Set[int] = set()
|
|
35
35
|
|
|
36
|
+
def _top(self, size: int):
|
|
37
|
+
return None
|
|
38
|
+
|
|
39
|
+
def _is_top(self, expr) -> bool:
|
|
40
|
+
return True
|
|
41
|
+
|
|
36
42
|
def _process_Stmt(self, whitelist=None):
|
|
37
43
|
self.tmps_with_64bit_regs = set()
|
|
38
44
|
self.tmps_assignment_stmtidx = {}
|
|
@@ -55,6 +61,9 @@ class VEXIRSBScanner(SimEngineLightVEXMixin):
|
|
|
55
61
|
self.reg_read_stmts_to_ignore.add(self.reg_read_stmt_id[old_reg_offset])
|
|
56
62
|
self.reg_with_reg_as_value[stmt.offset] = self.tmp_with_reg_as_value[stmt.data.tmp]
|
|
57
63
|
|
|
64
|
+
def _handle_PutI(self, stmt):
|
|
65
|
+
pass
|
|
66
|
+
|
|
58
67
|
def _handle_Load(self, expr):
|
|
59
68
|
pass
|
|
60
69
|
|
|
@@ -85,6 +94,9 @@ class VEXIRSBScanner(SimEngineLightVEXMixin):
|
|
|
85
94
|
if expr.offset in self.reg_with_reg_as_value:
|
|
86
95
|
del self.reg_with_reg_as_value[expr.offset]
|
|
87
96
|
|
|
97
|
+
def _handle_GetI(self, expr):
|
|
98
|
+
pass
|
|
99
|
+
|
|
88
100
|
def _handle_RdTmp(self, expr):
|
|
89
101
|
if expr.tmp in self.tmps_converted_to_32bit:
|
|
90
102
|
self.tmps_converted_to_32bit.remove(expr.tmp)
|
angr/engines/light/engine.py
CHANGED
|
@@ -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
|
-
|
|
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 = "
|
|
998
|
+
handler_name = f"_handle_{expr.op}"
|
|
942
999
|
try:
|
|
943
1000
|
handler = getattr(self, handler_name)
|
|
944
1001
|
except AttributeError:
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
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 = "
|
|
1013
|
+
handler_name = f"_handle_{expr.op}"
|
|
953
1014
|
try:
|
|
954
1015
|
handler = getattr(self, handler_name)
|
|
955
1016
|
except AttributeError:
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
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 = "
|
|
1028
|
+
handler_name = f"_handle_{expr.op}"
|
|
964
1029
|
try:
|
|
965
1030
|
handler = getattr(self, handler_name)
|
|
966
1031
|
except AttributeError:
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
197
|
-
min_size =
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
3
|
+
Version: 9.2.99
|
|
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.
|
|
21
|
-
Requires-Dist: archinfo ==9.2.
|
|
20
|
+
Requires-Dist: ailment ==9.2.99
|
|
21
|
+
Requires-Dist: archinfo ==9.2.99
|
|
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.
|
|
26
|
-
Requires-Dist: cle ==9.2.
|
|
25
|
+
Requires-Dist: claripy ==9.2.99
|
|
26
|
+
Requires-Dist: cle ==9.2.99
|
|
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.
|
|
36
|
+
Requires-Dist: pyvex ==9.2.99
|
|
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=
|
|
1
|
+
angr/__init__.py,sha256=A-YvzHK9UfVTA3SB2oL_4tIS5rdi3MZmTgwbR1xg2SA,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,9 +63,9 @@ 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=
|
|
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
|
-
angr/analyses/cfg/cfg_fast.py,sha256=
|
|
68
|
+
angr/analyses/cfg/cfg_fast.py,sha256=2qcNkWihXV7M-KrOQv-j7B3m5okEe_7nIzgmZe09GHE,218261
|
|
69
69
|
angr/analyses/cfg/cfg_fast_soot.py,sha256=eA_P-OY3gRRNj2BBgSPMsB_llGyFFCNW3VyGZ2uiMoM,26047
|
|
70
70
|
angr/analyses/cfg/cfg_job_base.py,sha256=3IQE_Iy17xtGfsIkrKc2ERIakAYiNdLtRb_jwOGQtHU,5989
|
|
71
71
|
angr/analyses/cfg/indirect_jump_resolvers/__init__.py,sha256=T2rCpXy_fIoW_kHwZAVZupoj2UljitHvpI2uWJZ8NwU,361
|
|
@@ -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
|
|
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
|
|
@@ -96,7 +96,7 @@ angr/analyses/decompiler/block_similarity.py,sha256=x7DTJw6QKrXaPmI0Oxhl2V6rMDhQ
|
|
|
96
96
|
angr/analyses/decompiler/block_simplifier.py,sha256=X5kO97A1bEwSUfbwgj1cSO56qkhwPQZnIFi1DKMZQoo,17199
|
|
97
97
|
angr/analyses/decompiler/call_counter.py,sha256=V3TIaSvLUy9vLEWErnvlCS--_ubGWQAeU0tqq6XYeOU,1205
|
|
98
98
|
angr/analyses/decompiler/callsite_maker.py,sha256=W389gPmq8ylVIr38Re5hEBhaLodipT6div4RlirdnEU,15083
|
|
99
|
-
angr/analyses/decompiler/clinic.py,sha256=
|
|
99
|
+
angr/analyses/decompiler/clinic.py,sha256=JCW5Trfyc8dmIKQyrTPuj3Jcwil1vaHEvtUDr2H9kdg,85821
|
|
100
100
|
angr/analyses/decompiler/condition_processor.py,sha256=2d6CLDcGa4WqRBVr5NTFZCtJXSuAGlrAM0fGlknE-x4,49596
|
|
101
101
|
angr/analyses/decompiler/decompilation_cache.py,sha256=xj5kzGV6OlTtXIIcvK0Z17TMunggn9ilgKD3wjDiTB0,1176
|
|
102
102
|
angr/analyses/decompiler/decompilation_options.py,sha256=vbuLF0Oze2ldFNpv2jWFnGG4sJPey527KAAbj9TRvAI,8240
|
|
@@ -111,13 +111,14 @@ angr/analyses/decompiler/jumptable_entry_condition_rewriter.py,sha256=dcgnXt3oKa
|
|
|
111
111
|
angr/analyses/decompiler/redundant_label_remover.py,sha256=kDGGFWWV61I5fbASiTQTHgDCFLIOkffUdDOsu5yg5ok,5385
|
|
112
112
|
angr/analyses/decompiler/region_identifier.py,sha256=KR4SifhPbPwjrJiW2xQ_64BSdAEUnUTWRUFgHeAMhGc,45489
|
|
113
113
|
angr/analyses/decompiler/region_walker.py,sha256=lTfweYbY4_a2f2yGztTKG6JtU1jXf-kaz-NHbX9nkXE,717
|
|
114
|
+
angr/analyses/decompiler/return_maker.py,sha256=BwxpTtJfVDksZ0Y986KRk9d3jKg98SGaiXXLILeL5Pw,2498
|
|
114
115
|
angr/analyses/decompiler/seq_to_blocks.py,sha256=2KINMEgaXMG3XIiFDMRkbn10dggy7a9AHgwV383huRM,529
|
|
115
116
|
angr/analyses/decompiler/sequence_walker.py,sha256=mw4RG-Act5_no_RyQcsxWZwva-n7FdH2a7w_uItGUpI,8428
|
|
116
|
-
angr/analyses/decompiler/utils.py,sha256=
|
|
117
|
+
angr/analyses/decompiler/utils.py,sha256=jHTMKKyk4GDkWhJGwmZTl_ZD6efJSr9vtG-cULyzKUc,28116
|
|
117
118
|
angr/analyses/decompiler/ccall_rewriters/__init__.py,sha256=wbWqZ8xG6ZvzEApkAwMsNQFC-iwF3swG1YJsaf1cIrQ,102
|
|
118
119
|
angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py,sha256=fSvoTtGeFtyvDp60BNNqPlBMxzBICkEAJi8wV29nwF8,21551
|
|
119
120
|
angr/analyses/decompiler/ccall_rewriters/rewriter_base.py,sha256=gWezEKB7A_YnlfUDs8V8D5syoYAyIXSIme1BKQRoouM,498
|
|
120
|
-
angr/analyses/decompiler/optimization_passes/__init__.py,sha256=
|
|
121
|
+
angr/analyses/decompiler/optimization_passes/__init__.py,sha256=xlLn9Mzcd9vmvV0exca84xejLlOqP1MKYv3WVsQxmX8,3954
|
|
121
122
|
angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=bjpEMW-Lqj5XW9NWUikGPcRn5scKNc8VvEjVMXxAuq8,5289
|
|
122
123
|
angr/analyses/decompiler/optimization_passes/code_motion.py,sha256=KEQPdpSfSYiIzHFYGkfj3W8ZupJbogQNhYnYKzo1xUA,15319
|
|
123
124
|
angr/analyses/decompiler/optimization_passes/const_derefs.py,sha256=FEoiprXxns-3S0nFaIWm2DBW_aDMq3GZ-VOG3CIqcMw,10593
|
|
@@ -126,8 +127,9 @@ angr/analyses/decompiler/optimization_passes/div_simplifier.py,sha256=J7LRc3-DKf
|
|
|
126
127
|
angr/analyses/decompiler/optimization_passes/engine_base.py,sha256=7nnNZkVMqvikHCy9X11M8KLWbL8lF0DoLYPemETWP4c,10388
|
|
127
128
|
angr/analyses/decompiler/optimization_passes/expr_op_swapper.py,sha256=vlPhWDyvuEmbGcd1ka8rS68F72Ty6Hw3J00KM3tWCus,4701
|
|
128
129
|
angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py,sha256=GuDDqmZXUo_a9Af30n9tcihNQcATDrztmraZ-88v134,3946
|
|
130
|
+
angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py,sha256=RPxrXnPZoYGQ63eol6Ttfv5s_C-iP7k1Iz_dRCDn6oM,16281
|
|
129
131
|
angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=-6znFCAXS7Z3cn5CTqr3mg4r1G_jJgDFJHk2PzMVwtE,7756
|
|
130
|
-
angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=
|
|
132
|
+
angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=vjDRO-Rh5LVIlxGRCuggjcz12CIxQuISB0LCC-vF6ZM,7207
|
|
131
133
|
angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=9hhCcvE15MCM6KoJU1ba11hFiN6MXxYAb9FbntzYJbg,34328
|
|
132
134
|
angr/analyses/decompiler/optimization_passes/mod_simplifier.py,sha256=o2AZIpj4NpOAaWOGbudDUfGJJAD2exu-HvNbwph3mi8,3124
|
|
133
135
|
angr/analyses/decompiler/optimization_passes/multi_simplifier.py,sha256=_63Y2vMNLSXYM6_Grfs89Nu63i5YLxTPmxTR_Z6fwLY,10420
|
|
@@ -141,8 +143,8 @@ angr/analyses/decompiler/optimization_passes/return_duplicator_low.py,sha256=EsP
|
|
|
141
143
|
angr/analyses/decompiler/optimization_passes/stack_canary_simplifier.py,sha256=csNKaA4dAP5bIYzC29z67nHKNKzDShcauPuapY4rmF4,12559
|
|
142
144
|
angr/analyses/decompiler/optimization_passes/switch_default_case_duplicator.py,sha256=U9XIMXWYI_UHTamKHdjdXP4QVBvi386SSI0f2KoHu3I,4523
|
|
143
145
|
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=
|
|
145
|
-
angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=
|
|
146
|
+
angr/analyses/decompiler/optimization_passes/x86_gcc_getpc_simplifier.py,sha256=ZuD4EMJFEf-lNBLg-vmx1zVOfsb4Vq487RbwnubBs4A,3067
|
|
147
|
+
angr/analyses/decompiler/peephole_optimizations/__init__.py,sha256=nOxGRR-auZN-oEwhjKtNnPAXcxKvQsCEb-a_LZ5qJxk,3252
|
|
146
148
|
angr/analyses/decompiler/peephole_optimizations/a_div_const_add_a_mul_n_div_const.py,sha256=Whptbt1qujPPRsNX8kJaobHTwgvym7SPu-tC2wBynBs,1727
|
|
147
149
|
angr/analyses/decompiler/peephole_optimizations/a_mul_const_div_shr_const.py,sha256=xuLPEVN1QdQT_5U9K4-WIdVdHTogCBOmJPWlnDW8Cz8,1365
|
|
148
150
|
angr/analyses/decompiler/peephole_optimizations/a_shl_const_sub_a.py,sha256=tEr_XcYoOXcFm5paY_CEzgSOjrksz20utMZa6smF9TU,988
|
|
@@ -163,8 +165,9 @@ angr/analyses/decompiler/peephole_optimizations/conv_a_sub0_shr_and.py,sha256=vz
|
|
|
163
165
|
angr/analyses/decompiler/peephole_optimizations/conv_shl_shr.py,sha256=0IHIk7uxIC70140k3VcXlnx4QcunAeoETXF1ZgJi2Pk,2070
|
|
164
166
|
angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=A0AUf60c047X7VhOr7tTAJE95qS3yiUxE1dYr9maA-8,10131
|
|
165
167
|
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=
|
|
168
|
+
angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py,sha256=YSphozdu4ORdM_222viSUb6EPigRDkRi9klBQd76nqs,5765
|
|
167
169
|
angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py,sha256=vrXAaYKT99LJK5BLKlyQ7xtzQx6hIujqTAv0-Ur1CWo,4676
|
|
170
|
+
angr/analyses/decompiler/peephole_optimizations/inlined_wstrcpy.py,sha256=tT57fo30sPuUy2sYD64mZSCL_yAgwBmdvvoW9CA6aUc,6283
|
|
168
171
|
angr/analyses/decompiler/peephole_optimizations/invert_negated_logical_conjuction_disjunction.py,sha256=a0IDp0kKBrPwhDVejPFhcNseZdprF_5EZRZs7KTR4gA,2084
|
|
169
172
|
angr/analyses/decompiler/peephole_optimizations/one_sub_bool.py,sha256=kW8AbWfMqFzI1CVFp79TFX60IZxaQhRG8XUckuc-vGI,1136
|
|
170
173
|
angr/analyses/decompiler/peephole_optimizations/remove_cascading_conversions.py,sha256=3a1ZoTq66HTU68y5DCC2sLvItPmqF_Kv05uvOacxsRM,591
|
|
@@ -189,7 +192,7 @@ angr/analyses/decompiler/peephole_optimizations/tidy_stack_addr.py,sha256=OTdxZB
|
|
|
189
192
|
angr/analyses/decompiler/region_simplifiers/__init__.py,sha256=ZeURg5mKbKRpwo8-SqxJ0jy_A6nNpZMxiKpjZJ0_RS0,48
|
|
190
193
|
angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py,sha256=4oRjmKwk9tSxUSOTTDGLVM7prp1aTrQOUpNuQ1gfMrA,3721
|
|
191
194
|
angr/analyses/decompiler/region_simplifiers/cascading_ifs.py,sha256=dbAn1fde1-kiF6A9060wEqPKcE3DeBd2Ltt_2UAEdo4,2490
|
|
192
|
-
angr/analyses/decompiler/region_simplifiers/expr_folding.py,sha256=
|
|
195
|
+
angr/analyses/decompiler/region_simplifiers/expr_folding.py,sha256=cTwQHsUz0OyWQwcrTnoIlz2i_H5-xUZfS0Ot1EKrJZE,24126
|
|
193
196
|
angr/analyses/decompiler/region_simplifiers/goto.py,sha256=b8602yf_WcTJXYyKEqh8Wuenwyatxqq-zGIhDPwJnE0,6032
|
|
194
197
|
angr/analyses/decompiler/region_simplifiers/if_.py,sha256=qDkZTrRjDzI4CX6vwEcaddmaPvG4sWHn373VVwmf0e0,5034
|
|
195
198
|
angr/analyses/decompiler/region_simplifiers/ifelse.py,sha256=nWUow7p_TOgFQuUgWXQcH2qSFfxUWJBgkslvajhTbn0,3681
|
|
@@ -198,9 +201,9 @@ angr/analyses/decompiler/region_simplifiers/node_address_finder.py,sha256=OjcyE-
|
|
|
198
201
|
angr/analyses/decompiler/region_simplifiers/region_simplifier.py,sha256=odeRyT8VItRPIFuUPNaRnA936LwxwXOFbM_HhehK90I,8209
|
|
199
202
|
angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py,sha256=0NBa_tpz03ZcaHYUNKXSVZjF3TVmqs2FUc2TdVGwsqc,24545
|
|
200
203
|
angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py,sha256=HGIiC6c3C91VfcqxUHe9aTsRohwmMXOHZH_G_dbwwx4,3327
|
|
201
|
-
angr/analyses/decompiler/structured_codegen/__init__.py,sha256=
|
|
204
|
+
angr/analyses/decompiler/structured_codegen/__init__.py,sha256=NLEvs8xnJwJiUgX8AmgS7rtFFW4SxtQcA1AjzE-GryA,313
|
|
202
205
|
angr/analyses/decompiler/structured_codegen/base.py,sha256=nJPOoeJCbewchYdXjSE4S2b1-WN6pT3TxmCQMDO0azw,3845
|
|
203
|
-
angr/analyses/decompiler/structured_codegen/c.py,sha256=
|
|
206
|
+
angr/analyses/decompiler/structured_codegen/c.py,sha256=UpljxwZANYUX9UrQoYKW5yjTW0OO0faxOzLEyocDKYM,134738
|
|
204
207
|
angr/analyses/decompiler/structured_codegen/dummy.py,sha256=IVfmtcWpTgNCRVsuW3GdQgDnuPmvodX85V0bBYtF_BI,535
|
|
205
208
|
angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=TMz65TkF_ID_Ipocj0aFDb84H6slolN90wq0tzhY2Rk,6773
|
|
206
209
|
angr/analyses/decompiler/structuring/__init__.py,sha256=eSiT6xUpv9K5-enK3OZj2lNzxwowS9_5OTrjHiPgfFs,371
|
|
@@ -251,7 +254,7 @@ angr/analyses/identifier/functions/strtol.py,sha256=Py_6Y9rR5dfy53LX8w9WktSBaxdy
|
|
|
251
254
|
angr/analyses/propagator/__init__.py,sha256=5-UKSiAtYocLzmQWXPzxyBnPui_c8P_r617KDwtRnNw,43
|
|
252
255
|
angr/analyses/propagator/engine_ail.py,sha256=R4_XLRN7Z_Il37bhFPLCBYa01fuGFCXyg7sUhbFo7mY,68660
|
|
253
256
|
angr/analyses/propagator/engine_base.py,sha256=0j5NzJ9jArF4KeysBeiPoo_RKyCvlgn-i3inSZt1cyc,1735
|
|
254
|
-
angr/analyses/propagator/engine_vex.py,sha256=
|
|
257
|
+
angr/analyses/propagator/engine_vex.py,sha256=mbFkn1LTmhL0H_etG4JLdOSBoH6Z2TG6qJJ4W5Oq_0c,12900
|
|
255
258
|
angr/analyses/propagator/outdated_definition_walker.py,sha256=OJnI9rlyutyy2qHMTqnrnQJCXKcBHvgwHfiqlWDECiY,6890
|
|
256
259
|
angr/analyses/propagator/propagator.py,sha256=IdIGtwYtxJPS4nU-ktBZBhoLz1_2JtfTVcc7kPczZxs,16134
|
|
257
260
|
angr/analyses/propagator/tmpvar_finder.py,sha256=GqP1lm-_ez4AvXraDt1BQ1o7GvdjLI7j-TUL5k-lKbU,442
|
|
@@ -262,7 +265,7 @@ angr/analyses/reaching_definitions/__init__.py,sha256=3itfNz4b0XcTDJJbU10gZfSuqU
|
|
|
262
265
|
angr/analyses/reaching_definitions/call_trace.py,sha256=5y8VtU-5-2ISamCkok6zoMahWASO2TBQYl5Q0pgeLGw,2217
|
|
263
266
|
angr/analyses/reaching_definitions/dep_graph.py,sha256=M4P5jyA7nVrWk9oEOB5EQUtGIf-eKCevwhH3uj-O7rQ,14886
|
|
264
267
|
angr/analyses/reaching_definitions/engine_ail.py,sha256=uvkgtdxWxFn2ZBM6-mEhuvYEBjvdwa7PiTlN4yOKqMI,45997
|
|
265
|
-
angr/analyses/reaching_definitions/engine_vex.py,sha256=
|
|
268
|
+
angr/analyses/reaching_definitions/engine_vex.py,sha256=aN1daC3XSsVSkiPcUAi5_3UvwlXA_nSuQhxMpKk2Rpc,43124
|
|
266
269
|
angr/analyses/reaching_definitions/external_codeloc.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
267
270
|
angr/analyses/reaching_definitions/function_handler.py,sha256=TB6yW0TBQnTdAv3SOBcui6dSCBMoviivKx0v8COY12w,26839
|
|
268
271
|
angr/analyses/reaching_definitions/heap_allocator.py,sha256=L7LCcE-QvLd_vuc0slWmQ6X73wkYNMkUEDy1cJAV818,2634
|
|
@@ -283,8 +286,8 @@ angr/analyses/variable_recovery/__init__.py,sha256=j2SZyfzCAagqNTj0IcYJtOx4b3oAv
|
|
|
283
286
|
angr/analyses/variable_recovery/annotations.py,sha256=eAifcWVmb1xUmEGtpiy8PzIupSuZtmEDEiUav-3_z20,1403
|
|
284
287
|
angr/analyses/variable_recovery/engine_ail.py,sha256=DEotW9Pe6NyS23dOgbDZ5EAYY3qaik_mECGisuNRyb8,25716
|
|
285
288
|
angr/analyses/variable_recovery/engine_base.py,sha256=SM-BCv-UPE7bmaFCRpxLKJGL6u0WUUtQr3CgmIeqG5Y,41633
|
|
286
|
-
angr/analyses/variable_recovery/engine_vex.py,sha256=
|
|
287
|
-
angr/analyses/variable_recovery/irsb_scanner.py,sha256=
|
|
289
|
+
angr/analyses/variable_recovery/engine_vex.py,sha256=ni-OCeHFhhPRo5iH2p4AvI_43ADOO1jUc__GX0tIb-U,19215
|
|
290
|
+
angr/analyses/variable_recovery/irsb_scanner.py,sha256=c8SMeqX4rddO7lDtFaXvFQRwA7AnHHOpXnWOQyjgYtw,4907
|
|
288
291
|
angr/analyses/variable_recovery/variable_recovery.py,sha256=F7dOWJVdV2kE1jjIyqEDgp0bZ03_cReEeHSPKPnhI1s,21802
|
|
289
292
|
angr/analyses/variable_recovery/variable_recovery_base.py,sha256=mm9p86ZRYwIXrMB-BW_s5_Aj0_PoOg865QCKDWsrBwE,14960
|
|
290
293
|
angr/analyses/variable_recovery/variable_recovery_fast.py,sha256=l2O6TRAoENsLnWQu60n_pmgAIyXrk86f1JNzlCJLLi0,24125
|
|
@@ -331,7 +334,7 @@ angr/engines/syscall.py,sha256=LNMC3zyis3OiWC7_8Zn1blMw1EDib5FjUqepXlaWDTI,2177
|
|
|
331
334
|
angr/engines/unicorn.py,sha256=gf7LjjWyaaujqSuCq3d-BGm8t5sdZjzsJeBevGfdiLw,24447
|
|
332
335
|
angr/engines/light/__init__.py,sha256=j9vH2fU9MaNVQ8NT3Ek3Tj2zkGlVxlKyzia8zVTofYs,186
|
|
333
336
|
angr/engines/light/data.py,sha256=jZBAJxor2zg5m4s63joSrjUs8H-OeHBZiqZmc3dqEQQ,23132
|
|
334
|
-
angr/engines/light/engine.py,sha256=
|
|
337
|
+
angr/engines/light/engine.py,sha256=dJxHkFrfCjufo-d4PO_SkBT8CMp3aQ7lbWpfQGImCoI,44929
|
|
335
338
|
angr/engines/pcode/__init__.py,sha256=UwMEwXQvHXIIgedJn2ZOvBBEgfHg2rfREBSpcTSXCZ4,83
|
|
336
339
|
angr/engines/pcode/behavior.py,sha256=gwMFXQ3cibqchRHnRfiVzzzLIg2mgX-2XJlkD82p8J0,28720
|
|
337
340
|
angr/engines/pcode/cc.py,sha256=lwMeO9Mg8L7-uxxPzYmu13n7YLNo-Sr3xxLk_-QHTOU,2994
|
|
@@ -448,7 +451,7 @@ angr/knowledge_plugins/cfg/cfg_node.py,sha256=Q_qqQ1LisCzTWROOQAfvyaBjS86zxcMw6I
|
|
|
448
451
|
angr/knowledge_plugins/cfg/indirect_jump.py,sha256=yzPf1jjUNPgGP7D7IamqX6KF-EJX-heZjDEr4SRUWDA,2145
|
|
449
452
|
angr/knowledge_plugins/cfg/memory_data.py,sha256=FzRUFltXrN0G3OeMZEbb3xc7I-W8AaomtCTSXUQlJ0g,5040
|
|
450
453
|
angr/knowledge_plugins/functions/__init__.py,sha256=6IerJjMKKvM70mcJQhmXJYiipePOQ9ZSTmavTIUgg5Q,77
|
|
451
|
-
angr/knowledge_plugins/functions/function.py,sha256=
|
|
454
|
+
angr/knowledge_plugins/functions/function.py,sha256=EBvfQWQqPPvAz3_Hw44kodDz9K5uGbGuhgtf57NTU-I,67184
|
|
452
455
|
angr/knowledge_plugins/functions/function_manager.py,sha256=BsVGnI-cvcCkpZ_8ssoOCspKmU58uKjLb0CBzIAKo7c,18990
|
|
453
456
|
angr/knowledge_plugins/functions/function_parser.py,sha256=cb_AD5oFqoyXapDBawnJV1D9XVRMBGa9GwwDudNSc3M,11916
|
|
454
457
|
angr/knowledge_plugins/functions/soot_function.py,sha256=2zwz_tdKbEnF8eUkOEmpNr7AUeooun2-SiIoY_xIdMw,4971
|
|
@@ -1231,7 +1234,7 @@ angr/storage/memory_mixins/hex_dumper_mixin.py,sha256=ciMIrmfTmxWPWVUUiIw5h8YNdH
|
|
|
1231
1234
|
angr/storage/memory_mixins/label_merger_mixin.py,sha256=F-1F_zotCO9OOTXaG8Ax2-Mi2F2aN7hQ8pIwxgH1nVE,858
|
|
1232
1235
|
angr/storage/memory_mixins/multi_value_merger_mixin.py,sha256=Gssxe83oAn8AsFyF2b9Ye99Y3Z6tgYos3Y-24hYVmQ0,3036
|
|
1233
1236
|
angr/storage/memory_mixins/name_resolution_mixin.py,sha256=YOM3yDjTmybDgAVvJGHuVWUgkDqsbFsWRgkJP8vI9ho,3412
|
|
1234
|
-
angr/storage/memory_mixins/simple_interface_mixin.py,sha256=
|
|
1237
|
+
angr/storage/memory_mixins/simple_interface_mixin.py,sha256=KTHvca8MXCWF4W8dbnQLFd7uJ-Gsab03_3kJGfFTAyY,2596
|
|
1235
1238
|
angr/storage/memory_mixins/simplification_mixin.py,sha256=stTzmaoa0IHxhDSWsYdzKGSt2n37XRjJ7kgZdoa5Uu0,502
|
|
1236
1239
|
angr/storage/memory_mixins/size_resolution_mixin.py,sha256=KEOCz6B_YOUXczNYeCU4UH2YMoi7k9ww86Ll5cCKNVE,5659
|
|
1237
1240
|
angr/storage/memory_mixins/slotted_memory.py,sha256=tf-SqyvUg9H9e_cAJBXD5KZ_IIL1PBz5tDiODQCMad8,4884
|
|
@@ -1254,9 +1257,9 @@ angr/storage/memory_mixins/paged_memory/pages/__init__.py,sha256=rwGAcESljLORCDt
|
|
|
1254
1257
|
angr/storage/memory_mixins/paged_memory/pages/cooperation.py,sha256=wAFitUWddf8-iCuueqg-GW0aqhv7UgnwWekLI7hX3eo,12776
|
|
1255
1258
|
angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py,sha256=_Nn4lRfGwAHelfl4fCZo41pqH9DM_NI-VXhBPXQbI0o,3039
|
|
1256
1259
|
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=
|
|
1260
|
+
angr/storage/memory_mixins/paged_memory/pages/list_page.py,sha256=UpD45TazurTnukRn_t5LZAGH-dRT1TvDcVC4Vxqiasc,14644
|
|
1258
1261
|
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=
|
|
1262
|
+
angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py,sha256=bxlsOlDUANb2hC6AlQk6W5YlczgSrePR40JzYPHAMRo,17713
|
|
1260
1263
|
angr/storage/memory_mixins/paged_memory/pages/permissions_mixin.py,sha256=Ek2YSmFOGUScFXPx8hqroNkl3gK1aqKCMv_X3_pImLs,830
|
|
1261
1264
|
angr/storage/memory_mixins/paged_memory/pages/refcount_mixin.py,sha256=oES5tahTy4SgyDi2h5oRRC0PC4JHNcIvdAC4INKkeJw,1701
|
|
1262
1265
|
angr/storage/memory_mixins/paged_memory/pages/ultra_page.py,sha256=-q0bkJvWMw-ki9AfZP6hvQeD6JljoWiYTKmuTjDRorA,19139
|
|
@@ -1286,9 +1289,9 @@ angr/utils/mp.py,sha256=EPeBml7i1HNOg9OFvj-hoqaGJzKD4fKyM-mHWIaJ3Ko,1825
|
|
|
1286
1289
|
angr/utils/segment_list.py,sha256=lhGy16YKKaD-F0JtWmjJ6a2RFcdTrKcLfPE9ILRVtCs,20431
|
|
1287
1290
|
angr/utils/timing.py,sha256=uOowCP8kotDrKDOjlAod-guBuYkAA8zEtiAwpdwMlIU,1334
|
|
1288
1291
|
angr/utils/typing.py,sha256=_I4dzZSh1_uRKQ3PpjXseA_CaJH6ru2yAxjICkJhfmI,417
|
|
1289
|
-
angr-9.2.
|
|
1290
|
-
angr-9.2.
|
|
1291
|
-
angr-9.2.
|
|
1292
|
-
angr-9.2.
|
|
1293
|
-
angr-9.2.
|
|
1294
|
-
angr-9.2.
|
|
1292
|
+
angr-9.2.99.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
|
|
1293
|
+
angr-9.2.99.dist-info/METADATA,sha256=pDpfAvlHP9K2NuxdbBeYBzXuDjDgZwAiIjRx7CcKwgY,4796
|
|
1294
|
+
angr-9.2.99.dist-info/WHEEL,sha256=eqK0rWjSY7_bgNbVXZVO2Wi8Tj4K-w2xVOdGmXi88ck,109
|
|
1295
|
+
angr-9.2.99.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
|
|
1296
|
+
angr-9.2.99.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
|
|
1297
|
+
angr-9.2.99.dist-info/RECORD,,
|