angr 9.2.99__py3-none-macosx_10_9_x86_64.whl → 9.2.100__py3-none-macosx_10_9_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of angr might be problematic. Click here for more details.
- angr/__init__.py +1 -1
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +1 -1
- angr/analyses/decompiler/graph_region.py +11 -1
- angr/analyses/decompiler/optimization_passes/const_derefs.py +5 -3
- angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +3 -0
- angr/analyses/decompiler/peephole_optimizations/constant_derefs.py +2 -0
- angr/analyses/decompiler/structured_codegen/c.py +24 -0
- angr/analyses/decompiler/structuring/phoenix.py +7 -2
- angr/engines/light/engine.py +10 -4
- angr/lib/angr_native.dylib +0 -0
- angr/simos/linux.py +27 -20
- {angr-9.2.99.dist-info → angr-9.2.100.dist-info}/METADATA +6 -6
- {angr-9.2.99.dist-info → angr-9.2.100.dist-info}/RECORD +17 -17
- {angr-9.2.99.dist-info → angr-9.2.100.dist-info}/LICENSE +0 -0
- {angr-9.2.99.dist-info → angr-9.2.100.dist-info}/WHEEL +0 -0
- {angr-9.2.99.dist-info → angr-9.2.100.dist-info}/entry_points.txt +0 -0
- {angr-9.2.99.dist-info → angr-9.2.100.dist-info}/top_level.txt +0 -0
angr/__init__.py
CHANGED
|
@@ -954,7 +954,7 @@ class JumpTableResolver(IndirectJumpResolver):
|
|
|
954
954
|
# for a typical vtable call (or jump if at the end of a function), the block as two predecessors that form a
|
|
955
955
|
# diamond shape
|
|
956
956
|
curr_node = func.get_node(addr)
|
|
957
|
-
if curr_node is None:
|
|
957
|
+
if curr_node is None or curr_node not in func.graph:
|
|
958
958
|
l.debug("Could not find the node %#x in the function transition graph", addr)
|
|
959
959
|
return False, None
|
|
960
960
|
preds = list(func.graph.predecessors(curr_node))
|
|
@@ -267,7 +267,7 @@ class GraphRegion:
|
|
|
267
267
|
for succ in replace_with.successors:
|
|
268
268
|
if succ not in self.successors:
|
|
269
269
|
for succ_ in self.successors:
|
|
270
|
-
if isinstance(succ_, GraphRegion) and succ_.
|
|
270
|
+
if isinstance(succ_, GraphRegion) and succ_.addr == succ.addr:
|
|
271
271
|
successor_map[succ] = succ_
|
|
272
272
|
if successor_map:
|
|
273
273
|
replace_with_graph_with_successors = networkx.DiGraph()
|
|
@@ -364,6 +364,16 @@ class GraphRegion:
|
|
|
364
364
|
while isinstance(dst_head, GraphRegion) and dst_head not in sub_graph:
|
|
365
365
|
dst_head = dst_head.head
|
|
366
366
|
|
|
367
|
+
if dst_head not in sub_graph:
|
|
368
|
+
# unexpected: structuring failed and resulted in a bad sub_graph
|
|
369
|
+
l.warning(
|
|
370
|
+
"Node %r for node %r is not found in the sub graph at address %#x. Nodes may go missing.",
|
|
371
|
+
dst_head,
|
|
372
|
+
dst_in_subgraph,
|
|
373
|
+
sub_graph_head.addr,
|
|
374
|
+
)
|
|
375
|
+
continue
|
|
376
|
+
|
|
367
377
|
for src in sub_graph.predecessors(dst_head):
|
|
368
378
|
graph.add_edge(src, dst)
|
|
369
379
|
# replace the corresponding nodes in sub_graph_nodes and sub_graph_edges
|
|
@@ -136,7 +136,8 @@ class BlockWalker(AILBlockWalker):
|
|
|
136
136
|
if isinstance(expr.addr, Const):
|
|
137
137
|
# *(const_addr)
|
|
138
138
|
# does it belong to a read-only section/segment?
|
|
139
|
-
|
|
139
|
+
is_got = self._addr_belongs_to_got(expr.addr.value)
|
|
140
|
+
if is_got or self._addr_belongs_to_ro_region(expr.addr.value):
|
|
140
141
|
try:
|
|
141
142
|
w = self._project.loader.memory.unpack_word(
|
|
142
143
|
expr.addr.value,
|
|
@@ -147,8 +148,9 @@ class BlockWalker(AILBlockWalker):
|
|
|
147
148
|
# we don't have enough bytes to read out
|
|
148
149
|
w = None
|
|
149
150
|
if w is not None:
|
|
150
|
-
|
|
151
|
-
|
|
151
|
+
if not (is_got and w == 0):
|
|
152
|
+
# nice! replace it with the actual value
|
|
153
|
+
return Const(None, None, w, expr.bits, **expr.tags)
|
|
152
154
|
elif isinstance(expr.addr, Load) and expr.addr.bits == self._project.arch.bits:
|
|
153
155
|
if isinstance(expr.addr.addr, Const):
|
|
154
156
|
# *(*(const_addr))
|
|
@@ -231,6 +231,9 @@ class InlinedStringTransformationAILEngine(SimEngineLightAILMixin):
|
|
|
231
231
|
return claripy.BVV(1, 1) if op0.concrete_value >= op1.concrete_value else claripy.BVV(0, 1)
|
|
232
232
|
return None
|
|
233
233
|
|
|
234
|
+
def _handle_Call(self, stmt):
|
|
235
|
+
pass
|
|
236
|
+
|
|
234
237
|
|
|
235
238
|
class InlineStringTransformationDescriptor:
|
|
236
239
|
"""
|
|
@@ -24,6 +24,8 @@ class ConstantDereferences(PeepholeOptimizationExprBase):
|
|
|
24
24
|
val = self.project.loader.memory.unpack_word(expr.addr.value, size=expr.size)
|
|
25
25
|
except KeyError:
|
|
26
26
|
return None
|
|
27
|
+
if "got" in sec.name and val == 0:
|
|
28
|
+
return None
|
|
27
29
|
|
|
28
30
|
return Const(None, None, val, expr.bits, **expr.tags, deref_src_addr=expr.addr.value)
|
|
29
31
|
|
|
@@ -1408,6 +1408,26 @@ class CUnsupportedStatement(CStatement):
|
|
|
1408
1408
|
yield "\n", None
|
|
1409
1409
|
|
|
1410
1410
|
|
|
1411
|
+
class CDirtyStatement(CExpression):
|
|
1412
|
+
|
|
1413
|
+
__slots__ = ("dirty",)
|
|
1414
|
+
|
|
1415
|
+
def __init__(self, dirty, **kwargs):
|
|
1416
|
+
super().__init__(**kwargs)
|
|
1417
|
+
self.dirty = dirty
|
|
1418
|
+
|
|
1419
|
+
@property
|
|
1420
|
+
def type(self):
|
|
1421
|
+
return SimTypeInt().with_arch(self.codegen.project.arch)
|
|
1422
|
+
|
|
1423
|
+
def c_repr_chunks(self, indent=0, asexpr=False):
|
|
1424
|
+
indent_str = self.indent_str(indent=indent)
|
|
1425
|
+
|
|
1426
|
+
yield indent_str, None
|
|
1427
|
+
yield str(self.dirty), None
|
|
1428
|
+
yield "\n", None
|
|
1429
|
+
|
|
1430
|
+
|
|
1411
1431
|
class CLabel(CStatement):
|
|
1412
1432
|
"""
|
|
1413
1433
|
Represents a label in C code.
|
|
@@ -2414,6 +2434,7 @@ class CStructuredCodeGenerator(BaseStructuredCodeGenerator, Analysis):
|
|
|
2414
2434
|
Stmt.ConditionalJump: self._handle_Stmt_ConditionalJump,
|
|
2415
2435
|
Stmt.Return: self._handle_Stmt_Return,
|
|
2416
2436
|
Stmt.Label: self._handle_Stmt_Label,
|
|
2437
|
+
Stmt.DirtyStatement: self._handle_Stmt_Dirty,
|
|
2417
2438
|
# AIL expressions
|
|
2418
2439
|
Expr.Register: self._handle_Expr_Register,
|
|
2419
2440
|
Expr.Load: self._handle_Expr_Load,
|
|
@@ -3311,6 +3332,9 @@ class CStructuredCodeGenerator(BaseStructuredCodeGenerator, Analysis):
|
|
|
3311
3332
|
self.map_addr_to_label[(stmt.ins_addr, stmt.block_idx)] = clabel
|
|
3312
3333
|
return clabel
|
|
3313
3334
|
|
|
3335
|
+
def _handle_Stmt_Dirty(self, stmt: Stmt.DirtyStatement, **kwargs):
|
|
3336
|
+
return CDirtyStatement(stmt, codegen=self)
|
|
3337
|
+
|
|
3314
3338
|
#
|
|
3315
3339
|
# AIL expression handlers
|
|
3316
3340
|
#
|
|
@@ -1131,9 +1131,14 @@ class PhoenixStructurer(StructurerBase):
|
|
|
1131
1131
|
return False
|
|
1132
1132
|
cmp_expr, cmp_lb, cmp_ub = cmp # pylint:disable=unused-variable
|
|
1133
1133
|
|
|
1134
|
-
node_a = next(iter(nn for nn in graph.nodes if nn.addr == target))
|
|
1134
|
+
node_a = next(iter(nn for nn in graph.nodes if nn.addr == target), None)
|
|
1135
|
+
if node_a is None:
|
|
1136
|
+
return False
|
|
1137
|
+
|
|
1135
1138
|
# the default case
|
|
1136
|
-
node_b_addr = next(iter(t for t in successor_addrs if t != target))
|
|
1139
|
+
node_b_addr = next(iter(t for t in successor_addrs if t != target), None)
|
|
1140
|
+
if node_b_addr is None:
|
|
1141
|
+
return False
|
|
1137
1142
|
|
|
1138
1143
|
# populate whitelist_edges
|
|
1139
1144
|
for case_node_addr in jump_table.jumptable_entries:
|
angr/engines/light/engine.py
CHANGED
|
@@ -1324,9 +1324,12 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
|
|
|
1324
1324
|
expr_1 = arg1
|
|
1325
1325
|
|
|
1326
1326
|
try:
|
|
1327
|
-
|
|
1327
|
+
if isinstance(expr_1, claripy.ast.BV) and expr_1.concrete:
|
|
1328
|
+
return expr_0 >> expr_1.concrete_value
|
|
1328
1329
|
except TypeError:
|
|
1329
|
-
|
|
1330
|
+
pass
|
|
1331
|
+
|
|
1332
|
+
return ailment.Expr.BinaryOp(expr.idx, "Shr", [expr_0, expr_1], expr.signed, **expr.tags)
|
|
1330
1333
|
|
|
1331
1334
|
def _ail_handle_Shl(self, expr):
|
|
1332
1335
|
arg0, arg1 = expr.operands
|
|
@@ -1339,9 +1342,12 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
|
|
|
1339
1342
|
expr_1 = arg1
|
|
1340
1343
|
|
|
1341
1344
|
try:
|
|
1342
|
-
|
|
1345
|
+
if isinstance(expr_1, claripy.ast.BV) and expr_1.concrete:
|
|
1346
|
+
return expr_0 << expr_1.concrete_value
|
|
1343
1347
|
except TypeError:
|
|
1344
|
-
|
|
1348
|
+
pass
|
|
1349
|
+
|
|
1350
|
+
return ailment.Expr.BinaryOp(expr.idx, "Shl", [expr_0, expr_1], expr.signed, **expr.tags)
|
|
1345
1351
|
|
|
1346
1352
|
def _ail_handle_Sal(self, expr):
|
|
1347
1353
|
return self._ail_handle_Shl(expr)
|
angr/lib/angr_native.dylib
CHANGED
|
Binary file
|
angr/simos/linux.py
CHANGED
|
@@ -100,12 +100,18 @@ class SimLinux(SimUserland):
|
|
|
100
100
|
_rtld_global_ro.rebased_addr + 0x0D0, 2
|
|
101
101
|
) # cpu features: kind = amd
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
self.project.
|
|
103
|
+
try:
|
|
104
|
+
tls_obj = self.project.loader.tls.new_thread()
|
|
105
|
+
except NotImplementedError:
|
|
106
|
+
pass
|
|
107
|
+
else:
|
|
108
|
+
if isinstance(self.project.arch, ArchAMD64):
|
|
109
|
+
self.project.loader.memory.pack_word(
|
|
110
|
+
tls_obj.thread_pointer + 0x28, 0x5F43414E41525900
|
|
111
|
+
) # _CANARY\x00
|
|
112
|
+
self.project.loader.memory.pack_word(tls_obj.thread_pointer + 0x30, 0x5054524755415244)
|
|
113
|
+
elif isinstance(self.project.arch, ArchX86):
|
|
114
|
+
self.project.loader.memory.pack_word(tls_obj.thread_pointer + 0x10, self.vsyscall_addr)
|
|
109
115
|
|
|
110
116
|
if isinstance(self.project.arch, ArchARM):
|
|
111
117
|
# https://www.kernel.org/doc/Documentation/arm/kernel_user_helpers.txt
|
|
@@ -208,19 +214,20 @@ class SimLinux(SimUserland):
|
|
|
208
214
|
if not self._is_core and hasattr(state.memory, "allocate_stack_pages"):
|
|
209
215
|
state.memory.allocate_stack_pages(state.solver.eval(state.regs.sp) - 1, 0x20 * 0x1000)
|
|
210
216
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
state.
|
|
214
|
-
|
|
215
|
-
state.
|
|
216
|
-
|
|
217
|
-
state.
|
|
218
|
-
|
|
219
|
-
state.
|
|
220
|
-
|
|
221
|
-
state.
|
|
222
|
-
|
|
223
|
-
state.
|
|
217
|
+
if self.project.loader.tls.threads:
|
|
218
|
+
tls_obj = self.project.loader.tls.threads[thread_idx if thread_idx is not None else 0]
|
|
219
|
+
if isinstance(state.arch, ArchAMD64):
|
|
220
|
+
state.regs.fs = tls_obj.user_thread_pointer
|
|
221
|
+
elif isinstance(state.arch, ArchX86):
|
|
222
|
+
state.regs.gs = tls_obj.user_thread_pointer >> 16
|
|
223
|
+
elif isinstance(state.arch, (ArchMIPS32, ArchMIPS64)):
|
|
224
|
+
state.regs.ulr = tls_obj.user_thread_pointer
|
|
225
|
+
elif isinstance(state.arch, ArchPPC32):
|
|
226
|
+
state.regs.r2 = tls_obj.user_thread_pointer
|
|
227
|
+
elif isinstance(state.arch, ArchPPC64):
|
|
228
|
+
state.regs.r13 = tls_obj.user_thread_pointer
|
|
229
|
+
elif isinstance(state.arch, ArchAArch64):
|
|
230
|
+
state.regs.tpidr_el0 = tls_obj.user_thread_pointer
|
|
224
231
|
|
|
225
232
|
if fs is None:
|
|
226
233
|
fs = {}
|
|
@@ -397,7 +404,7 @@ class SimLinux(SimUserland):
|
|
|
397
404
|
state.registers.store(reg, self.project.loader.main_object.ppc64_initial_rtoc)
|
|
398
405
|
elif val == "entry":
|
|
399
406
|
state.registers.store(reg, state.registers.load("pc"))
|
|
400
|
-
elif val == "thread_pointer":
|
|
407
|
+
elif val == "thread_pointer" and self.project.loader.tls.threads:
|
|
401
408
|
state.registers.store(reg, self.project.loader.tls.threads[0].user_thread_pointer)
|
|
402
409
|
else:
|
|
403
410
|
_l.warning('Unknown entry point register value indicator "%s"', val)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: angr
|
|
3
|
-
Version: 9.2.
|
|
3
|
+
Version: 9.2.100
|
|
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.100
|
|
21
|
+
Requires-Dist: archinfo ==9.2.100
|
|
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.100
|
|
26
|
+
Requires-Dist: cle ==9.2.100
|
|
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.100
|
|
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=21woDHAvBdmFpvp0-Uih2rSDsQoo-aO8L5SSdvmowCE,3993
|
|
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
|
|
@@ -74,7 +74,7 @@ angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py,sha256=mMLQ5cUDjpGXD38
|
|
|
74
74
|
angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py,sha256=VhgIEDBSN6K_1pNHW1O23bOvc_gbi7bPpmlTGE7_5Uw,5231
|
|
75
75
|
angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py,sha256=9ctRVLyVUMhkBV0y-Iy48usHBodGfkaWK1C7Dim2fgE,5273
|
|
76
76
|
angr/analyses/cfg/indirect_jump_resolvers/default_resolvers.py,sha256=TyRIBvH8St1eHktpRrErD4zp8HKP3ppglfPuCEE0wg0,1441
|
|
77
|
-
angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=
|
|
77
|
+
angr/analyses/cfg/indirect_jump_resolvers/jumptable.py,sha256=_bYhqtDXmeR7N7zQPnYvGP983k3Bnu8KcObevSBj7eM,101986
|
|
78
78
|
angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py,sha256=G3y7GYPxtuDQCwBz1eec-74YC87npLK6K2mtRPOsOqc,19350
|
|
79
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
|
|
@@ -105,7 +105,7 @@ angr/analyses/decompiler/empty_node_remover.py,sha256=KhH88_x3A1nR22H3wrdp1gznLu
|
|
|
105
105
|
angr/analyses/decompiler/expression_counters.py,sha256=P4RbtnyEy2lJnNUw_G702W-AIGaL4MszZ5fdrritwwg,2867
|
|
106
106
|
angr/analyses/decompiler/expression_narrower.py,sha256=64VR1xdPVVoCLHOYRPacV9ecQb33rP7nC1l8rpFxTkg,3545
|
|
107
107
|
angr/analyses/decompiler/goto_manager.py,sha256=UD42GvAN7--8GPZuT3blkyEhhpw-HExRfzov79j-3w4,2485
|
|
108
|
-
angr/analyses/decompiler/graph_region.py,sha256=
|
|
108
|
+
angr/analyses/decompiler/graph_region.py,sha256=hBgARiSiv0KfoDbekAMYUKuTHhs_uIz2Qe_0lnFMx8g,16956
|
|
109
109
|
angr/analyses/decompiler/jump_target_collector.py,sha256=rA0IhZuJ20-jOQTjT7fnhyW2qwPdJI4SmnhLRtuADro,1181
|
|
110
110
|
angr/analyses/decompiler/jumptable_entry_condition_rewriter.py,sha256=dcgnXt3oKa8Qm_KtT-Rl7XDmLetvOj_UFALxC2HGLac,2139
|
|
111
111
|
angr/analyses/decompiler/redundant_label_remover.py,sha256=kDGGFWWV61I5fbASiTQTHgDCFLIOkffUdDOsu5yg5ok,5385
|
|
@@ -121,13 +121,13 @@ angr/analyses/decompiler/ccall_rewriters/rewriter_base.py,sha256=gWezEKB7A_YnlfU
|
|
|
121
121
|
angr/analyses/decompiler/optimization_passes/__init__.py,sha256=xlLn9Mzcd9vmvV0exca84xejLlOqP1MKYv3WVsQxmX8,3954
|
|
122
122
|
angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py,sha256=bjpEMW-Lqj5XW9NWUikGPcRn5scKNc8VvEjVMXxAuq8,5289
|
|
123
123
|
angr/analyses/decompiler/optimization_passes/code_motion.py,sha256=KEQPdpSfSYiIzHFYGkfj3W8ZupJbogQNhYnYKzo1xUA,15319
|
|
124
|
-
angr/analyses/decompiler/optimization_passes/const_derefs.py,sha256=
|
|
124
|
+
angr/analyses/decompiler/optimization_passes/const_derefs.py,sha256=X9N0Dk48_6E0en16lMZ75KhEQfeUmZw19TNFiPzL8Cg,10677
|
|
125
125
|
angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py,sha256=CP-WjyQGOw_mnUF0ZpC5C4syMxlx4Tvy0T_EIZQxXrY,4033
|
|
126
126
|
angr/analyses/decompiler/optimization_passes/div_simplifier.py,sha256=J7LRc3-DKfToxKVejnkHbNel9_56-7xsGyJJiTCwqsQ,17442
|
|
127
127
|
angr/analyses/decompiler/optimization_passes/engine_base.py,sha256=7nnNZkVMqvikHCy9X11M8KLWbL8lF0DoLYPemETWP4c,10388
|
|
128
128
|
angr/analyses/decompiler/optimization_passes/expr_op_swapper.py,sha256=vlPhWDyvuEmbGcd1ka8rS68F72Ty6Hw3J00KM3tWCus,4701
|
|
129
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=
|
|
130
|
+
angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py,sha256=vTZtL0nMMkMzioSGcxE0B6wuVNZsSmV_Dh1MuItdLZ0,16329
|
|
131
131
|
angr/analyses/decompiler/optimization_passes/ite_expr_converter.py,sha256=-6znFCAXS7Z3cn5CTqr3mg4r1G_jJgDFJHk2PzMVwtE,7756
|
|
132
132
|
angr/analyses/decompiler/optimization_passes/ite_region_converter.py,sha256=vjDRO-Rh5LVIlxGRCuggjcz12CIxQuISB0LCC-vF6ZM,7207
|
|
133
133
|
angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py,sha256=9hhCcvE15MCM6KoJU1ba11hFiN6MXxYAb9FbntzYJbg,34328
|
|
@@ -160,7 +160,7 @@ angr/analyses/decompiler/peephole_optimizations/bool_expr_xor_1.py,sha256=QANf71
|
|
|
160
160
|
angr/analyses/decompiler/peephole_optimizations/bswap.py,sha256=5u1R-kIyCxDw4oMNnbLhaE9rUiJ_atwDaMoefzpTmAg,6238
|
|
161
161
|
angr/analyses/decompiler/peephole_optimizations/coalesce_same_cascading_ifs.py,sha256=9ogHTcP4vhFfwDzxccnjfhkizKGvM_7tK3y6PqyG5Hg,1020
|
|
162
162
|
angr/analyses/decompiler/peephole_optimizations/const_mull_a_shift.py,sha256=KLdhgU_e1OglEeC7IHipql9UzYpatJc0LydXJJIakL4,3691
|
|
163
|
-
angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=
|
|
163
|
+
angr/analyses/decompiler/peephole_optimizations/constant_derefs.py,sha256=tLZ04IkbVKlm1HYNhj7pytmLC3YDpIJ7FG0p4Vz99bk,1666
|
|
164
164
|
angr/analyses/decompiler/peephole_optimizations/conv_a_sub0_shr_and.py,sha256=vzROAUvKUrQQmwUXJ-0WyFr1v5f8EPBgjeXIpWhtDak,2578
|
|
165
165
|
angr/analyses/decompiler/peephole_optimizations/conv_shl_shr.py,sha256=0IHIk7uxIC70140k3VcXlnx4QcunAeoETXF1ZgJi2Pk,2070
|
|
166
166
|
angr/analyses/decompiler/peephole_optimizations/eager_eval.py,sha256=A0AUf60c047X7VhOr7tTAJE95qS3yiUxE1dYr9maA-8,10131
|
|
@@ -203,12 +203,12 @@ angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py,sha256=
|
|
|
203
203
|
angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py,sha256=HGIiC6c3C91VfcqxUHe9aTsRohwmMXOHZH_G_dbwwx4,3327
|
|
204
204
|
angr/analyses/decompiler/structured_codegen/__init__.py,sha256=NLEvs8xnJwJiUgX8AmgS7rtFFW4SxtQcA1AjzE-GryA,313
|
|
205
205
|
angr/analyses/decompiler/structured_codegen/base.py,sha256=nJPOoeJCbewchYdXjSE4S2b1-WN6pT3TxmCQMDO0azw,3845
|
|
206
|
-
angr/analyses/decompiler/structured_codegen/c.py,sha256=
|
|
206
|
+
angr/analyses/decompiler/structured_codegen/c.py,sha256=HE5OQmY1map5ZPRIzS_QHW_D4NRWFDJwfCIq6X3iP4U,135388
|
|
207
207
|
angr/analyses/decompiler/structured_codegen/dummy.py,sha256=IVfmtcWpTgNCRVsuW3GdQgDnuPmvodX85V0bBYtF_BI,535
|
|
208
208
|
angr/analyses/decompiler/structured_codegen/dwarf_import.py,sha256=TMz65TkF_ID_Ipocj0aFDb84H6slolN90wq0tzhY2Rk,6773
|
|
209
209
|
angr/analyses/decompiler/structuring/__init__.py,sha256=eSiT6xUpv9K5-enK3OZj2lNzxwowS9_5OTrjHiPgfFs,371
|
|
210
210
|
angr/analyses/decompiler/structuring/dream.py,sha256=xsFPPl0L7nu8ejugCm8FbJUCgYcnCMUCAJQTzNQDLIo,48400
|
|
211
|
-
angr/analyses/decompiler/structuring/phoenix.py,sha256=
|
|
211
|
+
angr/analyses/decompiler/structuring/phoenix.py,sha256=Li8rR3L0UkIlG3_6wwmON_kQFKQA4FtEzcVVVFhTTKE,119594
|
|
212
212
|
angr/analyses/decompiler/structuring/recursive_structurer.py,sha256=hr47-tqWexOXbTRZZlRyEE4T-PGwuZcv58xc16Hliec,7078
|
|
213
213
|
angr/analyses/decompiler/structuring/structurer_base.py,sha256=orV0jRqRh2hkKNsdBwigm5OoXTQDP7dfY6go_Z4if1Q,41330
|
|
214
214
|
angr/analyses/decompiler/structuring/structurer_nodes.py,sha256=PE_byL1mxj811MMM-qQWzSaITtcu5Xn0ZKz0yobnK-k,11964
|
|
@@ -334,7 +334,7 @@ angr/engines/syscall.py,sha256=LNMC3zyis3OiWC7_8Zn1blMw1EDib5FjUqepXlaWDTI,2177
|
|
|
334
334
|
angr/engines/unicorn.py,sha256=gf7LjjWyaaujqSuCq3d-BGm8t5sdZjzsJeBevGfdiLw,24447
|
|
335
335
|
angr/engines/light/__init__.py,sha256=j9vH2fU9MaNVQ8NT3Ek3Tj2zkGlVxlKyzia8zVTofYs,186
|
|
336
336
|
angr/engines/light/data.py,sha256=jZBAJxor2zg5m4s63joSrjUs8H-OeHBZiqZmc3dqEQQ,23132
|
|
337
|
-
angr/engines/light/engine.py,sha256=
|
|
337
|
+
angr/engines/light/engine.py,sha256=wL1OdFcu6nHBopFxLSMJSU1C2mwnC88BCVnwYME2XKY,45137
|
|
338
338
|
angr/engines/pcode/__init__.py,sha256=UwMEwXQvHXIIgedJn2ZOvBBEgfHg2rfREBSpcTSXCZ4,83
|
|
339
339
|
angr/engines/pcode/behavior.py,sha256=gwMFXQ3cibqchRHnRfiVzzzLIg2mgX-2XJlkD82p8J0,28720
|
|
340
340
|
angr/engines/pcode/cc.py,sha256=lwMeO9Mg8L7-uxxPzYmu13n7YLNo-Sr3xxLk_-QHTOU,2994
|
|
@@ -485,7 +485,7 @@ angr/knowledge_plugins/xrefs/__init__.py,sha256=-5A2h048WTRu6Et7q7bqlc-AyBXNuJ9A
|
|
|
485
485
|
angr/knowledge_plugins/xrefs/xref.py,sha256=w4wjDFl4xtJYOtJplp9s1AIX3wI1RE71po3ufh1M4aY,4963
|
|
486
486
|
angr/knowledge_plugins/xrefs/xref_manager.py,sha256=OLHEmgwGbFYWhm6oMgglPQ8Fe7rAvKicFeyQoGqSylc,4009
|
|
487
487
|
angr/knowledge_plugins/xrefs/xref_types.py,sha256=VR3xLQQ-gUg25oX0OL3BJHyQRlZh2A8syBac9ZMS9n4,271
|
|
488
|
-
angr/lib/angr_native.dylib,sha256=
|
|
488
|
+
angr/lib/angr_native.dylib,sha256=LFUvtigwTIBAtJNjbK9mpkpgLynv7fm85Z5mr4ngXuE,18589760
|
|
489
489
|
angr/misc/__init__.py,sha256=Ct-Q6-c-Frdz5Ihkqmou3j_1jyJi8WJXlQxs-gPQg0Y,237
|
|
490
490
|
angr/misc/ansi.py,sha256=TKrx7d_MViChHh5RBR2VLufNrujTUioJWsZS5ugk8k4,807
|
|
491
491
|
angr/misc/autoimport.py,sha256=K64D53xl3xUqBulXAyaypzqYRBjjm4HDn6TlJsBouKw,3426
|
|
@@ -1175,7 +1175,7 @@ angr/protos/xrefs_pb2.py,sha256=uze_1xvipKxY7Xrpxl6BJC6OCwp3_-B62S81FlzXl2Q,1247
|
|
|
1175
1175
|
angr/simos/__init__.py,sha256=lqiR4H7KgNd8uzQT5OYsvrcb3l3moCoxBP-O-UMzPjM,755
|
|
1176
1176
|
angr/simos/cgc.py,sha256=13dtMvJhD7nCLEH1n6nAMR4IbG1WYc8jQ_ASZsP85yU,5568
|
|
1177
1177
|
angr/simos/javavm.py,sha256=NKwosYvx4-_gsT7eGmHHIZNzzdF-T0xK0BuXobrI8oQ,21461
|
|
1178
|
-
angr/simos/linux.py,sha256=
|
|
1178
|
+
angr/simos/linux.py,sha256=l4HN7M3puiKW3hqA3yALBMcAYhDCo7aZGbnhJz-Q9_w,23625
|
|
1179
1179
|
angr/simos/simos.py,sha256=UbhjUTsowcnXBBu6k31Bt5ZNx1QS1ly146q_66TY23g,18275
|
|
1180
1180
|
angr/simos/snimmuc_nxp.py,sha256=Uy43SwCjnKFo207fVz-h0vzwRk-RnIACz1C0Ly3ftw4,5679
|
|
1181
1181
|
angr/simos/userland.py,sha256=a0x1UYVQ0x7Wgnu4PtedS2-7kS4vLqoYNqEwo7Z_5fw,7351
|
|
@@ -1289,9 +1289,9 @@ angr/utils/mp.py,sha256=EPeBml7i1HNOg9OFvj-hoqaGJzKD4fKyM-mHWIaJ3Ko,1825
|
|
|
1289
1289
|
angr/utils/segment_list.py,sha256=lhGy16YKKaD-F0JtWmjJ6a2RFcdTrKcLfPE9ILRVtCs,20431
|
|
1290
1290
|
angr/utils/timing.py,sha256=uOowCP8kotDrKDOjlAod-guBuYkAA8zEtiAwpdwMlIU,1334
|
|
1291
1291
|
angr/utils/typing.py,sha256=_I4dzZSh1_uRKQ3PpjXseA_CaJH6ru2yAxjICkJhfmI,417
|
|
1292
|
-
angr-9.2.
|
|
1293
|
-
angr-9.2.
|
|
1294
|
-
angr-9.2.
|
|
1295
|
-
angr-9.2.
|
|
1296
|
-
angr-9.2.
|
|
1297
|
-
angr-9.2.
|
|
1292
|
+
angr-9.2.100.dist-info/LICENSE,sha256=cgL_ho5B1NH8UxwtBuqThRWdjear8b7hktycaS1sz6g,1327
|
|
1293
|
+
angr-9.2.100.dist-info/METADATA,sha256=jWkP9n6JsEwoMfQGCNfHhYIHeLC7-si49-2qg88oJ4A,4802
|
|
1294
|
+
angr-9.2.100.dist-info/WHEEL,sha256=YBuZgLbEquNCbbbQPlLFm_OOe1fPwf91V3LBhwgnks4,107
|
|
1295
|
+
angr-9.2.100.dist-info/entry_points.txt,sha256=Vjh1C8PMyr5dZFMnik5WkEP01Uwr2T73I3a6N32sgQU,44
|
|
1296
|
+
angr-9.2.100.dist-info/top_level.txt,sha256=dKw0KWTbwLXytFvv15oAAG4sUs3ey47tt6DorJG9-hw,5
|
|
1297
|
+
angr-9.2.100.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|