angr 9.2.147__py3-none-macosx_11_0_arm64.whl → 9.2.149__py3-none-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.
- angr/__init__.py +1 -1
- angr/analyses/analysis.py +3 -11
- angr/analyses/calling_convention/calling_convention.py +42 -2
- angr/analyses/calling_convention/fact_collector.py +5 -4
- angr/analyses/calling_convention/utils.py +1 -0
- angr/analyses/cfg/cfg_base.py +3 -59
- angr/analyses/cfg/cfg_emulated.py +17 -14
- angr/analyses/cfg/cfg_fast.py +68 -63
- angr/analyses/cfg/cfg_fast_soot.py +3 -3
- angr/analyses/decompiler/ail_simplifier.py +65 -32
- angr/analyses/decompiler/block_simplifier.py +20 -6
- angr/analyses/decompiler/callsite_maker.py +28 -18
- angr/analyses/decompiler/clinic.py +84 -17
- angr/analyses/decompiler/condition_processor.py +0 -21
- angr/analyses/decompiler/counters/call_counter.py +3 -0
- angr/analyses/decompiler/dephication/rewriting_engine.py +24 -2
- angr/analyses/decompiler/optimization_passes/__init__.py +5 -0
- angr/analyses/decompiler/optimization_passes/base_ptr_save_simplifier.py +15 -13
- angr/analyses/decompiler/optimization_passes/const_prop_reverter.py +1 -1
- angr/analyses/decompiler/optimization_passes/determine_load_sizes.py +64 -0
- angr/analyses/decompiler/optimization_passes/eager_std_string_concatenation.py +165 -0
- angr/analyses/decompiler/optimization_passes/engine_base.py +11 -2
- angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +17 -2
- angr/analyses/decompiler/optimization_passes/optimization_pass.py +10 -6
- angr/analyses/decompiler/optimization_passes/win_stack_canary_simplifier.py +99 -30
- angr/analyses/decompiler/peephole_optimizations/__init__.py +6 -0
- angr/analyses/decompiler/peephole_optimizations/base.py +43 -3
- angr/analyses/decompiler/peephole_optimizations/constant_derefs.py +1 -1
- angr/analyses/decompiler/peephole_optimizations/inlined_strcpy.py +3 -0
- angr/analyses/decompiler/peephole_optimizations/inlined_strcpy_consolidation.py +4 -1
- angr/analyses/decompiler/peephole_optimizations/remove_cxx_destructor_calls.py +32 -0
- angr/analyses/decompiler/peephole_optimizations/remove_redundant_bitmasks.py +69 -2
- angr/analyses/decompiler/peephole_optimizations/remove_redundant_conversions.py +14 -0
- angr/analyses/decompiler/peephole_optimizations/rewrite_conv_mul.py +40 -0
- angr/analyses/decompiler/peephole_optimizations/rewrite_cxx_operator_calls.py +90 -0
- angr/analyses/decompiler/presets/fast.py +2 -0
- angr/analyses/decompiler/presets/full.py +2 -0
- angr/analyses/decompiler/ssailification/rewriting_engine.py +51 -4
- angr/analyses/decompiler/ssailification/ssailification.py +23 -3
- angr/analyses/decompiler/ssailification/traversal_engine.py +15 -1
- angr/analyses/decompiler/structured_codegen/c.py +146 -15
- angr/analyses/decompiler/structuring/phoenix.py +11 -3
- angr/analyses/decompiler/utils.py +6 -1
- angr/analyses/deobfuscator/api_obf_finder.py +5 -1
- angr/analyses/deobfuscator/api_obf_peephole_optimizer.py +1 -1
- angr/analyses/forward_analysis/visitors/graph.py +0 -8
- angr/analyses/identifier/runner.py +1 -1
- angr/analyses/reaching_definitions/function_handler.py +4 -4
- angr/analyses/reassembler.py +1 -1
- angr/analyses/s_reaching_definitions/s_rda_view.py +1 -0
- angr/analyses/stack_pointer_tracker.py +1 -1
- angr/analyses/static_hooker.py +11 -9
- angr/analyses/typehoon/lifter.py +20 -0
- angr/analyses/typehoon/simple_solver.py +42 -9
- angr/analyses/typehoon/translator.py +4 -1
- angr/analyses/typehoon/typeconsts.py +17 -6
- angr/analyses/typehoon/typehoon.py +21 -5
- angr/analyses/variable_recovery/engine_ail.py +52 -13
- angr/analyses/variable_recovery/engine_base.py +37 -12
- angr/analyses/variable_recovery/variable_recovery_fast.py +33 -2
- angr/calling_conventions.py +96 -27
- angr/engines/light/engine.py +7 -0
- angr/exploration_techniques/director.py +1 -1
- angr/knowledge_plugins/functions/function.py +109 -38
- angr/knowledge_plugins/functions/function_manager.py +9 -0
- angr/knowledge_plugins/functions/function_parser.py +9 -1
- angr/knowledge_plugins/functions/soot_function.py +1 -1
- angr/knowledge_plugins/key_definitions/key_definition_manager.py +1 -1
- angr/knowledge_plugins/propagations/states.py +5 -2
- angr/knowledge_plugins/variables/variable_manager.py +3 -3
- angr/lib/angr_native.dylib +0 -0
- angr/procedures/definitions/__init__.py +15 -12
- angr/procedures/definitions/types_stl.py +22 -0
- angr/procedures/stubs/format_parser.py +1 -1
- angr/project.py +23 -29
- angr/protos/cfg_pb2.py +14 -25
- angr/protos/function_pb2.py +11 -22
- angr/protos/primitives_pb2.py +36 -47
- angr/protos/variables_pb2.py +28 -39
- angr/protos/xrefs_pb2.py +8 -19
- angr/sim_type.py +251 -146
- angr/simos/cgc.py +1 -1
- angr/simos/linux.py +5 -5
- angr/simos/windows.py +5 -5
- angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +1 -1
- {angr-9.2.147.dist-info → angr-9.2.149.dist-info}/METADATA +9 -8
- {angr-9.2.147.dist-info → angr-9.2.149.dist-info}/RECORD +91 -85
- {angr-9.2.147.dist-info → angr-9.2.149.dist-info}/WHEEL +1 -1
- {angr-9.2.147.dist-info → angr-9.2.149.dist-info/licenses}/LICENSE +3 -0
- {angr-9.2.147.dist-info → angr-9.2.149.dist-info}/entry_points.txt +0 -0
- {angr-9.2.147.dist-info → angr-9.2.149.dist-info}/top_level.txt +0 -0
angr/project.py
CHANGED
|
@@ -14,7 +14,6 @@ from archinfo.arch_soot import SootAddressDescriptor, ArchSoot
|
|
|
14
14
|
import cle
|
|
15
15
|
from .sim_procedure import SimProcedure
|
|
16
16
|
|
|
17
|
-
from .misc.ux import deprecated
|
|
18
17
|
from .errors import AngrNoPluginError
|
|
19
18
|
|
|
20
19
|
l = logging.getLogger(name=__name__)
|
|
@@ -300,16 +299,17 @@ class Project:
|
|
|
300
299
|
missing_libs = []
|
|
301
300
|
for lib_name in self.loader.missing_dependencies:
|
|
302
301
|
try:
|
|
303
|
-
missing_libs.
|
|
302
|
+
missing_libs.extend(SIM_LIBRARIES[lib_name])
|
|
304
303
|
except KeyError:
|
|
305
304
|
l.info("There are no simprocedures for missing library %s :(", lib_name)
|
|
306
305
|
# additionally provide libraries we _have_ loaded as a fallback fallback
|
|
307
306
|
# this helps in the case that e.g. CLE picked up a linux arm libc to satisfy an android arm binary
|
|
308
307
|
for lib in self.loader.all_objects:
|
|
309
308
|
if lib.provides is not None and lib.provides in SIM_LIBRARIES:
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
missing_libs
|
|
309
|
+
simlibs = SIM_LIBRARIES[lib.provides]
|
|
310
|
+
for simlib in simlibs:
|
|
311
|
+
if simlib not in missing_libs:
|
|
312
|
+
missing_libs.append(simlib)
|
|
313
313
|
|
|
314
314
|
# Step 2: Categorize every "import" symbol in each object.
|
|
315
315
|
# If it's IGNORED, mark it for stubbing
|
|
@@ -362,11 +362,13 @@ class Project:
|
|
|
362
362
|
owner_name = owner_name.lower()
|
|
363
363
|
if owner_name not in SIM_LIBRARIES:
|
|
364
364
|
continue
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
365
|
+
sim_libs = SIM_LIBRARIES[owner_name]
|
|
366
|
+
for sim_lib in sim_libs:
|
|
367
|
+
if not sim_lib.has_implementation(export.name):
|
|
368
|
+
continue
|
|
369
|
+
l.info("Using builtin SimProcedure for %s from %s", export.name, sim_lib.name)
|
|
370
|
+
self.hook_symbol(export.rebased_addr, sim_lib.get(export.name, sim_proc_arch))
|
|
371
|
+
break
|
|
370
372
|
|
|
371
373
|
# Step 2.3: If 2.2 didn't work, check if the symbol wants to be resolved
|
|
372
374
|
# by a library we already know something about. Resolve it appropriately.
|
|
@@ -375,7 +377,7 @@ class Project:
|
|
|
375
377
|
# we still want to try as hard as we can to figure out where it comes from
|
|
376
378
|
# so we can get the calling convention as close to right as possible.
|
|
377
379
|
elif reloc.resolvewith is not None and reloc.resolvewith in SIM_LIBRARIES:
|
|
378
|
-
sim_lib = SIM_LIBRARIES[reloc.resolvewith]
|
|
380
|
+
sim_lib = sorted(SIM_LIBRARIES[reloc.resolvewith], key=lambda lib: lib.has_prototype(export.name))[-1]
|
|
379
381
|
if self._check_user_blacklists(export.name):
|
|
380
382
|
if not func.is_weak:
|
|
381
383
|
l.info("Using stub SimProcedure for unresolved %s from %s", func.name, sim_lib.name)
|
|
@@ -407,7 +409,7 @@ class Project:
|
|
|
407
409
|
if export.name and export.name.startswith("_Z"):
|
|
408
410
|
# GNU C++ name. Use a C++ library to create the stub
|
|
409
411
|
if "libstdc++.so" in SIM_LIBRARIES:
|
|
410
|
-
the_lib = SIM_LIBRARIES["libstdc++.so"]
|
|
412
|
+
the_lib = SIM_LIBRARIES["libstdc++.so"][0]
|
|
411
413
|
else:
|
|
412
414
|
l.critical(
|
|
413
415
|
"Does not find any C++ library in SIM_LIBRARIES. We may not correctly "
|
|
@@ -437,16 +439,17 @@ class Project:
|
|
|
437
439
|
"""
|
|
438
440
|
# First, filter the SIM_LIBRARIES to a reasonable subset based on the hint
|
|
439
441
|
if hint == "win":
|
|
440
|
-
hinted_libs =
|
|
442
|
+
hinted_libs = [lib for lib in SIM_LIBRARIES if lib.endswith(".dll")]
|
|
441
443
|
else:
|
|
442
|
-
hinted_libs =
|
|
444
|
+
hinted_libs = [lib for lib in SIM_LIBRARIES if ".so" in lib]
|
|
443
445
|
|
|
444
446
|
for lib in hinted_libs:
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
447
|
+
for simlib in SIM_LIBRARIES[lib]:
|
|
448
|
+
if simlib.has_implementation(f.name):
|
|
449
|
+
l.debug("Found implementation for %s in %s", f, lib)
|
|
450
|
+
hook_at = f.resolvedby.rebased_addr if f.resolvedby else f.relative_addr # ????
|
|
451
|
+
self.hook_symbol(hook_at, (simlib.get(f.name, self.arch)))
|
|
452
|
+
return True
|
|
450
453
|
|
|
451
454
|
l.debug("Could not find matching SimProcedure for %s, ignoring.", f.name)
|
|
452
455
|
return False
|
|
@@ -826,18 +829,9 @@ class Project:
|
|
|
826
829
|
def __repr__(self):
|
|
827
830
|
return "<Project %s>" % (self.filename if self.filename is not None else "loaded from stream")
|
|
828
831
|
|
|
829
|
-
#
|
|
830
|
-
# Compatibility
|
|
831
|
-
#
|
|
832
|
-
|
|
833
|
-
@property
|
|
834
|
-
@deprecated(replacement="simos")
|
|
835
|
-
def _simos(self):
|
|
836
|
-
return self.simos
|
|
837
|
-
|
|
838
832
|
|
|
839
833
|
from .factory import AngrObjectFactory
|
|
840
|
-
from
|
|
834
|
+
from .simos import SimOS, os_mapping
|
|
841
835
|
from .analyses.analysis import AnalysesHub, AnalysesHubWithDefault
|
|
842
836
|
from .knowledge_base import KnowledgeBase
|
|
843
837
|
from .procedures import SIM_PROCEDURES, SIM_LIBRARIES
|
angr/protos/cfg_pb2.py
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
2
|
-
# NO CHECKED-IN PROTOBUF GENCODE
|
|
3
2
|
# source: angr/protos/cfg.proto
|
|
4
|
-
# Protobuf Python Version: 5.28.2
|
|
5
3
|
"""Generated protocol buffer code."""
|
|
4
|
+
from google.protobuf.internal import builder as _builder
|
|
6
5
|
from google.protobuf import descriptor as _descriptor
|
|
7
6
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
-
from google.protobuf import runtime_version as _runtime_version
|
|
9
7
|
from google.protobuf import symbol_database as _symbol_database
|
|
10
|
-
from google.protobuf.internal import builder as _builder
|
|
11
|
-
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
12
|
-
_runtime_version.Domain.PUBLIC,
|
|
13
|
-
5,
|
|
14
|
-
28,
|
|
15
|
-
2,
|
|
16
|
-
'',
|
|
17
|
-
'angr/protos/cfg.proto'
|
|
18
|
-
)
|
|
19
8
|
# @@protoc_insertion_point(imports)
|
|
20
9
|
|
|
21
10
|
_sym_db = _symbol_database.Default()
|
|
@@ -26,17 +15,17 @@ from angr.protos import primitives_pb2 as angr_dot_protos_dot_primitives__pb2
|
|
|
26
15
|
|
|
27
16
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x61ngr/protos/cfg.proto\x12\x0b\x61ngr.protos\x1a\x1c\x61ngr/protos/primitives.proto\"]\n\x07\x43\x46GNode\x12\n\n\x02\x65\x61\x18\x01 \x01(\x04\x12\x0c\n\x04size\x18\x02 \x01(\r\x12\x10\n\x08\x62lock_id\x18\x03 \x03(\x03\x12\x11\n\treturning\x18\x04 \x01(\x08\x12\x13\n\x0binstr_addrs\x18\x05 \x03(\x04\"\x9d\x01\n\x03\x43\x46G\x12\r\n\x05ident\x18\x01 \x01(\t\x12#\n\x05nodes\x18\x02 \x03(\x0b\x32\x14.angr.protos.CFGNode\x12 \n\x05\x65\x64ges\x18\x03 \x03(\x0b\x32\x11.angr.protos.Edge\x12,\n\x0bmemory_data\x18\x04 \x03(\x0b\x32\x17.angr.protos.MemoryData\x12\x12\n\nnormalized\x18\x05 \x01(\x08\"\xfb\x02\n\nMemoryData\x12\n\n\x02\x65\x61\x18\x01 \x01(\x04\x12\x11\n\x04size\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x34\n\x04type\x18\x03 \x01(\x0e\x32&.angr.protos.MemoryData.MemoryDataType\x12\x1b\n\x0ereference_size\x18\x04 \x01(\rH\x01\x88\x01\x01\"\xde\x01\n\x0eMemoryDataType\x12\x13\n\x0fUnknownDataType\x10\x00\x12\x0f\n\x0bUnspecified\x10\x01\x12\x0b\n\x07Integer\x10\x02\x12\x10\n\x0cPointerArray\x10\x03\x12\n\n\x06String\x10\x04\x12\x11\n\rUnicodeString\x10\x05\x12\x13\n\x0fSegmentBoundary\x10\x06\x12\x11\n\rCodeReference\x10\x07\x12\x0f\n\x0bGOTPLTEntry\x10\x08\x12\r\n\tELFHeader\x10\t\x12\x11\n\rFloatingPoint\x10\n\x12\r\n\tAlignment\x10\x0b\x42\x07\n\x05_sizeB\x11\n\x0f_reference_sizeb\x06proto3')
|
|
28
17
|
|
|
29
|
-
|
|
30
|
-
_builder.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
DESCRIPTOR.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
18
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
19
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'angr.protos.cfg_pb2', globals())
|
|
20
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
21
|
+
|
|
22
|
+
DESCRIPTOR._options = None
|
|
23
|
+
_CFGNODE._serialized_start=68
|
|
24
|
+
_CFGNODE._serialized_end=161
|
|
25
|
+
_CFG._serialized_start=164
|
|
26
|
+
_CFG._serialized_end=321
|
|
27
|
+
_MEMORYDATA._serialized_start=324
|
|
28
|
+
_MEMORYDATA._serialized_end=703
|
|
29
|
+
_MEMORYDATA_MEMORYDATATYPE._serialized_start=453
|
|
30
|
+
_MEMORYDATA_MEMORYDATATYPE._serialized_end=675
|
|
42
31
|
# @@protoc_insertion_point(module_scope)
|
angr/protos/function_pb2.py
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
2
|
-
# NO CHECKED-IN PROTOBUF GENCODE
|
|
3
2
|
# source: angr/protos/function.proto
|
|
4
|
-
# Protobuf Python Version: 5.28.2
|
|
5
3
|
"""Generated protocol buffer code."""
|
|
4
|
+
from google.protobuf.internal import builder as _builder
|
|
6
5
|
from google.protobuf import descriptor as _descriptor
|
|
7
6
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
-
from google.protobuf import runtime_version as _runtime_version
|
|
9
7
|
from google.protobuf import symbol_database as _symbol_database
|
|
10
|
-
from google.protobuf.internal import builder as _builder
|
|
11
|
-
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
12
|
-
_runtime_version.Domain.PUBLIC,
|
|
13
|
-
5,
|
|
14
|
-
28,
|
|
15
|
-
2,
|
|
16
|
-
'',
|
|
17
|
-
'angr/protos/function.proto'
|
|
18
|
-
)
|
|
19
8
|
# @@protoc_insertion_point(imports)
|
|
20
9
|
|
|
21
10
|
_sym_db = _symbol_database.Default()
|
|
@@ -24,15 +13,15 @@ _sym_db = _symbol_database.Default()
|
|
|
24
13
|
from angr.protos import primitives_pb2 as angr_dot_protos_dot_primitives__pb2
|
|
25
14
|
|
|
26
15
|
|
|
27
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x61ngr/protos/function.proto\x12\x0b\x61ngr.protos\x1a\x1c\x61ngr/protos/primitives.proto\"\
|
|
16
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x61ngr/protos/function.proto\x12\x0b\x61ngr.protos\x1a\x1c\x61ngr/protos/primitives.proto\"\x81\x04\n\x08\x46unction\x12\n\n\x02\x65\x61\x18\x01 \x01(\x04\x12\x15\n\ris_entrypoint\x18\x03 \x01(\x08\x12\"\n\x06\x62locks\x18\x02 \x03(\x0b\x32\x12.angr.protos.Block\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0e\n\x06is_plt\x18\x07 \x01(\x08\x12\x12\n\nis_syscall\x18\x08 \x01(\x08\x12\x17\n\x0fis_simprocedure\x18\t \x01(\x08\x12\x11\n\treturning\x18\n \x01(\x08\x12\x13\n\x0b\x62inary_name\x18\x0b \x01(\t\x12&\n\x05graph\x18\x0c \x01(\x0b\x32\x17.angr.protos.BlockGraph\x12\x1a\n\x12\x65xternal_functions\x18\r \x03(\x04\x12\x11\n\talignment\x18\x0e \x01(\x08\x12\x12\n\nnormalized\x18\x0f \x01(\x08\x12;\n\x0cmatched_from\x18\x10 \x01(\x0e\x32%.angr.protos.Function.SignatureSource\x12\x11\n\tprototype\x18\x11 \x01(\x0c\x12\x1a\n\x12\x63\x61lling_convention\x18\x12 \x01(\x0c\x12\x19\n\x11prototype_libname\x18\x13 \x01(\t\x12\x1c\n\x14is_prototype_guessed\x18\x14 \x01(\x08\"+\n\x0fSignatureSource\x12\r\n\tUNMATCHED\x10\x00\x12\t\n\x05\x46LIRT\x10\x01\x62\x06proto3')
|
|
17
|
+
|
|
18
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
19
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'angr.protos.function_pb2', globals())
|
|
20
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
_globals['_FUNCTION']._serialized_start=74
|
|
35
|
-
_globals['_FUNCTION']._serialized_end=483
|
|
36
|
-
_globals['_FUNCTION_SIGNATURESOURCE']._serialized_start=440
|
|
37
|
-
_globals['_FUNCTION_SIGNATURESOURCE']._serialized_end=483
|
|
22
|
+
DESCRIPTOR._options = None
|
|
23
|
+
_FUNCTION._serialized_start=74
|
|
24
|
+
_FUNCTION._serialized_end=587
|
|
25
|
+
_FUNCTION_SIGNATURESOURCE._serialized_start=544
|
|
26
|
+
_FUNCTION_SIGNATURESOURCE._serialized_end=587
|
|
38
27
|
# @@protoc_insertion_point(module_scope)
|
angr/protos/primitives_pb2.py
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
2
|
-
# NO CHECKED-IN PROTOBUF GENCODE
|
|
3
2
|
# source: angr/protos/primitives.proto
|
|
4
|
-
# Protobuf Python Version: 5.28.2
|
|
5
3
|
"""Generated protocol buffer code."""
|
|
4
|
+
from google.protobuf.internal import builder as _builder
|
|
6
5
|
from google.protobuf import descriptor as _descriptor
|
|
7
6
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
-
from google.protobuf import runtime_version as _runtime_version
|
|
9
7
|
from google.protobuf import symbol_database as _symbol_database
|
|
10
|
-
from google.protobuf.internal import builder as _builder
|
|
11
|
-
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
12
|
-
_runtime_version.Domain.PUBLIC,
|
|
13
|
-
5,
|
|
14
|
-
28,
|
|
15
|
-
2,
|
|
16
|
-
'',
|
|
17
|
-
'angr/protos/primitives.proto'
|
|
18
|
-
)
|
|
19
8
|
# @@protoc_insertion_point(imports)
|
|
20
9
|
|
|
21
10
|
_sym_db = _symbol_database.Default()
|
|
@@ -25,39 +14,39 @@ _sym_db = _symbol_database.Default()
|
|
|
25
14
|
|
|
26
15
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x61ngr/protos/primitives.proto\x12\x0b\x61ngr.protos\"\x87\x05\n\rCodeReference\x12:\n\x0btarget_type\x18\x01 \x01(\x0e\x32%.angr.protos.CodeReference.TargetType\x12<\n\x0coperand_type\x18\x02 \x01(\x0e\x32&.angr.protos.CodeReference.OperandType\x12\x35\n\x08location\x18\x03 \x01(\x0e\x32#.angr.protos.CodeReference.Location\x12\n\n\x02\x65\x61\x18\x04 \x01(\x04\x12\x0c\n\x04mask\x18\x05 \x01(\x04\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x0f\n\x07\x64\x61ta_ea\x18\x07 \x01(\x04\x12\x10\n\x08\x62lock_ea\x18\x08 \x01(\x04\x12\x10\n\x08stmt_idx\x18\t \x01(\x05\x12\x13\n\x0boperand_idx\x18\n \x01(\x05\x12:\n\x08ref_type\x18\x0b \x01(\x0e\x32(.angr.protos.CodeReference.ReferenceType\"=\n\nTargetType\x12\x0e\n\nCodeTarget\x10\x00\x12\x0e\n\nDataTarget\x10\x01\x12\x0f\n\x0bStackTarget\x10\x02\"~\n\x0bOperandType\x12\x14\n\x10ImmediateOperand\x10\x00\x12\x11\n\rMemoryOperand\x10\x01\x12\x1d\n\x19MemoryDisplacementOperand\x10\x02\x12\x16\n\x12\x43ontrolFlowOperand\x10\x03\x12\x0f\n\x0bOffsetTable\x10\x04\"&\n\x08Location\x12\x0c\n\x08Internal\x10\x00\x12\x0c\n\x08\x45xternal\x10\x01\"0\n\rReferenceType\x12\n\n\x06offset\x10\x00\x12\x08\n\x04read\x10\x01\x12\t\n\x05write\x10\x02\"k\n\x0bInstruction\x12\n\n\x02\x65\x61\x18\x01 \x01(\x04\x12\r\n\x05\x62ytes\x18\x02 \x01(\x0c\x12)\n\x05xrefs\x18\x03 \x01(\x0b\x32\x1a.angr.protos.CodeReference\x12\x16\n\x0elocal_noreturn\x18\x04 \x01(\x08\"`\n\x05\x42lock\x12\n\n\x02\x65\x61\x18\x01 \x01(\x04\x12.\n\x0cinstructions\x18\x02 \x01(\x0b\x32\x18.angr.protos.Instruction\x12\x0c\n\x04size\x18\x04 \x01(\r\x12\r\n\x05\x62ytes\x18\x05 \x01(\x0c\"\x95\x02\n\x10\x45xternalFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02\x65\x61\x18\x02 \x01(\x04\x12;\n\x02\x63\x63\x18\x03 \x01(\x0e\x32/.angr.protos.ExternalFunction.CallingConvention\x12\x12\n\nhas_return\x18\x04 \x01(\x08\x12\x11\n\tno_return\x18\x05 \x01(\x08\x12\x16\n\x0e\x61rgument_count\x18\x06 \x01(\x05\x12\x0f\n\x07is_weak\x18\x07 \x01(\x08\x12\x11\n\tprototype\x18\x08 \x01(\t\"G\n\x11\x43\x61llingConvention\x12\x11\n\rCallerCleanup\x10\x00\x12\x11\n\rCalleeCleanup\x10\x01\x12\x0c\n\x08\x46\x61stCall\x10\x02\"d\n\x10\x45xternalVariable\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02\x65\x61\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\r\x12\x0f\n\x07is_weak\x18\x04 \x01(\x08\x12\x17\n\x0fis_thread_local\x18\x05 \x01(\x08\"\xdf\x05\n\x04\x45\x64ge\x12\x0e\n\x06src_ea\x18\x01 \x01(\x04\x12\x0e\n\x06\x64st_ea\x18\x02 \x01(\x04\x12,\n\x08jumpkind\x18\x03 \x01(\x0e\x32\x1a.angr.protos.Edge.JumpKind\x12\x12\n\nis_outside\x18\x04 \x01(\x08\x12\x10\n\x08ins_addr\x18\x05 \x01(\x04\x12\x10\n\x08stmt_idx\x18\x06 \x01(\x03\x12)\n\x04\x64\x61ta\x18\x07 \x03(\x0b\x32\x1b.angr.protos.Edge.DataEntry\x1a+\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xf8\x03\n\x08JumpKind\x12\x13\n\x0fUnknownJumpkind\x10\x00\x12\n\n\x06\x42oring\x10\x01\x12\x08\n\x04\x43\x61ll\x10\x02\x12\n\n\x06Return\x10\x03\x12\x0e\n\nFakeReturn\x10\x04\x12\x0b\n\x07Syscall\x10\x05\x12\x0f\n\x0bSys_syscall\x10\x06\x12\x0e\n\nSys_int128\x10\x07\x12\x0c\n\x08NoDecode\x10\x08\x12\n\n\x06\x45mWarn\x10\t\x12\x11\n\rSigFPE_IntDiv\x10\n\x12\x0b\n\x07SigTRAP\x10\x0b\x12\x0b\n\x07SigSEGV\x10\x0c\x12\x0b\n\x07MapFail\x10\r\x12\x0b\n\x07NoRedir\x10\x0e\x12\r\n\tClientReq\x10\x0f\x12\r\n\tException\x10\x10\x12\n\n\x06_8jzf8\x10\x11\x12\n\n\x06\x45mFail\x10\x12\x12\x0f\n\x0b\x46lushDCache\x10\x13\x12\x0f\n\x0bInvalICache\x10\x14\x12\x0e\n\nPrivileged\x10\x15\x12\n\n\x06SigBUS\x10\x16\x12\x11\n\rSigFPE_IntOvf\x10\x17\x12\n\n\x06SigILL\x10\x18\x12\x0e\n\nSys_int129\x10\x19\x12\x0e\n\nSys_int130\x10\x1a\x12\x0e\n\nSys_int145\x10\x1b\x12\x0e\n\nSys_int210\x10\x1c\x12\r\n\tSys_int32\x10\x1d\x12\x10\n\x0cSys_sysenter\x10\x1e\x12\t\n\x05Yield\x10\x1f\x12\n\n\x06SigFPE\x10 \x12\x0b\n\x07Sys_int\x10!\".\n\nBlockGraph\x12 \n\x05\x65\x64ges\x18\x01 \x03(\x0b\x32\x11.angr.protos.Edgeb\x06proto3')
|
|
27
16
|
|
|
28
|
-
|
|
29
|
-
_builder.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
DESCRIPTOR.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
17
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
18
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'angr.protos.primitives_pb2', globals())
|
|
19
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
20
|
+
|
|
21
|
+
DESCRIPTOR._options = None
|
|
22
|
+
_EDGE_DATAENTRY._options = None
|
|
23
|
+
_EDGE_DATAENTRY._serialized_options = b'8\001'
|
|
24
|
+
_CODEREFERENCE._serialized_start=46
|
|
25
|
+
_CODEREFERENCE._serialized_end=693
|
|
26
|
+
_CODEREFERENCE_TARGETTYPE._serialized_start=414
|
|
27
|
+
_CODEREFERENCE_TARGETTYPE._serialized_end=475
|
|
28
|
+
_CODEREFERENCE_OPERANDTYPE._serialized_start=477
|
|
29
|
+
_CODEREFERENCE_OPERANDTYPE._serialized_end=603
|
|
30
|
+
_CODEREFERENCE_LOCATION._serialized_start=605
|
|
31
|
+
_CODEREFERENCE_LOCATION._serialized_end=643
|
|
32
|
+
_CODEREFERENCE_REFERENCETYPE._serialized_start=645
|
|
33
|
+
_CODEREFERENCE_REFERENCETYPE._serialized_end=693
|
|
34
|
+
_INSTRUCTION._serialized_start=695
|
|
35
|
+
_INSTRUCTION._serialized_end=802
|
|
36
|
+
_BLOCK._serialized_start=804
|
|
37
|
+
_BLOCK._serialized_end=900
|
|
38
|
+
_EXTERNALFUNCTION._serialized_start=903
|
|
39
|
+
_EXTERNALFUNCTION._serialized_end=1180
|
|
40
|
+
_EXTERNALFUNCTION_CALLINGCONVENTION._serialized_start=1109
|
|
41
|
+
_EXTERNALFUNCTION_CALLINGCONVENTION._serialized_end=1180
|
|
42
|
+
_EXTERNALVARIABLE._serialized_start=1182
|
|
43
|
+
_EXTERNALVARIABLE._serialized_end=1282
|
|
44
|
+
_EDGE._serialized_start=1285
|
|
45
|
+
_EDGE._serialized_end=2020
|
|
46
|
+
_EDGE_DATAENTRY._serialized_start=1470
|
|
47
|
+
_EDGE_DATAENTRY._serialized_end=1513
|
|
48
|
+
_EDGE_JUMPKIND._serialized_start=1516
|
|
49
|
+
_EDGE_JUMPKIND._serialized_end=2020
|
|
50
|
+
_BLOCKGRAPH._serialized_start=2022
|
|
51
|
+
_BLOCKGRAPH._serialized_end=2068
|
|
63
52
|
# @@protoc_insertion_point(module_scope)
|
angr/protos/variables_pb2.py
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
2
|
-
# NO CHECKED-IN PROTOBUF GENCODE
|
|
3
2
|
# source: angr/protos/variables.proto
|
|
4
|
-
# Protobuf Python Version: 5.28.2
|
|
5
3
|
"""Generated protocol buffer code."""
|
|
4
|
+
from google.protobuf.internal import builder as _builder
|
|
6
5
|
from google.protobuf import descriptor as _descriptor
|
|
7
6
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
-
from google.protobuf import runtime_version as _runtime_version
|
|
9
7
|
from google.protobuf import symbol_database as _symbol_database
|
|
10
|
-
from google.protobuf.internal import builder as _builder
|
|
11
|
-
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
12
|
-
_runtime_version.Domain.PUBLIC,
|
|
13
|
-
5,
|
|
14
|
-
28,
|
|
15
|
-
2,
|
|
16
|
-
'',
|
|
17
|
-
'angr/protos/variables.proto'
|
|
18
|
-
)
|
|
19
8
|
# @@protoc_insertion_point(imports)
|
|
20
9
|
|
|
21
10
|
_sym_db = _symbol_database.Default()
|
|
@@ -25,31 +14,31 @@ _sym_db = _symbol_database.Default()
|
|
|
25
14
|
|
|
26
15
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x61ngr/protos/variables.proto\x12\x0b\x61ngr.protos\"\x90\x01\n\x0cVariableBase\x12\r\n\x05ident\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x06region\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x15\n\x08\x63\x61tegory\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x0f\n\x07renamed\x18\x05 \x01(\x08\x12\x0e\n\x06is_phi\x18\x06 \x01(\x08\x42\t\n\x07_regionB\x0b\n\t_category\"L\n\x11TemporaryVariable\x12\'\n\x04\x62\x61se\x18\x01 \x01(\x0b\x32\x19.angr.protos.VariableBase\x12\x0e\n\x06tmp_id\x18\x02 \x01(\r\"V\n\x10RegisterVariable\x12\'\n\x04\x62\x61se\x18\x01 \x01(\x0b\x32\x19.angr.protos.VariableBase\x12\x0b\n\x03reg\x18\x02 \x01(\r\x12\x0c\n\x04size\x18\x03 \x01(\r\"U\n\x0eMemoryVariable\x12\'\n\x04\x62\x61se\x18\x01 \x01(\x0b\x32\x19.angr.protos.VariableBase\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\r\"u\n\rStackVariable\x12\'\n\x04\x62\x61se\x18\x01 \x01(\x0b\x32\x19.angr.protos.VariableBase\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\r\x12\x0f\n\x07sp_base\x18\x04 \x01(\x08\x12\x0e\n\x06offset\x18\x05 \x01(\x05\"\x9c\x02\n\x0eVariableAccess\x12\r\n\x05ident\x18\x01 \x01(\t\x12\x12\n\nblock_addr\x18\x02 \x01(\x04\x12\x10\n\x08stmt_idx\x18\x03 \x01(\x05\x12\x10\n\x08ins_addr\x18\x04 \x01(\x04\x12\x13\n\x06offset\x18\x05 \x01(\x03H\x00\x88\x01\x01\x12\x43\n\x0b\x61\x63\x63\x65ss_type\x18\x06 \x01(\x0e\x32..angr.protos.VariableAccess.VariableAccessSort\x12\x16\n\tatom_hash\x18\x07 \x01(\rH\x01\x88\x01\x01\"8\n\x12VariableAccessSort\x12\t\n\x05WRITE\x10\x00\x12\x08\n\x04READ\x10\x01\x12\r\n\tREFERENCE\x10\x02\x42\t\n\x07_offsetB\x0c\n\n_atom_hash\"/\n\x0cVariableType\x12\r\n\x05ident\x18\x01 \x01(\t\x12\x10\n\x08var_type\x18\x02 \x01(\t\";\n\x0bVar2Unified\x12\x11\n\tvar_ident\x18\x01 \x01(\t\x12\x19\n\x11unified_var_ident\x18\x02 \x01(\t\"/\n\x07Phi2Var\x12\x11\n\tphi_ident\x18\x01 \x01(\t\x12\x11\n\tvar_ident\x18\x02 \x01(\t\"\xe6\x04\n\x17VariableManagerInternal\x12\x30\n\x08tempvars\x18\x01 \x03(\x0b\x32\x1e.angr.protos.TemporaryVariable\x12.\n\x07regvars\x18\x02 \x03(\x0b\x32\x1d.angr.protos.RegisterVariable\x12,\n\x07memvars\x18\x03 \x03(\x0b\x32\x1b.angr.protos.MemoryVariable\x12-\n\tstackvars\x18\x04 \x03(\x0b\x32\x1a.angr.protos.StackVariable\x12-\n\x08\x61\x63\x63\x65sses\x18\x05 \x03(\x0b\x32\x1b.angr.protos.VariableAccess\x12\x38\n\x10unified_tempvars\x18\x06 \x03(\x0b\x32\x1e.angr.protos.TemporaryVariable\x12\x36\n\x0funified_regvars\x18\x07 \x03(\x0b\x32\x1d.angr.protos.RegisterVariable\x12\x34\n\x0funified_memvars\x18\x08 \x03(\x0b\x32\x1b.angr.protos.MemoryVariable\x12\x35\n\x11unified_stackvars\x18\t \x03(\x0b\x32\x1a.angr.protos.StackVariable\x12-\n\x0bvar2unified\x18\n \x03(\x0b\x32\x18.angr.protos.Var2Unified\x12(\n\x05types\x18\x0b \x03(\x0b\x32\x19.angr.protos.VariableType\x12%\n\x07phi2var\x18\x0c \x03(\x0b\x32\x14.angr.protos.Phi2Varb\x06proto3')
|
|
27
16
|
|
|
28
|
-
|
|
29
|
-
_builder.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
DESCRIPTOR.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
17
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
18
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'angr.protos.variables_pb2', globals())
|
|
19
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
20
|
+
|
|
21
|
+
DESCRIPTOR._options = None
|
|
22
|
+
_VARIABLEBASE._serialized_start=45
|
|
23
|
+
_VARIABLEBASE._serialized_end=189
|
|
24
|
+
_TEMPORARYVARIABLE._serialized_start=191
|
|
25
|
+
_TEMPORARYVARIABLE._serialized_end=267
|
|
26
|
+
_REGISTERVARIABLE._serialized_start=269
|
|
27
|
+
_REGISTERVARIABLE._serialized_end=355
|
|
28
|
+
_MEMORYVARIABLE._serialized_start=357
|
|
29
|
+
_MEMORYVARIABLE._serialized_end=442
|
|
30
|
+
_STACKVARIABLE._serialized_start=444
|
|
31
|
+
_STACKVARIABLE._serialized_end=561
|
|
32
|
+
_VARIABLEACCESS._serialized_start=564
|
|
33
|
+
_VARIABLEACCESS._serialized_end=848
|
|
34
|
+
_VARIABLEACCESS_VARIABLEACCESSSORT._serialized_start=767
|
|
35
|
+
_VARIABLEACCESS_VARIABLEACCESSSORT._serialized_end=823
|
|
36
|
+
_VARIABLETYPE._serialized_start=850
|
|
37
|
+
_VARIABLETYPE._serialized_end=897
|
|
38
|
+
_VAR2UNIFIED._serialized_start=899
|
|
39
|
+
_VAR2UNIFIED._serialized_end=958
|
|
40
|
+
_PHI2VAR._serialized_start=960
|
|
41
|
+
_PHI2VAR._serialized_end=1007
|
|
42
|
+
_VARIABLEMANAGERINTERNAL._serialized_start=1010
|
|
43
|
+
_VARIABLEMANAGERINTERNAL._serialized_end=1624
|
|
55
44
|
# @@protoc_insertion_point(module_scope)
|
angr/protos/xrefs_pb2.py
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
2
|
-
# NO CHECKED-IN PROTOBUF GENCODE
|
|
3
2
|
# source: angr/protos/xrefs.proto
|
|
4
|
-
# Protobuf Python Version: 5.28.2
|
|
5
3
|
"""Generated protocol buffer code."""
|
|
4
|
+
from google.protobuf.internal import builder as _builder
|
|
6
5
|
from google.protobuf import descriptor as _descriptor
|
|
7
6
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
|
-
from google.protobuf import runtime_version as _runtime_version
|
|
9
7
|
from google.protobuf import symbol_database as _symbol_database
|
|
10
|
-
from google.protobuf.internal import builder as _builder
|
|
11
|
-
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
12
|
-
_runtime_version.Domain.PUBLIC,
|
|
13
|
-
5,
|
|
14
|
-
28,
|
|
15
|
-
2,
|
|
16
|
-
'',
|
|
17
|
-
'angr/protos/xrefs.proto'
|
|
18
|
-
)
|
|
19
8
|
# @@protoc_insertion_point(imports)
|
|
20
9
|
|
|
21
10
|
_sym_db = _symbol_database.Default()
|
|
@@ -26,11 +15,11 @@ from angr.protos import primitives_pb2 as angr_dot_protos_dot_primitives__pb2
|
|
|
26
15
|
|
|
27
16
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x61ngr/protos/xrefs.proto\x12\x0b\x61ngr.protos\x1a\x1c\x61ngr/protos/primitives.proto\"2\n\x05XRefs\x12)\n\x05xrefs\x18\x01 \x03(\x0b\x32\x1a.angr.protos.CodeReferenceb\x06proto3')
|
|
28
17
|
|
|
29
|
-
|
|
30
|
-
_builder.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
DESCRIPTOR.
|
|
34
|
-
|
|
35
|
-
|
|
18
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
19
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'angr.protos.xrefs_pb2', globals())
|
|
20
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
21
|
+
|
|
22
|
+
DESCRIPTOR._options = None
|
|
23
|
+
_XREFS._serialized_start=70
|
|
24
|
+
_XREFS._serialized_end=120
|
|
36
25
|
# @@protoc_insertion_point(module_scope)
|