angr 9.2.119__py3-none-win_amd64.whl → 9.2.121__py3-none-win_amd64.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 +217 -2
- angr/__main__.py +14 -4
- angr/analyses/__init__.py +54 -0
- angr/analyses/analysis.py +8 -8
- angr/analyses/backward_slice.py +4 -4
- angr/analyses/bindiff.py +2 -2
- angr/analyses/callee_cleanup_finder.py +1 -1
- angr/analyses/calling_convention.py +21 -15
- angr/analyses/cdg.py +1 -1
- angr/analyses/cfg/__init__.py +12 -1
- angr/analyses/cfg/cfb.py +2 -2
- angr/analyses/cfg/cfg.py +1 -1
- angr/analyses/cfg/cfg_base.py +28 -11
- angr/analyses/cfg/cfg_emulated.py +18 -18
- angr/analyses/cfg/cfg_fast.py +3 -2
- angr/analyses/cfg/cfg_fast_soot.py +5 -5
- angr/analyses/cfg/cfg_job_base.py +3 -3
- angr/analyses/cfg/indirect_jump_resolvers/__init__.py +15 -0
- angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py +1 -1
- angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py +4 -4
- angr/analyses/cfg/indirect_jump_resolvers/default_resolvers.py +2 -0
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +27 -20
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +140 -369
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_got.py +148 -0
- angr/analyses/cfg/indirect_jump_resolvers/resolver.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/x86_pe_iat.py +1 -1
- angr/analyses/cfg_slice_to_sink/__init__.py +8 -0
- angr/analyses/class_identifier.py +2 -2
- angr/analyses/code_tagging.py +2 -2
- angr/analyses/complete_calling_conventions.py +3 -3
- angr/analyses/congruency_check.py +1 -2
- angr/analyses/data_dep/__init__.py +13 -0
- angr/analyses/data_dep/data_dependency_analysis.py +5 -5
- angr/analyses/datagraph_meta.py +1 -1
- angr/analyses/ddg.py +3 -3
- angr/analyses/decompiler/__init__.py +25 -0
- angr/analyses/decompiler/ail_simplifier.py +8 -8
- angr/analyses/decompiler/block_simplifier.py +3 -3
- angr/analyses/decompiler/callsite_maker.py +5 -3
- angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py +20 -0
- angr/analyses/decompiler/clinic.py +25 -26
- angr/analyses/decompiler/condition_processor.py +7 -5
- angr/analyses/decompiler/counters/__init__.py +11 -0
- angr/analyses/decompiler/decompiler.py +24 -10
- angr/analyses/decompiler/dephication/seqnode_dephication.py +19 -1
- angr/analyses/decompiler/optimization_passes/__init__.py +66 -54
- angr/analyses/decompiler/optimization_passes/const_derefs.py +1 -1
- angr/analyses/decompiler/optimization_passes/const_prop_reverter.py +3 -3
- angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py +1 -1
- angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py +3 -0
- angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_reverter.py +7 -7
- angr/analyses/decompiler/optimization_passes/duplication_reverter/similarity.py +1 -1
- angr/analyses/decompiler/optimization_passes/duplication_reverter/utils.py +1 -1
- angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
- angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +2 -2
- angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +4 -4
- angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +6 -6
- angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
- angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +7 -3
- angr/analyses/decompiler/optimization_passes/optimization_pass.py +34 -28
- angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +2 -2
- angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +1 -1
- angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +3 -3
- angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +5 -5
- angr/analyses/decompiler/optimization_passes/return_duplicator_high.py +1 -1
- angr/analyses/decompiler/peephole_optimizations/__init__.py +61 -19
- angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +1 -1
- angr/analyses/decompiler/presets/__init__.py +20 -0
- angr/analyses/decompiler/presets/basic.py +30 -0
- angr/analyses/decompiler/presets/fast.py +54 -0
- angr/analyses/decompiler/presets/full.py +64 -0
- angr/analyses/decompiler/presets/preset.py +37 -0
- angr/analyses/decompiler/region_identifier.py +21 -7
- angr/analyses/decompiler/region_simplifiers/__init__.py +3 -0
- angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +3 -3
- angr/analyses/decompiler/region_simplifiers/cascading_ifs.py +3 -3
- angr/analyses/decompiler/region_simplifiers/expr_folding.py +2 -2
- angr/analyses/decompiler/region_simplifiers/goto.py +3 -3
- angr/analyses/decompiler/region_simplifiers/if_.py +2 -2
- angr/analyses/decompiler/region_simplifiers/ifelse.py +4 -4
- angr/analyses/decompiler/region_simplifiers/loop.py +4 -4
- angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -1
- angr/analyses/decompiler/region_simplifiers/region_simplifier.py +6 -6
- angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +12 -5
- angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py +3 -3
- angr/analyses/decompiler/sequence_walker.py +11 -12
- angr/analyses/decompiler/structured_codegen/__init__.py +14 -0
- angr/analyses/decompiler/structured_codegen/base.py +1 -1
- angr/analyses/decompiler/structured_codegen/c.py +13 -13
- angr/analyses/decompiler/structured_codegen/dwarf_import.py +2 -2
- angr/analyses/decompiler/structuring/__init__.py +11 -1
- angr/analyses/decompiler/structuring/dream.py +8 -8
- angr/analyses/decompiler/structuring/phoenix.py +6 -6
- angr/analyses/decompiler/structuring/recursive_structurer.py +7 -7
- angr/analyses/decompiler/structuring/sailr.py +2 -2
- angr/analyses/decompiler/structuring/structurer_base.py +9 -4
- angr/analyses/decompiler/structuring/structurer_nodes.py +18 -9
- angr/analyses/decompiler/utils.py +4 -2
- angr/analyses/disassembly.py +6 -6
- angr/analyses/disassembly_utils.py +1 -1
- angr/analyses/dominance_frontier.py +1 -1
- angr/analyses/find_objects_static.py +5 -5
- angr/analyses/flirt.py +3 -3
- angr/analyses/forward_analysis/__init__.py +9 -0
- angr/analyses/forward_analysis/forward_analysis.py +4 -4
- angr/analyses/forward_analysis/job_info.py +1 -1
- angr/analyses/forward_analysis/visitors/__init__.py +9 -0
- angr/analyses/forward_analysis/visitors/graph.py +2 -2
- angr/analyses/identifier/__init__.py +3 -0
- angr/analyses/identifier/custom_callable.py +2 -3
- angr/analyses/identifier/errors.py +1 -1
- angr/analyses/identifier/functions/__init__.py +4 -4
- angr/analyses/identifier/functions/atoi.py +1 -1
- angr/analyses/identifier/functions/based_atoi.py +1 -1
- angr/analyses/identifier/functions/fdprintf.py +1 -1
- angr/analyses/identifier/functions/free.py +2 -2
- angr/analyses/identifier/functions/int2str.py +1 -1
- angr/analyses/identifier/functions/malloc.py +2 -2
- angr/analyses/identifier/functions/memcmp.py +1 -1
- angr/analyses/identifier/functions/memcpy.py +3 -3
- angr/analyses/identifier/functions/memset.py +1 -1
- angr/analyses/identifier/functions/printf.py +1 -1
- angr/analyses/identifier/functions/recv_until.py +2 -2
- angr/analyses/identifier/functions/skip_calloc.py +2 -2
- angr/analyses/identifier/functions/skip_realloc.py +2 -2
- angr/analyses/identifier/functions/skip_recv_n.py +1 -1
- angr/analyses/identifier/functions/snprintf.py +1 -1
- angr/analyses/identifier/functions/sprintf.py +1 -1
- angr/analyses/identifier/functions/strcmp.py +1 -1
- angr/analyses/identifier/functions/strcpy.py +1 -1
- angr/analyses/identifier/functions/strlen.py +1 -1
- angr/analyses/identifier/functions/strncmp.py +1 -1
- angr/analyses/identifier/functions/strncpy.py +1 -1
- angr/analyses/identifier/functions/strtol.py +1 -1
- angr/analyses/identifier/identify.py +3 -3
- angr/analyses/identifier/runner.py +6 -6
- angr/analyses/init_finder.py +1 -1
- angr/analyses/loop_analysis.py +2 -2
- angr/analyses/propagator/__init__.py +3 -0
- angr/analyses/propagator/engine_ail.py +4 -4
- angr/analyses/propagator/engine_base.py +2 -2
- angr/analyses/propagator/engine_vex.py +2 -2
- angr/analyses/propagator/outdated_definition_walker.py +3 -3
- angr/analyses/propagator/propagator.py +3 -3
- angr/analyses/propagator/top_checker_mixin.py +1 -1
- angr/analyses/proximity_graph.py +3 -3
- angr/analyses/reaching_definitions/__init__.py +6 -6
- angr/analyses/reaching_definitions/dep_graph.py +5 -5
- angr/analyses/reaching_definitions/engine_ail.py +8 -8
- angr/analyses/reaching_definitions/engine_vex.py +18 -13
- angr/analyses/reaching_definitions/heap_allocator.py +3 -3
- angr/analyses/reaching_definitions/rd_state.py +4 -10
- angr/analyses/reaching_definitions/reaching_definitions.py +11 -11
- angr/analyses/reaching_definitions/subject.py +3 -3
- angr/analyses/reassembler.py +5 -5
- angr/analyses/{s_propagator/s_propagator.py → s_propagator.py} +1 -1
- angr/analyses/s_reaching_definitions/__init__.py +11 -1
- angr/analyses/s_reaching_definitions/s_rda_model.py +117 -0
- angr/analyses/s_reaching_definitions/s_rda_view.py +213 -0
- angr/analyses/s_reaching_definitions/s_reaching_definitions.py +159 -0
- angr/analyses/stack_pointer_tracker.py +5 -5
- angr/analyses/static_hooker.py +2 -2
- angr/analyses/typehoon/__init__.py +3 -0
- angr/analyses/typehoon/lifter.py +1 -1
- angr/analyses/typehoon/translator.py +2 -2
- angr/analyses/typehoon/typehoon.py +3 -3
- angr/analyses/typehoon/typevars.py +37 -16
- angr/analyses/variable_recovery/__init__.py +6 -0
- angr/analyses/variable_recovery/engine_ail.py +5 -5
- angr/analyses/variable_recovery/engine_base.py +7 -7
- angr/analyses/variable_recovery/engine_vex.py +7 -7
- angr/analyses/variable_recovery/variable_recovery.py +5 -5
- angr/analyses/variable_recovery/variable_recovery_base.py +7 -7
- angr/analyses/variable_recovery/variable_recovery_fast.py +7 -7
- angr/analyses/veritesting.py +8 -8
- angr/analyses/vfg.py +13 -13
- angr/analyses/vsa_ddg.py +3 -3
- angr/analyses/vtable.py +1 -1
- angr/analyses/xrefs.py +3 -3
- angr/angrdb/__init__.py +3 -0
- angr/angrdb/db.py +3 -3
- angr/angrdb/serializers/__init__.py +7 -0
- angr/angrdb/serializers/cfg_model.py +2 -2
- angr/angrdb/serializers/comments.py +2 -2
- angr/angrdb/serializers/funcs.py +2 -2
- angr/angrdb/serializers/kb.py +2 -2
- angr/angrdb/serializers/labels.py +2 -2
- angr/angrdb/serializers/loader.py +2 -2
- angr/angrdb/serializers/structured_code.py +4 -4
- angr/angrdb/serializers/variables.py +3 -3
- angr/angrdb/serializers/xrefs.py +2 -2
- angr/block.py +9 -1
- angr/calling_conventions.py +1 -1
- angr/concretization_strategies/__init__.py +17 -0
- angr/concretization_strategies/max.py +1 -1
- angr/concretization_strategies/norepeats_range.py +1 -1
- angr/distributed/__init__.py +6 -1
- angr/distributed/server.py +0 -1
- angr/distributed/worker.py +6 -4
- angr/engines/__init__.py +25 -0
- angr/engines/concrete.py +1 -2
- angr/engines/engine.py +8 -15
- angr/engines/failure.py +2 -2
- angr/engines/light/__init__.py +12 -0
- angr/engines/light/data.py +1 -1
- angr/engines/light/engine.py +6 -6
- angr/engines/pcode/__init__.py +7 -1
- angr/engines/pcode/behavior.py +1 -1
- angr/engines/pcode/cc.py +1 -1
- angr/engines/pcode/emulate.py +4 -4
- angr/engines/pcode/engine.py +3 -3
- angr/engines/pcode/lifter.py +15 -7
- angr/engines/procedure.py +3 -3
- angr/engines/soot/__init__.py +3 -0
- angr/engines/soot/engine.py +8 -8
- angr/engines/soot/expressions/__init__.py +33 -0
- angr/engines/soot/expressions/arrayref.py +1 -1
- angr/engines/soot/expressions/base.py +1 -1
- angr/engines/soot/expressions/cast.py +1 -1
- angr/engines/soot/expressions/condition.py +1 -1
- angr/engines/soot/expressions/constants.py +1 -1
- angr/engines/soot/expressions/invoke.py +2 -2
- angr/engines/soot/expressions/new.py +1 -1
- angr/engines/soot/expressions/newArray.py +1 -1
- angr/engines/soot/expressions/newMultiArray.py +1 -1
- angr/engines/soot/statements/__init__.py +16 -0
- angr/engines/soot/statements/assign.py +1 -1
- angr/engines/soot/statements/base.py +3 -3
- angr/engines/soot/values/__init__.py +14 -0
- angr/engines/soot/values/arrayref.py +1 -1
- angr/engines/soot/values/instancefieldref.py +1 -1
- angr/engines/soot/values/staticfieldref.py +1 -1
- angr/engines/soot/values/thisref.py +2 -2
- angr/engines/successors.py +8 -8
- angr/engines/syscall.py +1 -1
- angr/engines/unicorn.py +11 -11
- angr/engines/vex/__init__.py +18 -3
- angr/engines/vex/claripy/__init__.py +3 -0
- angr/engines/vex/claripy/ccall.py +2 -3
- angr/engines/vex/claripy/datalayer.py +9 -12
- angr/engines/vex/heavy/__init__.py +11 -1
- angr/engines/vex/heavy/actions.py +19 -24
- angr/engines/vex/heavy/heavy.py +13 -7
- angr/engines/vex/heavy/inspect.py +2 -2
- angr/engines/vex/heavy/resilience.py +2 -2
- angr/engines/vex/heavy/super_fastpath.py +3 -3
- angr/engines/vex/lifter.py +8 -6
- angr/engines/vex/light/__init__.py +7 -0
- angr/engines/vex/light/light.py +4 -4
- angr/engines/vex/light/slicing.py +1 -1
- angr/errors.py +0 -4
- angr/exploration_techniques/__init__.py +0 -1
- angr/exploration_techniques/bucketizer.py +9 -10
- angr/exploration_techniques/common.py +2 -2
- angr/exploration_techniques/director.py +4 -4
- angr/exploration_techniques/explorer.py +3 -3
- angr/exploration_techniques/loop_seer.py +3 -3
- angr/exploration_techniques/oppologist.py +3 -3
- angr/exploration_techniques/slicecutor.py +1 -1
- angr/exploration_techniques/spiller.py +1 -1
- angr/exploration_techniques/suggestions.py +4 -4
- angr/exploration_techniques/symbion.py +0 -1
- angr/exploration_techniques/threading.py +2 -2
- angr/exploration_techniques/tracer.py +3 -3
- angr/exploration_techniques/veritesting.py +1 -1
- angr/factory.py +5 -0
- angr/flirt/__init__.py +0 -1
- angr/{knowledge_base/knowledge_base.py → knowledge_base.py} +13 -15
- angr/knowledge_plugins/__init__.py +23 -1
- angr/knowledge_plugins/callsite_prototypes.py +2 -2
- angr/knowledge_plugins/cfg/cfg_manager.py +1 -1
- angr/knowledge_plugins/cfg/cfg_model.py +6 -6
- angr/knowledge_plugins/cfg/indirect_jump.py +1 -1
- angr/knowledge_plugins/cfg/memory_data.py +3 -2
- angr/knowledge_plugins/debug_variables.py +2 -2
- angr/knowledge_plugins/functions/__init__.py +6 -0
- angr/knowledge_plugins/functions/function.py +21 -16
- angr/knowledge_plugins/functions/function_manager.py +2 -2
- angr/knowledge_plugins/functions/function_parser.py +3 -3
- angr/knowledge_plugins/functions/soot_function.py +2 -2
- angr/knowledge_plugins/key_definitions/atoms.py +2 -2
- angr/knowledge_plugins/key_definitions/definition.py +3 -3
- angr/knowledge_plugins/key_definitions/key_definition_manager.py +2 -2
- angr/knowledge_plugins/key_definitions/uses.py +2 -2
- angr/knowledge_plugins/propagations/__init__.py +7 -0
- angr/knowledge_plugins/propagations/prop_value.py +1 -1
- angr/knowledge_plugins/{structured_code/manager.py → structured_code.py} +6 -3
- angr/knowledge_plugins/types.py +1 -1
- angr/knowledge_plugins/variables/__init__.py +6 -0
- angr/knowledge_plugins/variables/variable_access.py +3 -3
- angr/knowledge_plugins/variables/variable_manager.py +7 -7
- angr/knowledge_plugins/xrefs/__init__.py +9 -1
- angr/knowledge_plugins/xrefs/xref.py +5 -5
- angr/knowledge_plugins/xrefs/xref_manager.py +3 -3
- angr/lib/angr_native.dll +0 -0
- angr/misc/__init__.py +12 -2
- angr/misc/loggers.py +2 -2
- angr/procedures/__init__.py +9 -0
- angr/procedures/cgc/receive.py +2 -2
- angr/procedures/cgc/transmit.py +1 -1
- angr/procedures/definitions/__init__.py +8 -8
- angr/procedures/definitions/cgc.py +1 -1
- angr/procedures/definitions/glibc.py +2 -15
- angr/procedures/definitions/gnulib.py +2 -6
- angr/procedures/definitions/libstdcpp.py +2 -2
- angr/procedures/definitions/linux_kernel.py +2 -3
- angr/procedures/definitions/linux_loader.py +1 -1
- angr/procedures/definitions/msvcr.py +2 -2
- angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-4.py +3 -18
- angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-6.py +3 -18
- angr/procedures/definitions/wdk_clfs.py +3 -18
- angr/procedures/definitions/wdk_fltmgr.py +3 -18
- angr/procedures/definitions/wdk_fwpkclnt.py +3 -18
- angr/procedures/definitions/wdk_fwpuclnt.py +3 -18
- angr/procedures/definitions/wdk_gdi32.py +3 -18
- angr/procedures/definitions/wdk_hal.py +3 -18
- angr/procedures/definitions/wdk_ksecdd.py +3 -18
- angr/procedures/definitions/wdk_ndis.py +3 -18
- angr/procedures/definitions/wdk_ntoskrnl.py +3 -18
- angr/procedures/definitions/wdk_offreg.py +3 -18
- angr/procedures/definitions/wdk_pshed.py +3 -18
- angr/procedures/definitions/wdk_secur32.py +3 -18
- angr/procedures/definitions/wdk_vhfum.py +3 -18
- angr/procedures/definitions/win32_aclui.py +3 -18
- angr/procedures/definitions/win32_activeds.py +3 -18
- angr/procedures/definitions/win32_advapi32.py +3 -18
- angr/procedures/definitions/win32_advpack.py +3 -18
- angr/procedures/definitions/win32_amsi.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-apiquery-l2-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-backgroundtask-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-enclave-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-errorhandling-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-file-fromapp-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-handle-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-ioring-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-marshal-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-5.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-7.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-8.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-path-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-slapi-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-state-helpers-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-synch-l1-2-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-util-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-1.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-registration-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-robuffer-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-roparameterizediid-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-1.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-wow64-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-dx-d3dkmt-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-deviceinformation-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-expandedresources-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-mm-misc-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-net-isolation-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-base-l1-2-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-5.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-stream-winrt-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-wsl-api-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_apphelp.py +3 -18
- angr/procedures/definitions/win32_authz.py +3 -18
- angr/procedures/definitions/win32_avicap32.py +3 -18
- angr/procedures/definitions/win32_avifil32.py +3 -18
- angr/procedures/definitions/win32_avrt.py +3 -18
- angr/procedures/definitions/win32_bcp47mrm.py +3 -18
- angr/procedures/definitions/win32_bcrypt.py +3 -18
- angr/procedures/definitions/win32_bcryptprimitives.py +3 -18
- angr/procedures/definitions/win32_bluetoothapis.py +3 -18
- angr/procedures/definitions/win32_bthprops.py +3 -3
- angr/procedures/definitions/win32_bthprops_cpl.py +3 -18
- angr/procedures/definitions/win32_cabinet.py +3 -18
- angr/procedures/definitions/win32_certadm.py +3 -18
- angr/procedures/definitions/win32_certpoleng.py +3 -18
- angr/procedures/definitions/win32_cfgmgr32.py +3 -18
- angr/procedures/definitions/win32_chakra.py +3 -18
- angr/procedures/definitions/win32_cldapi.py +3 -18
- angr/procedures/definitions/win32_clfsw32.py +3 -18
- angr/procedures/definitions/win32_clusapi.py +3 -18
- angr/procedures/definitions/win32_comctl32.py +3 -18
- angr/procedures/definitions/win32_comdlg32.py +3 -18
- angr/procedures/definitions/win32_compstui.py +3 -18
- angr/procedures/definitions/win32_computecore.py +3 -18
- angr/procedures/definitions/win32_computenetwork.py +3 -18
- angr/procedures/definitions/win32_computestorage.py +3 -18
- angr/procedures/definitions/win32_comsvcs.py +3 -18
- angr/procedures/definitions/win32_coremessaging.py +3 -3
- angr/procedures/definitions/win32_credui.py +3 -18
- angr/procedures/definitions/win32_crypt32.py +3 -18
- angr/procedures/definitions/win32_cryptnet.py +3 -18
- angr/procedures/definitions/win32_cryptui.py +3 -18
- angr/procedures/definitions/win32_cryptxml.py +3 -18
- angr/procedures/definitions/win32_cscapi.py +3 -18
- angr/procedures/definitions/win32_d2d1.py +3 -18
- angr/procedures/definitions/win32_d3d10.py +3 -18
- angr/procedures/definitions/win32_d3d10_1.py +3 -18
- angr/procedures/definitions/win32_d3d11.py +3 -18
- angr/procedures/definitions/win32_d3d12.py +3 -18
- angr/procedures/definitions/win32_d3d9.py +3 -18
- angr/procedures/definitions/win32_d3dcompiler_47.py +3 -18
- angr/procedures/definitions/win32_d3dcsx.py +3 -18
- angr/procedures/definitions/win32_davclnt.py +3 -18
- angr/procedures/definitions/win32_dbgeng.py +3 -18
- angr/procedures/definitions/win32_dbghelp.py +3 -18
- angr/procedures/definitions/win32_dbgmodel.py +3 -18
- angr/procedures/definitions/win32_dciman32.py +3 -18
- angr/procedures/definitions/win32_dcomp.py +3 -18
- angr/procedures/definitions/win32_ddraw.py +3 -18
- angr/procedures/definitions/win32_deviceaccess.py +3 -18
- angr/procedures/definitions/win32_dflayout.py +3 -18
- angr/procedures/definitions/win32_dhcpcsvc.py +3 -18
- angr/procedures/definitions/win32_dhcpcsvc6.py +3 -18
- angr/procedures/definitions/win32_dhcpsapi.py +3 -18
- angr/procedures/definitions/win32_diagnosticdataquery.py +3 -18
- angr/procedures/definitions/win32_dinput8.py +3 -18
- angr/procedures/definitions/win32_directml.py +3 -18
- angr/procedures/definitions/win32_dmprocessxmlfiltered.py +3 -18
- angr/procedures/definitions/win32_dnsapi.py +3 -18
- angr/procedures/definitions/win32_drt.py +3 -18
- angr/procedures/definitions/win32_drtprov.py +3 -18
- angr/procedures/definitions/win32_drttransport.py +3 -18
- angr/procedures/definitions/win32_dsound.py +3 -18
- angr/procedures/definitions/win32_dsparse.py +3 -18
- angr/procedures/definitions/win32_dsprop.py +3 -18
- angr/procedures/definitions/win32_dssec.py +3 -18
- angr/procedures/definitions/win32_dsuiext.py +3 -18
- angr/procedures/definitions/win32_dwmapi.py +3 -18
- angr/procedures/definitions/win32_dwrite.py +3 -18
- angr/procedures/definitions/win32_dxcompiler.py +3 -18
- angr/procedures/definitions/win32_dxcore.py +3 -18
- angr/procedures/definitions/win32_dxgi.py +3 -18
- angr/procedures/definitions/win32_dxva2.py +3 -18
- angr/procedures/definitions/win32_eappcfg.py +3 -18
- angr/procedures/definitions/win32_eappprxy.py +3 -18
- angr/procedures/definitions/win32_efswrt.py +3 -18
- angr/procedures/definitions/win32_elscore.py +3 -18
- angr/procedures/definitions/win32_esent.py +3 -18
- angr/procedures/definitions/win32_evr.py +3 -18
- angr/procedures/definitions/win32_faultrep.py +3 -18
- angr/procedures/definitions/win32_fhsvcctl.py +3 -18
- angr/procedures/definitions/win32_firewallapi.py +3 -18
- angr/procedures/definitions/win32_fltlib.py +3 -18
- angr/procedures/definitions/win32_fontsub.py +3 -18
- angr/procedures/definitions/win32_forceinline.py +3 -18
- angr/procedures/definitions/win32_fwpuclnt.py +3 -18
- angr/procedures/definitions/win32_fxsutility.py +3 -18
- angr/procedures/definitions/win32_gdi32.py +3 -18
- angr/procedures/definitions/win32_gdiplus.py +3 -18
- angr/procedures/definitions/win32_glu32.py +3 -18
- angr/procedures/definitions/win32_gpedit.py +3 -18
- angr/procedures/definitions/win32_hhctrl_ocx.py +3 -18
- angr/procedures/definitions/win32_hid.py +3 -18
- angr/procedures/definitions/win32_hlink.py +3 -18
- angr/procedures/definitions/win32_hrtfapo.py +3 -18
- angr/procedures/definitions/win32_httpapi.py +3 -18
- angr/procedures/definitions/win32_icm32.py +3 -18
- angr/procedures/definitions/win32_icmui.py +3 -18
- angr/procedures/definitions/win32_icu.py +3 -18
- angr/procedures/definitions/win32_ieframe.py +3 -18
- angr/procedures/definitions/win32_imagehlp.py +3 -18
- angr/procedures/definitions/win32_imgutil.py +3 -18
- angr/procedures/definitions/win32_imm32.py +3 -18
- angr/procedures/definitions/win32_infocardapi.py +3 -18
- angr/procedures/definitions/win32_inkobjcore.py +3 -18
- angr/procedures/definitions/win32_iphlpapi.py +3 -18
- angr/procedures/definitions/win32_iscsidsc.py +3 -18
- angr/procedures/definitions/win32_isolatedwindowsenvironmentutils.py +3 -18
- angr/procedures/definitions/win32_kernel32.py +3 -18
- angr/procedures/definitions/win32_kernelbase.py +3 -18
- angr/procedures/definitions/win32_keycredmgr.py +3 -18
- angr/procedures/definitions/win32_ksproxy_ax.py +3 -18
- angr/procedures/definitions/win32_ksuser.py +3 -18
- angr/procedures/definitions/win32_ktmw32.py +3 -18
- angr/procedures/definitions/win32_licenseprotection.py +3 -18
- angr/procedures/definitions/win32_loadperf.py +3 -18
- angr/procedures/definitions/win32_magnification.py +3 -18
- angr/procedures/definitions/win32_mapi32.py +3 -18
- angr/procedures/definitions/win32_mdmlocalmanagement.py +3 -18
- angr/procedures/definitions/win32_mdmregistration.py +3 -18
- angr/procedures/definitions/win32_mf.py +3 -18
- angr/procedures/definitions/win32_mfcore.py +3 -18
- angr/procedures/definitions/win32_mfplat.py +3 -18
- angr/procedures/definitions/win32_mfplay.py +3 -18
- angr/procedures/definitions/win32_mfreadwrite.py +3 -18
- angr/procedures/definitions/win32_mfsensorgroup.py +3 -18
- angr/procedures/definitions/win32_mfsrcsnk.py +3 -18
- angr/procedures/definitions/win32_mgmtapi.py +3 -18
- angr/procedures/definitions/win32_mi.py +3 -18
- angr/procedures/definitions/win32_mmdevapi.py +3 -18
- angr/procedures/definitions/win32_mpr.py +3 -18
- angr/procedures/definitions/win32_mprapi.py +3 -18
- angr/procedures/definitions/win32_mqrt.py +3 -18
- angr/procedures/definitions/win32_mrmsupport.py +3 -18
- angr/procedures/definitions/win32_msacm32.py +3 -18
- angr/procedures/definitions/win32_msajapi.py +3 -18
- angr/procedures/definitions/win32_mscms.py +3 -18
- angr/procedures/definitions/win32_mscoree.py +3 -18
- angr/procedures/definitions/win32_msctfmonitor.py +3 -18
- angr/procedures/definitions/win32_msdelta.py +3 -18
- angr/procedures/definitions/win32_msdmo.py +3 -18
- angr/procedures/definitions/win32_msdrm.py +3 -18
- angr/procedures/definitions/win32_msi.py +3 -18
- angr/procedures/definitions/win32_msimg32.py +3 -18
- angr/procedures/definitions/win32_mspatcha.py +3 -18
- angr/procedures/definitions/win32_mspatchc.py +3 -18
- angr/procedures/definitions/win32_msports.py +3 -18
- angr/procedures/definitions/win32_msrating.py +3 -18
- angr/procedures/definitions/win32_mssign32.py +3 -18
- angr/procedures/definitions/win32_mstask.py +3 -18
- angr/procedures/definitions/win32_msvfw32.py +3 -18
- angr/procedures/definitions/win32_mswsock.py +3 -18
- angr/procedures/definitions/win32_mtxdm.py +3 -18
- angr/procedures/definitions/win32_ncrypt.py +3 -18
- angr/procedures/definitions/win32_ndfapi.py +3 -18
- angr/procedures/definitions/win32_netapi32.py +3 -18
- angr/procedures/definitions/win32_netsh.py +3 -18
- angr/procedures/definitions/win32_netshell.py +3 -18
- angr/procedures/definitions/win32_newdev.py +3 -18
- angr/procedures/definitions/win32_ninput.py +3 -18
- angr/procedures/definitions/win32_normaliz.py +3 -18
- angr/procedures/definitions/win32_ntdll.py +3 -18
- angr/procedures/definitions/win32_ntdllk.py +3 -18
- angr/procedures/definitions/win32_ntdsapi.py +3 -18
- angr/procedures/definitions/win32_ntlanman.py +3 -18
- angr/procedures/definitions/win32_odbc32.py +3 -18
- angr/procedures/definitions/win32_odbcbcp.py +3 -18
- angr/procedures/definitions/win32_ole32.py +3 -18
- angr/procedures/definitions/win32_oleacc.py +3 -18
- angr/procedures/definitions/win32_oleaut32.py +3 -18
- angr/procedures/definitions/win32_oledlg.py +3 -18
- angr/procedures/definitions/win32_ondemandconnroutehelper.py +3 -18
- angr/procedures/definitions/win32_opengl32.py +3 -18
- angr/procedures/definitions/win32_opmxbox.py +3 -18
- angr/procedures/definitions/win32_p2p.py +3 -18
- angr/procedures/definitions/win32_p2pgraph.py +3 -18
- angr/procedures/definitions/win32_pdh.py +3 -18
- angr/procedures/definitions/win32_peerdist.py +3 -18
- angr/procedures/definitions/win32_powrprof.py +3 -18
- angr/procedures/definitions/win32_prntvpt.py +3 -18
- angr/procedures/definitions/win32_projectedfslib.py +3 -18
- angr/procedures/definitions/win32_propsys.py +3 -18
- angr/procedures/definitions/win32_psapi.py +3 -18
- angr/procedures/definitions/win32_quartz.py +3 -18
- angr/procedures/definitions/win32_query.py +3 -18
- angr/procedures/definitions/win32_qwave.py +3 -18
- angr/procedures/definitions/win32_rasapi32.py +3 -18
- angr/procedures/definitions/win32_rasdlg.py +3 -18
- angr/procedures/definitions/win32_resutils.py +3 -18
- angr/procedures/definitions/win32_rometadata.py +3 -3
- angr/procedures/definitions/win32_rpcns4.py +3 -18
- angr/procedures/definitions/win32_rpcproxy.py +3 -18
- angr/procedures/definitions/win32_rpcrt4.py +3 -18
- angr/procedures/definitions/win32_rstrtmgr.py +3 -18
- angr/procedures/definitions/win32_rtm.py +3 -18
- angr/procedures/definitions/win32_rtutils.py +3 -18
- angr/procedures/definitions/win32_rtworkq.py +3 -18
- angr/procedures/definitions/win32_sas.py +3 -18
- angr/procedures/definitions/win32_scarddlg.py +3 -18
- angr/procedures/definitions/win32_schannel.py +3 -18
- angr/procedures/definitions/win32_sechost.py +3 -18
- angr/procedures/definitions/win32_secur32.py +3 -18
- angr/procedures/definitions/win32_sensapi.py +3 -18
- angr/procedures/definitions/win32_sensorsutilsv2.py +3 -18
- angr/procedures/definitions/win32_setupapi.py +3 -18
- angr/procedures/definitions/win32_sfc.py +3 -18
- angr/procedures/definitions/win32_shdocvw.py +3 -18
- angr/procedures/definitions/win32_shell32.py +3 -18
- angr/procedures/definitions/win32_shlwapi.py +3 -18
- angr/procedures/definitions/win32_slc.py +3 -18
- angr/procedures/definitions/win32_slcext.py +3 -18
- angr/procedures/definitions/win32_slwga.py +3 -18
- angr/procedures/definitions/win32_snmpapi.py +3 -18
- angr/procedures/definitions/win32_spoolss.py +3 -18
- angr/procedures/definitions/win32_srclient.py +3 -18
- angr/procedures/definitions/win32_srpapi.py +3 -18
- angr/procedures/definitions/win32_sspicli.py +3 -18
- angr/procedures/definitions/win32_sti.py +3 -18
- angr/procedures/definitions/win32_t2embed.py +3 -18
- angr/procedures/definitions/win32_tapi32.py +3 -18
- angr/procedures/definitions/win32_tbs.py +3 -18
- angr/procedures/definitions/win32_tdh.py +3 -18
- angr/procedures/definitions/win32_tokenbinding.py +3 -18
- angr/procedures/definitions/win32_traffic.py +3 -18
- angr/procedures/definitions/win32_txfw32.py +3 -18
- angr/procedures/definitions/win32_ualapi.py +3 -18
- angr/procedures/definitions/win32_uiautomationcore.py +3 -18
- angr/procedures/definitions/win32_urlmon.py +3 -18
- angr/procedures/definitions/win32_user32.py +4 -19
- angr/procedures/definitions/win32_userenv.py +3 -18
- angr/procedures/definitions/win32_usp10.py +3 -18
- angr/procedures/definitions/win32_uxtheme.py +3 -18
- angr/procedures/definitions/win32_verifier.py +3 -18
- angr/procedures/definitions/win32_version.py +3 -18
- angr/procedures/definitions/win32_vertdll.py +3 -18
- angr/procedures/definitions/win32_virtdisk.py +3 -18
- angr/procedures/definitions/win32_vmdevicehost.py +3 -18
- angr/procedures/definitions/win32_vmsavedstatedumpprovider.py +3 -18
- angr/procedures/definitions/win32_vssapi.py +3 -18
- angr/procedures/definitions/win32_wcmapi.py +3 -18
- angr/procedures/definitions/win32_wdsbp.py +3 -18
- angr/procedures/definitions/win32_wdsclientapi.py +3 -18
- angr/procedures/definitions/win32_wdsmc.py +3 -18
- angr/procedures/definitions/win32_wdspxe.py +3 -18
- angr/procedures/definitions/win32_wdstptc.py +3 -18
- angr/procedures/definitions/win32_webauthn.py +3 -18
- angr/procedures/definitions/win32_webservices.py +3 -18
- angr/procedures/definitions/win32_websocket.py +3 -18
- angr/procedures/definitions/win32_wecapi.py +3 -18
- angr/procedures/definitions/win32_wer.py +3 -18
- angr/procedures/definitions/win32_wevtapi.py +3 -18
- angr/procedures/definitions/win32_winbio.py +3 -18
- angr/procedures/definitions/win32_windows_ai_machinelearning.py +3 -18
- angr/procedures/definitions/win32_windows_data_pdf.py +3 -3
- angr/procedures/definitions/win32_windows_media_mediacontrol.py +3 -18
- angr/procedures/definitions/win32_windows_networking.py +3 -18
- angr/procedures/definitions/win32_windows_ui_xaml.py +3 -18
- angr/procedures/definitions/win32_windowscodecs.py +3 -18
- angr/procedures/definitions/win32_winfax.py +3 -18
- angr/procedures/definitions/win32_winhttp.py +3 -18
- angr/procedures/definitions/win32_winhvemulation.py +3 -18
- angr/procedures/definitions/win32_winhvplatform.py +3 -18
- angr/procedures/definitions/win32_wininet.py +3 -18
- angr/procedures/definitions/win32_winml.py +3 -18
- angr/procedures/definitions/win32_winmm.py +3 -18
- angr/procedures/definitions/win32_winscard.py +3 -18
- angr/procedures/definitions/win32_winspool.py +3 -3
- angr/procedures/definitions/win32_winspool_drv.py +3 -18
- angr/procedures/definitions/win32_wintrust.py +3 -18
- angr/procedures/definitions/win32_winusb.py +3 -18
- angr/procedures/definitions/win32_wlanapi.py +3 -18
- angr/procedures/definitions/win32_wlanui.py +3 -18
- angr/procedures/definitions/win32_wldap32.py +3 -18
- angr/procedures/definitions/win32_wldp.py +3 -18
- angr/procedures/definitions/win32_wmvcore.py +3 -18
- angr/procedures/definitions/win32_wnvapi.py +3 -18
- angr/procedures/definitions/win32_wofutil.py +3 -18
- angr/procedures/definitions/win32_ws2_32.py +3 -18
- angr/procedures/definitions/win32_wscapi.py +3 -18
- angr/procedures/definitions/win32_wsclient.py +3 -18
- angr/procedures/definitions/win32_wsdapi.py +3 -18
- angr/procedures/definitions/win32_wsmsvc.py +3 -18
- angr/procedures/definitions/win32_wsnmp32.py +3 -18
- angr/procedures/definitions/win32_wtsapi32.py +3 -18
- angr/procedures/definitions/win32_xaudio2_8.py +3 -18
- angr/procedures/definitions/win32_xinput1_4.py +3 -18
- angr/procedures/definitions/win32_xinputuap.py +3 -3
- angr/procedures/definitions/win32_xmllite.py +3 -18
- angr/procedures/definitions/win32_xolehlp.py +3 -18
- angr/procedures/definitions/win32_xpsprint.py +3 -18
- angr/procedures/glibc/scanf.py +2 -2
- angr/procedures/glibc/sscanf.py +1 -1
- angr/procedures/java/__init__.py +6 -3
- angr/procedures/java/unconstrained.py +3 -3
- angr/procedures/java_io/read.py +1 -1
- angr/procedures/java_io/write.py +1 -1
- angr/procedures/java_jni/__init__.py +4 -4
- angr/procedures/java_jni/array_operations.py +2 -2
- angr/procedures/java_jni/field_access.py +3 -3
- angr/procedures/java_jni/method_calls.py +2 -2
- angr/procedures/java_jni/object_operations.py +1 -1
- angr/procedures/java_jni/string_operations.py +1 -1
- angr/procedures/java_lang/character.py +1 -1
- angr/procedures/java_lang/double.py +1 -1
- angr/procedures/java_lang/exit.py +1 -1
- angr/procedures/java_lang/getsimplename.py +1 -1
- angr/procedures/java_lang/integer.py +2 -2
- angr/procedures/java_lang/load_library.py +1 -1
- angr/procedures/java_lang/math.py +1 -1
- angr/procedures/java_lang/string.py +3 -3
- angr/procedures/java_lang/stringbuilder.py +2 -2
- angr/procedures/java_lang/system.py +1 -1
- angr/procedures/java_util/collection.py +2 -2
- angr/procedures/java_util/iterator.py +2 -2
- angr/procedures/java_util/list.py +3 -3
- angr/procedures/java_util/map.py +3 -3
- angr/procedures/java_util/random.py +1 -1
- angr/procedures/java_util/scanner_nextline.py +2 -2
- angr/procedures/libc/fseek.py +1 -1
- angr/procedures/libc/memcpy.py +1 -1
- angr/procedures/libc/strlen.py +12 -4
- angr/procedures/libc/strncmp.py +9 -4
- angr/procedures/linux_kernel/iovec.py +3 -3
- angr/procedures/linux_kernel/mmap.py +1 -1
- angr/procedures/linux_kernel/stat.py +1 -1
- angr/procedures/linux_kernel/sysinfo.py +1 -1
- angr/procedures/posix/bzero.py +1 -1
- angr/procedures/posix/mmap.py +1 -1
- angr/procedures/posix/send.py +1 -1
- angr/procedures/posix/syslog.py +2 -3
- angr/procedures/procedure_dict.py +2 -2
- angr/procedures/stubs/format_parser.py +5 -5
- angr/procedures/tracer/random.py +1 -1
- angr/procedures/tracer/receive.py +1 -1
- angr/procedures/tracer/transmit.py +1 -1
- angr/procedures/uclibc/__uClibc_main.py +1 -1
- angr/protos/__init__.py +8 -0
- angr/protos/cfg_pb2.py +23 -15
- angr/protos/function_pb2.py +19 -21
- angr/protos/primitives_pb2.py +46 -112
- angr/protos/variables_pb2.py +38 -114
- angr/protos/xrefs_pb2.py +17 -18
- angr/sim_options.py +0 -4
- angr/sim_state.py +2 -78
- angr/sim_type.py +9 -18
- angr/simos/__init__.py +12 -0
- angr/simos/cgc.py +5 -5
- angr/simos/javavm.py +12 -12
- angr/simos/linux.py +5 -5
- angr/simos/simos.py +11 -15
- angr/simos/userland.py +3 -3
- angr/simos/windows.py +5 -10
- angr/state_plugins/__init__.py +84 -28
- angr/state_plugins/callstack.py +1 -1
- angr/state_plugins/concrete.py +3 -4
- angr/state_plugins/filesystem.py +3 -3
- angr/state_plugins/gdb.py +1 -1
- angr/state_plugins/heap/__init__.py +14 -5
- angr/state_plugins/heap/heap_base.py +5 -4
- angr/state_plugins/heap/heap_brk.py +1 -1
- angr/state_plugins/heap/heap_freelist.py +1 -1
- angr/state_plugins/heap/heap_ptmalloc.py +2 -20
- angr/state_plugins/heap/utils.py +1 -1
- angr/state_plugins/history.py +2 -2
- angr/state_plugins/javavm_classloader.py +3 -3
- angr/state_plugins/jni_references.py +1 -1
- angr/state_plugins/light_registers.py +3 -3
- angr/state_plugins/log.py +1 -1
- angr/state_plugins/plugin.py +3 -2
- angr/state_plugins/posix.py +3 -3
- angr/state_plugins/preconstrainer.py +4 -4
- angr/state_plugins/scratch.py +3 -3
- angr/state_plugins/sim_action_object.py +1 -1
- angr/state_plugins/solver.py +85 -32
- angr/state_plugins/symbolizer.py +2 -3
- angr/state_plugins/uc_manager.py +1 -1
- angr/state_plugins/unicorn_engine.py +4 -4
- angr/state_plugins/view.py +1 -1
- angr/storage/__init__.py +9 -4
- angr/storage/file.py +4 -4
- angr/storage/memory_mixins/__init__.py +89 -162
- angr/storage/memory_mixins/actions_mixin.py +3 -3
- angr/storage/memory_mixins/address_concretization_mixin.py +7 -7
- angr/storage/memory_mixins/bvv_conversion_mixin.py +2 -2
- angr/storage/memory_mixins/clouseau_mixin.py +3 -2
- angr/storage/memory_mixins/conditional_store_mixin.py +1 -1
- angr/storage/memory_mixins/convenient_mappings_mixin.py +3 -3
- angr/storage/memory_mixins/default_filler_mixin.py +4 -4
- angr/storage/memory_mixins/dirty_addrs_mixin.py +2 -1
- angr/storage/memory_mixins/hex_dumper_mixin.py +2 -2
- angr/storage/memory_mixins/{javavm_memory/javavm_memory_mixin.py → javavm_memory_mixin.py} +15 -12
- angr/storage/memory_mixins/{keyvalue_memory/keyvalue_memory_mixin.py → keyvalue_memory_mixin.py} +11 -6
- angr/storage/memory_mixins/label_merger_mixin.py +1 -1
- angr/storage/memory_mixins/memory_mixin.py +163 -0
- angr/storage/memory_mixins/multi_value_merger_mixin.py +1 -1
- angr/storage/memory_mixins/name_resolution_mixin.py +5 -3
- angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +2 -2
- angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/__init__.py +16 -1
- angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/ispo_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/permissions_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/refcount_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +2 -2
- angr/storage/memory_mixins/paged_memory/stack_allocation_mixin.py +2 -2
- angr/storage/memory_mixins/regioned_memory/__init__.py +10 -0
- angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +1 -2
- angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +2 -1
- angr/storage/memory_mixins/regioned_memory/region_data.py +2 -2
- angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +1 -1
- angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +4 -4
- angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +8 -20
- angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
- angr/storage/memory_mixins/simple_interface_mixin.py +3 -2
- angr/storage/memory_mixins/simplification_mixin.py +3 -2
- angr/storage/memory_mixins/size_resolution_mixin.py +2 -2
- angr/storage/memory_mixins/slotted_memory.py +3 -3
- angr/storage/memory_mixins/smart_find_mixin.py +2 -2
- angr/storage/memory_mixins/symbolic_merger_mixin.py +2 -1
- angr/storage/memory_mixins/top_merger_mixin.py +3 -2
- angr/storage/memory_mixins/underconstrained_mixin.py +5 -3
- angr/storage/memory_mixins/unwrapper_mixin.py +3 -2
- angr/storage/memory_object.py +1 -1
- angr/utils/__init__.py +12 -0
- angr/utils/enums_conv.py +1 -1
- angr/utils/library.py +2 -2
- angr/utils/mp.py +1 -1
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/METADATA +7 -8
- angr-9.2.121.dist-info/RECORD +1342 -0
- angr/analyses/s_liveness/__init__.py +0 -2
- angr/analyses/s_propagator/__init__.py +0 -2
- angr/analyses/s_reaching_definitions/s_rda.py +0 -479
- angr/knowledge_base/__init__.py +0 -2
- angr/knowledge_plugins/structured_code/__init__.py +0 -2
- angr/knowledge_plugins/sync/__init__.py +0 -2
- angr/knowledge_plugins/sync/sync_controller.py +0 -324
- angr/misc/range.py +0 -24
- angr/misc/weakpatch.py +0 -59
- angr/storage/memory_mixins/javavm_memory/__init__.py +0 -2
- angr/storage/memory_mixins/keyvalue_memory/__init__.py +0 -2
- angr/storage/pcap.py +0 -65
- angr/utils/typing.py +0 -18
- angr-9.2.119.dist-info/RECORD +0 -1345
- /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/LICENSE +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/WHEEL +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/entry_points.txt +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/top_level.txt +0 -0
|
@@ -4,8 +4,8 @@ import logging
|
|
|
4
4
|
import claripy
|
|
5
5
|
|
|
6
6
|
from .plugin import SimStatePlugin
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from angr import sim_options as o
|
|
8
|
+
from angr.errors import AngrError
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
l = logging.getLogger(name=__name__)
|
|
@@ -55,8 +55,8 @@ class SimStatePreconstrainer(SimStatePlugin):
|
|
|
55
55
|
"""
|
|
56
56
|
if not isinstance(value, claripy.ast.Base):
|
|
57
57
|
value = claripy.BVV(value, len(variable))
|
|
58
|
-
elif value.op
|
|
59
|
-
raise ValueError("Passed a value to preconstrain that was not a BVV or a string")
|
|
58
|
+
elif value.op not in ["BVV", "FPV"]:
|
|
59
|
+
raise ValueError("Passed a value to preconstrain that was not a BVV or FPV or a string")
|
|
60
60
|
|
|
61
61
|
if not variable.is_leaf():
|
|
62
62
|
l.warning(
|
angr/state_plugins/scratch.py
CHANGED
|
@@ -167,10 +167,10 @@ class SimStateScratch(SimStatePlugin):
|
|
|
167
167
|
|
|
168
168
|
# pylint:disable=wrong-import-position
|
|
169
169
|
from .sim_action import SimActionObject, SimActionData
|
|
170
|
-
from
|
|
171
|
-
from
|
|
170
|
+
from angr.errors import SimValueError, SimMissingTempError
|
|
171
|
+
from angr import sim_options as o
|
|
172
172
|
from .inspect import BP_AFTER, BP_BEFORE
|
|
173
173
|
|
|
174
|
-
from
|
|
174
|
+
from angr.sim_state import SimState
|
|
175
175
|
|
|
176
176
|
SimState.register_default("scratch", SimStateScratch)
|
|
@@ -9,7 +9,7 @@ import claripy
|
|
|
9
9
|
from angr import sim_options as o
|
|
10
10
|
from angr.errors import SimActionError
|
|
11
11
|
from .sim_action import SimActionData, SimActionOperation
|
|
12
|
-
from
|
|
12
|
+
from angr.sim_state import SimState
|
|
13
13
|
|
|
14
14
|
if typing.TYPE_CHECKING:
|
|
15
15
|
from claripy.annotation import Annotation
|
angr/state_plugins/solver.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
import functools
|
|
3
4
|
import time
|
|
4
5
|
import logging
|
|
@@ -10,8 +11,10 @@ import claripy
|
|
|
10
11
|
from angr import sim_options as o
|
|
11
12
|
from angr.errors import SimValueError, SimUnsatError, SimSolverModeError, SimSolverOptionError
|
|
12
13
|
from angr.sim_state import SimState
|
|
14
|
+
from .inspect import BP_AFTER, BP_BEFORE
|
|
13
15
|
from .plugin import SimStatePlugin
|
|
14
16
|
from .sim_action_object import ast_stripping_decorator, SimActionObject
|
|
17
|
+
from .sim_action import SimActionConstraint
|
|
15
18
|
|
|
16
19
|
l = logging.getLogger(name=__name__)
|
|
17
20
|
|
|
@@ -346,23 +349,19 @@ class SimSolver(SimStatePlugin):
|
|
|
346
349
|
"""
|
|
347
350
|
if o.SYMBOLIC_INITIAL_VALUES in self.state.options:
|
|
348
351
|
# Return a symbolic value
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
**kwargs,
|
|
363
|
-
)
|
|
364
|
-
if uc_alloc_depth is not None:
|
|
365
|
-
self.state.uc_manager.set_alloc_depth(r, uc_alloc_depth)
|
|
352
|
+
l.debug("Creating new unconstrained BV named %s", name)
|
|
353
|
+
r = self.BVS(
|
|
354
|
+
name,
|
|
355
|
+
bits,
|
|
356
|
+
uninitialized=uninitialized,
|
|
357
|
+
key=key,
|
|
358
|
+
eternal=eternal,
|
|
359
|
+
inspect=inspect,
|
|
360
|
+
events=events,
|
|
361
|
+
**kwargs,
|
|
362
|
+
)
|
|
363
|
+
if uc_alloc_depth is not None:
|
|
364
|
+
self.state.uc_manager.set_alloc_depth(r, uc_alloc_depth)
|
|
366
365
|
|
|
367
366
|
return r
|
|
368
367
|
# Return a default value, aka. 0
|
|
@@ -411,26 +410,18 @@ class SimSolver(SimStatePlugin):
|
|
|
411
410
|
if key is not None and eternal and key in self.eternal_tracked_variables:
|
|
412
411
|
r = self.eternal_tracked_variables[key]
|
|
413
412
|
# pylint: disable=too-many-boolean-expressions
|
|
414
|
-
if (
|
|
415
|
-
size != r.length
|
|
416
|
-
or min != r.args[1]
|
|
417
|
-
or max != r.args[2]
|
|
418
|
-
or stride != r.args[3]
|
|
419
|
-
or uninitialized != r.args[4]
|
|
420
|
-
or bool(explicit_name) ^ (r.args[0] == name)
|
|
421
|
-
):
|
|
413
|
+
if size != r.length or uninitialized != r.uninitialized or bool(explicit_name) ^ (r.args[0] == name):
|
|
422
414
|
l.warning("Variable %s being retrieved with different settings than it was tracked with", name)
|
|
423
415
|
else:
|
|
424
416
|
r = claripy.BVS(
|
|
425
417
|
name,
|
|
426
418
|
size,
|
|
427
|
-
min=min,
|
|
428
|
-
max=max,
|
|
429
|
-
stride=stride,
|
|
430
419
|
uninitialized=uninitialized,
|
|
431
420
|
explicit_name=explicit_name,
|
|
432
421
|
**kwargs,
|
|
433
422
|
)
|
|
423
|
+
if any(x is not None for x in (min, max, stride)):
|
|
424
|
+
r = r.annotate(claripy.annotation.StridedIntervalAnnotation(stride, min, max))
|
|
434
425
|
if key is not None:
|
|
435
426
|
self.register_variable(r, key, eternal)
|
|
436
427
|
|
|
@@ -696,6 +687,9 @@ class SimSolver(SimStatePlugin):
|
|
|
696
687
|
|
|
697
688
|
:return: True if sat, otherwise false
|
|
698
689
|
"""
|
|
690
|
+
if o.ABSTRACT_SOLVER in self.state.options or o.SYMBOLIC not in self.state.options:
|
|
691
|
+
return all(not self.is_false(e) for e in extra_constraints)
|
|
692
|
+
|
|
699
693
|
if exact is False and o.VALIDATE_APPROXIMATIONS in self.state.options:
|
|
700
694
|
er = self._solver.satisfiable(extra_constraints=self._adjust_constraint_list(extra_constraints))
|
|
701
695
|
ar = self._solver.satisfiable(
|
|
@@ -715,8 +709,69 @@ class SimSolver(SimStatePlugin):
|
|
|
715
709
|
|
|
716
710
|
:param constraints: Pass any constraints that you want to add (ASTs) as varargs.
|
|
717
711
|
"""
|
|
718
|
-
|
|
719
|
-
|
|
712
|
+
if len(constraints) > 0 and isinstance(constraints[0], (list, tuple)):
|
|
713
|
+
raise Exception("Tuple or list passed to add!")
|
|
714
|
+
|
|
715
|
+
if o.TRACK_CONSTRAINTS in self.state.options and len(constraints) > 0:
|
|
716
|
+
constraints = (
|
|
717
|
+
[self.simplify(a) for a in constraints] if o.SIMPLIFY_CONSTRAINTS in self.state.options else constraints
|
|
718
|
+
)
|
|
719
|
+
|
|
720
|
+
self.state._inspect("constraints", BP_BEFORE, added_constraints=constraints)
|
|
721
|
+
constraints = self.state._inspect_getattr("added_constraints", constraints)
|
|
722
|
+
cc = self._adjust_constraint_list(constraints)
|
|
723
|
+
added = self._solver.add(cc)
|
|
724
|
+
self.state._inspect("constraints", BP_AFTER)
|
|
725
|
+
|
|
726
|
+
# add actions for the added constraints
|
|
727
|
+
if o.TRACK_CONSTRAINT_ACTIONS in self.state.options:
|
|
728
|
+
for c in added:
|
|
729
|
+
sac = SimActionConstraint(self.state, c)
|
|
730
|
+
self.state.history.add_action(sac)
|
|
731
|
+
|
|
732
|
+
if o.ABSTRACT_SOLVER in self.state.options and len(constraints) > 0:
|
|
733
|
+
for arg in constraints:
|
|
734
|
+
if self.is_false(arg):
|
|
735
|
+
return
|
|
736
|
+
|
|
737
|
+
if self.is_true(arg):
|
|
738
|
+
continue
|
|
739
|
+
|
|
740
|
+
# It's neither True or False. Let's try to apply the condition
|
|
741
|
+
|
|
742
|
+
# We take the argument, extract a list of constrained SIs out of
|
|
743
|
+
# it (if we could, of course), and then replace each original SI
|
|
744
|
+
# the intersection of original SI and the constrained one.
|
|
745
|
+
|
|
746
|
+
_, converted = claripy.constraint_to_si(arg)
|
|
747
|
+
|
|
748
|
+
for original_expr, constrained_si in converted:
|
|
749
|
+
if not original_expr.variables:
|
|
750
|
+
l.error(
|
|
751
|
+
"Incorrect original_expression to replace in add(). "
|
|
752
|
+
"This is due to defects in VSA logics inside claripy. "
|
|
753
|
+
"Please report to Fish and he will fix it if he's free."
|
|
754
|
+
)
|
|
755
|
+
continue
|
|
756
|
+
|
|
757
|
+
new_expr = constrained_si
|
|
758
|
+
self.state.registers.replace_all(original_expr, new_expr)
|
|
759
|
+
self.state.memory.replace_all(original_expr, new_expr)
|
|
760
|
+
# tmps
|
|
761
|
+
temps = self.state.scratch.temps
|
|
762
|
+
for idx in range(len(temps)): # pylint:disable=consider-using-enumerate
|
|
763
|
+
t = temps[idx]
|
|
764
|
+
if t is None:
|
|
765
|
+
continue
|
|
766
|
+
if t.variables.intersection(original_expr.variables):
|
|
767
|
+
# replace
|
|
768
|
+
temps[idx] = claripy.replace(t, original_expr, new_expr)
|
|
769
|
+
|
|
770
|
+
l.debug("SimSolver.add: Applied to final state.")
|
|
771
|
+
elif o.SYMBOLIC not in self.state.options and len(constraints) > 0:
|
|
772
|
+
for arg in constraints:
|
|
773
|
+
if self.is_false(arg):
|
|
774
|
+
return
|
|
720
775
|
|
|
721
776
|
#
|
|
722
777
|
# And some convenience stuff
|
|
@@ -1067,5 +1122,3 @@ class SimSolver(SimStatePlugin):
|
|
|
1067
1122
|
|
|
1068
1123
|
|
|
1069
1124
|
SimState.register_default("solver", SimSolver)
|
|
1070
|
-
|
|
1071
|
-
from .inspect import BP_AFTER
|
angr/state_plugins/symbolizer.py
CHANGED
|
@@ -4,11 +4,10 @@ import claripy
|
|
|
4
4
|
import struct
|
|
5
5
|
|
|
6
6
|
from .plugin import SimStatePlugin
|
|
7
|
-
from
|
|
7
|
+
from angr.storage.memory_mixins import PagedMemoryMixin
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
l = logging.getLogger(name=__name__)
|
|
11
|
-
l.setLevel("DEBUG")
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
def _mem_write_cb(s):
|
|
@@ -286,6 +285,6 @@ class SimSymbolizer(SimStatePlugin): # pylint:disable=abstract-method
|
|
|
286
285
|
return sc
|
|
287
286
|
|
|
288
287
|
|
|
289
|
-
from
|
|
288
|
+
from angr.sim_state import SimState
|
|
290
289
|
|
|
291
290
|
SimState.register_default("symbolizer", SimSymbolizer)
|
angr/state_plugins/uc_manager.py
CHANGED
|
@@ -17,10 +17,10 @@ import pyvex
|
|
|
17
17
|
from angr.engines.vex.claripy import ccall
|
|
18
18
|
from angr.sim_state import SimState
|
|
19
19
|
|
|
20
|
-
from
|
|
21
|
-
from
|
|
22
|
-
from
|
|
23
|
-
from
|
|
20
|
+
from angr import sim_options as options
|
|
21
|
+
from angr.engines.vex.claripy.irop import operations as irop_ops
|
|
22
|
+
from angr.errors import SimMemoryError, SimSegfaultError, SimUnicornError, SimUnicornUnsupport, SimValueError
|
|
23
|
+
from angr.misc.testing import is_testing
|
|
24
24
|
from .plugin import SimStatePlugin
|
|
25
25
|
|
|
26
26
|
l = logging.getLogger(name=__name__)
|
angr/state_plugins/view.py
CHANGED
|
@@ -331,7 +331,7 @@ class StructMode:
|
|
|
331
331
|
self.__getattr__(k).store(v)
|
|
332
332
|
|
|
333
333
|
|
|
334
|
-
from
|
|
334
|
+
from angr.sim_type import ALL_TYPES, SimTypeFixedSizeArray, SimTypePointer
|
|
335
335
|
|
|
336
336
|
SimMemView.types = ALL_TYPES # identity purposefully here
|
|
337
337
|
|
angr/storage/__init__.py
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
# misc
|
|
2
1
|
from __future__ import annotations
|
|
3
2
|
|
|
4
3
|
DUMMY_SYMBOLIC_READ_VALUE = 0xC0DEB4BE
|
|
5
4
|
|
|
6
|
-
# imports
|
|
7
|
-
|
|
8
5
|
from .file import SimFile
|
|
9
6
|
from .memory_object import SimMemoryObject
|
|
10
|
-
from .memory_mixins import
|
|
7
|
+
from .memory_mixins import DefaultMemory
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = (
|
|
11
|
+
"DUMMY_SYMBOLIC_READ_VALUE",
|
|
12
|
+
"SimFile",
|
|
13
|
+
"SimMemoryObject",
|
|
14
|
+
"DefaultMemory",
|
|
15
|
+
)
|
angr/storage/file.py
CHANGED
|
@@ -5,9 +5,9 @@ import itertools
|
|
|
5
5
|
import claripy
|
|
6
6
|
|
|
7
7
|
from .memory_mixins import DefaultMemory
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
from
|
|
8
|
+
from angr.state_plugins.plugin import SimStatePlugin
|
|
9
|
+
from angr.state_plugins.sim_action_object import SimActionObject
|
|
10
|
+
from angr import sim_options
|
|
11
11
|
|
|
12
12
|
l = logging.getLogger(name=__name__)
|
|
13
13
|
|
|
@@ -1209,4 +1209,4 @@ class SimPacketsSlots(SimFileBase):
|
|
|
1209
1209
|
raise SimMergeError("Widening the filesystem is unsupported")
|
|
1210
1210
|
|
|
1211
1211
|
|
|
1212
|
-
from
|
|
1212
|
+
from angr.errors import SimMergeError, SimFileError, SimSolverError
|
|
@@ -1,160 +1,6 @@
|
|
|
1
|
-
# pylint:disable=abstract-method,wrong-import-position,unused-argument,missing-class-docstring,arguments-differ
|
|
2
1
|
from __future__ import annotations
|
|
3
|
-
from typing import Tuple, Dict, Any, Optional
|
|
4
|
-
from collections.abc import Iterable
|
|
5
|
-
|
|
6
|
-
import claripy
|
|
7
|
-
|
|
8
|
-
from ...state_plugins.plugin import SimStatePlugin
|
|
9
|
-
from ...errors import SimMemoryError
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class MemoryMixin(SimStatePlugin):
|
|
13
|
-
SUPPORTS_CONCRETE_LOAD = False
|
|
14
|
-
|
|
15
|
-
def __init__(self, memory_id=None, endness="Iend_BE"):
|
|
16
|
-
super().__init__()
|
|
17
|
-
self.id = memory_id
|
|
18
|
-
self.endness = endness
|
|
19
|
-
|
|
20
|
-
def copy(self, memo):
|
|
21
|
-
o = type(self).__new__(type(self))
|
|
22
|
-
o.id = self.id
|
|
23
|
-
o.endness = self.endness
|
|
24
|
-
return o
|
|
25
|
-
|
|
26
|
-
@property
|
|
27
|
-
def category(self):
|
|
28
|
-
"""
|
|
29
|
-
Return the category of this SimMemory instance. It can be one of the three following categories: reg, mem,
|
|
30
|
-
or file.
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
if self.id in ("reg", "mem"):
|
|
34
|
-
return self.id
|
|
35
|
-
|
|
36
|
-
if self.id.startswith("file"):
|
|
37
|
-
return "file"
|
|
38
|
-
|
|
39
|
-
if "_" in self.id:
|
|
40
|
-
return self.id.split("_")[0]
|
|
41
|
-
|
|
42
|
-
raise SimMemoryError(f'Unknown SimMemory category for memory_id "{self.id}"')
|
|
43
|
-
|
|
44
|
-
@property
|
|
45
|
-
def variable_key_prefix(self):
|
|
46
|
-
s = self.category
|
|
47
|
-
if s == "file":
|
|
48
|
-
return (s, self.id)
|
|
49
|
-
return (s,)
|
|
50
|
-
|
|
51
|
-
def find(self, addr, data, max_search, **kwargs):
|
|
52
|
-
pass
|
|
53
|
-
|
|
54
|
-
def _add_constraints(self, c, add_constraints=True, condition=None, **kwargs):
|
|
55
|
-
if add_constraints:
|
|
56
|
-
to_add = c & condition | ~condition if condition is not None else c
|
|
57
|
-
self.state.add_constraints(to_add)
|
|
58
|
-
|
|
59
|
-
def load(self, addr, size=None, **kwargs):
|
|
60
|
-
pass
|
|
61
|
-
|
|
62
|
-
def store(self, addr, data, **kwargs):
|
|
63
|
-
pass
|
|
64
|
-
|
|
65
|
-
def merge(self, others, merge_conditions, common_ancestor=None) -> bool:
|
|
66
|
-
pass
|
|
67
|
-
|
|
68
|
-
def compare(self, other) -> bool:
|
|
69
|
-
pass
|
|
70
|
-
|
|
71
|
-
def widen(self, others):
|
|
72
|
-
pass
|
|
73
|
-
|
|
74
|
-
def permissions(self, addr, permissions=None, **kwargs):
|
|
75
|
-
pass
|
|
76
|
-
|
|
77
|
-
def map_region(self, addr, length, permissions, init_zero=False, **kwargs):
|
|
78
|
-
pass
|
|
79
|
-
|
|
80
|
-
def unmap_region(self, addr, length, **kwargs):
|
|
81
|
-
pass
|
|
82
|
-
|
|
83
|
-
# Optional interface:
|
|
84
|
-
def concrete_load(self, addr, size, writing=False, **kwargs) -> memoryview:
|
|
85
|
-
"""
|
|
86
|
-
Set SUPPORTS_CONCRETE_LOAD to True and implement concrete_load if reading concrete bytes is faster in this
|
|
87
|
-
memory model.
|
|
88
|
-
|
|
89
|
-
:param addr: The address to load from.
|
|
90
|
-
:param size: Size of the memory read.
|
|
91
|
-
:param writing:
|
|
92
|
-
:return: A memoryview into the loaded bytes.
|
|
93
|
-
"""
|
|
94
|
-
raise NotImplementedError
|
|
95
|
-
|
|
96
|
-
def erase(self, addr, size=None, **kwargs) -> None:
|
|
97
|
-
"""
|
|
98
|
-
Set [addr:addr+size) to uninitialized. In many cases this will be faster than overwriting those locations with
|
|
99
|
-
new values. This is commonly used during static data flow analysis.
|
|
100
|
-
|
|
101
|
-
:param addr: The address to start erasing.
|
|
102
|
-
:param size: The number of bytes for erasing.
|
|
103
|
-
:return: None
|
|
104
|
-
"""
|
|
105
|
-
raise NotImplementedError
|
|
106
|
-
|
|
107
|
-
def _default_value(self, addr, size, name=None, inspect=True, events=True, key=None, **kwargs):
|
|
108
|
-
"""
|
|
109
|
-
Override this method to provide default values for a variety of edge cases and base cases.
|
|
110
|
-
|
|
111
|
-
:param addr: If this value is being filled to provide a default memory value, this will be its address.
|
|
112
|
-
Otherwise, None.
|
|
113
|
-
:param size: The size in bytes of the value to return
|
|
114
|
-
:param name: A descriptive identifier for the value, for if a symbol is created.
|
|
115
|
-
|
|
116
|
-
The ``inspect``, ``events``, and ``key`` parameters are for ``state.solver.Unconstrained``, if it is used.
|
|
117
|
-
"""
|
|
118
|
-
|
|
119
|
-
def _merge_values(self, values: Iterable[tuple[Any, Any]], merged_size: int, **kwargs) -> Any | None:
|
|
120
|
-
"""
|
|
121
|
-
Override this method to provide value merging support.
|
|
122
|
-
|
|
123
|
-
:param values: A collection of values with their merge conditions.
|
|
124
|
-
:param merged_size: The size (in bytes) of the merged value.
|
|
125
|
-
:return: The merged value, or None to skip merging of the current value.
|
|
126
|
-
"""
|
|
127
|
-
raise NotImplementedError
|
|
128
|
-
|
|
129
|
-
def _merge_labels(self, labels: Iterable[dict], **kwargs) -> dict | None:
|
|
130
|
-
"""
|
|
131
|
-
Override this method to provide label merging support.
|
|
132
|
-
|
|
133
|
-
:param labels: A collection of labels.
|
|
134
|
-
:return: The merged label, or None to skip merging of the current label.
|
|
135
|
-
"""
|
|
136
|
-
raise NotImplementedError
|
|
137
|
-
|
|
138
|
-
def replace_all(self, old: claripy.ast.BV, new: claripy.ast.BV):
|
|
139
|
-
raise NotImplementedError
|
|
140
|
-
|
|
141
|
-
def _replace_all(self, addrs: Iterable[int], old: claripy.ast.BV, new: claripy.ast.BV):
|
|
142
|
-
raise NotImplementedError
|
|
143
|
-
|
|
144
|
-
def copy_contents(self, dst, src, size, condition=None, **kwargs):
|
|
145
|
-
"""
|
|
146
|
-
Override this method to provide faster copying of large chunks of data.
|
|
147
|
-
|
|
148
|
-
:param dst: The destination of copying.
|
|
149
|
-
:param src: The source of copying.
|
|
150
|
-
:param size: The size of copying.
|
|
151
|
-
:param condition: The storing condition.
|
|
152
|
-
:param kwargs: Other parameters.
|
|
153
|
-
:return: None
|
|
154
|
-
"""
|
|
155
|
-
raise NotImplementedError
|
|
156
|
-
|
|
157
2
|
|
|
3
|
+
from angr.sim_state import SimState
|
|
158
4
|
from .actions_mixin import ActionsMixinHigh, ActionsMixinLow
|
|
159
5
|
from .address_concretization_mixin import AddressConcretizationMixin
|
|
160
6
|
from .bvv_conversion_mixin import DataNormalizationMixin
|
|
@@ -188,7 +34,19 @@ from .paged_memory.paged_memory_mixin import (
|
|
|
188
34
|
from .paged_memory.privileged_mixin import PrivilegedPagingMixin
|
|
189
35
|
from .paged_memory.stack_allocation_mixin import StackAllocationMixin
|
|
190
36
|
from .paged_memory.paged_memory_multivalue_mixin import PagedMemoryMultiValueMixin
|
|
191
|
-
from .paged_memory.pages import
|
|
37
|
+
from .paged_memory.pages import (
|
|
38
|
+
CooperationBase,
|
|
39
|
+
MemoryObjectMixin,
|
|
40
|
+
ISPOMixin,
|
|
41
|
+
RefcountMixin,
|
|
42
|
+
PermissionsMixin,
|
|
43
|
+
HistoryTrackingMixin,
|
|
44
|
+
PageBase,
|
|
45
|
+
PageType,
|
|
46
|
+
ListPage,
|
|
47
|
+
MVListPage,
|
|
48
|
+
UltraPage,
|
|
49
|
+
)
|
|
192
50
|
|
|
193
51
|
from .slotted_memory import SlottedMemoryMixin
|
|
194
52
|
from .regioned_memory import (
|
|
@@ -199,8 +57,10 @@ from .regioned_memory import (
|
|
|
199
57
|
MemoryRegionMetaMixin,
|
|
200
58
|
RegionedAddressConcretizationMixin,
|
|
201
59
|
)
|
|
202
|
-
from .
|
|
203
|
-
from .
|
|
60
|
+
from .keyvalue_memory_mixin import KeyValueMemoryMixin
|
|
61
|
+
from .javavm_memory_mixin import JavaVmMemoryMixin
|
|
62
|
+
|
|
63
|
+
# pylint:disable=missing-class-docstring
|
|
204
64
|
|
|
205
65
|
|
|
206
66
|
class DefaultMemory(
|
|
@@ -335,7 +195,7 @@ class LabeledMemory(
|
|
|
335
195
|
LabeledMemory is used in static analysis. It allows storing values with labels, such as `Definition`.
|
|
336
196
|
"""
|
|
337
197
|
|
|
338
|
-
def _default_value(self, addr, size, **kwargs):
|
|
198
|
+
def _default_value(self, addr, size, **kwargs): # pylint:disable=arguments-differ
|
|
339
199
|
# TODO: Make _default_value() a separate Mixin
|
|
340
200
|
|
|
341
201
|
if kwargs.get("name", "").startswith("merge_uc_"):
|
|
@@ -356,7 +216,7 @@ class MultiValuedMemory(
|
|
|
356
216
|
PagedMemoryMixin,
|
|
357
217
|
PagedMemoryMultiValueMixin,
|
|
358
218
|
):
|
|
359
|
-
def _default_value(self, addr, size, **kwargs):
|
|
219
|
+
def _default_value(self, addr, size, **kwargs): # pylint:disable=arguments-differ
|
|
360
220
|
# TODO: Make _default_value() a separate Mixin
|
|
361
221
|
|
|
362
222
|
if kwargs.get("name", "").startswith("merge_uc_"):
|
|
@@ -381,10 +241,77 @@ class JavaVmMemory(
|
|
|
381
241
|
pass
|
|
382
242
|
|
|
383
243
|
|
|
384
|
-
from angr.sim_state import SimState
|
|
385
|
-
|
|
386
244
|
SimState.register_default("sym_memory", DefaultMemory)
|
|
387
245
|
SimState.register_default("fast_memory", FastMemory)
|
|
388
246
|
SimState.register_default("abs_memory", AbstractMemory)
|
|
389
247
|
SimState.register_default("keyvalue_memory", KeyValueMemory)
|
|
390
248
|
SimState.register_default("javavm_memory", JavaVmMemory)
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
__all__ = (
|
|
252
|
+
"ActionsMixinHigh",
|
|
253
|
+
"ActionsMixinLow",
|
|
254
|
+
"AddressConcretizationMixin",
|
|
255
|
+
"DataNormalizationMixin",
|
|
256
|
+
"InspectMixinHigh",
|
|
257
|
+
"ConditionalMixin",
|
|
258
|
+
"ConvenientMappingsMixin",
|
|
259
|
+
"DefaultFillerMixin",
|
|
260
|
+
"SpecialFillerMixin",
|
|
261
|
+
"ExplicitFillerMixin",
|
|
262
|
+
"DirtyAddrsMixin",
|
|
263
|
+
"HexDumperMixin",
|
|
264
|
+
"LabelMergerMixin",
|
|
265
|
+
"MultiValueMergerMixin",
|
|
266
|
+
"NameResolutionMixin",
|
|
267
|
+
"SimplificationMixin",
|
|
268
|
+
"SimpleInterfaceMixin",
|
|
269
|
+
"SizeNormalizationMixin",
|
|
270
|
+
"SizeConcretizationMixin",
|
|
271
|
+
"SmartFindMixin",
|
|
272
|
+
"SymbolicMergerMixin",
|
|
273
|
+
"TopMergerMixin",
|
|
274
|
+
"UnderconstrainedMixin",
|
|
275
|
+
"UnwrapperMixin",
|
|
276
|
+
"ClemoryBackerMixin",
|
|
277
|
+
"ConcreteBackerMixin",
|
|
278
|
+
"DictBackerMixin",
|
|
279
|
+
"PagedMemoryMixin",
|
|
280
|
+
"ListPagesMixin",
|
|
281
|
+
"UltraPagesMixin",
|
|
282
|
+
"ListPagesWithLabelsMixin",
|
|
283
|
+
"MVListPagesMixin",
|
|
284
|
+
"MVListPagesWithLabelsMixin",
|
|
285
|
+
"PrivilegedPagingMixin",
|
|
286
|
+
"StackAllocationMixin",
|
|
287
|
+
"PagedMemoryMultiValueMixin",
|
|
288
|
+
"CooperationBase",
|
|
289
|
+
"MemoryObjectMixin",
|
|
290
|
+
"ISPOMixin",
|
|
291
|
+
"RefcountMixin",
|
|
292
|
+
"PermissionsMixin",
|
|
293
|
+
"HistoryTrackingMixin",
|
|
294
|
+
"PageBase",
|
|
295
|
+
"PageType",
|
|
296
|
+
"ListPage",
|
|
297
|
+
"MVListPage",
|
|
298
|
+
"UltraPage",
|
|
299
|
+
"SlottedMemoryMixin",
|
|
300
|
+
"RegionedMemoryMixin",
|
|
301
|
+
"RegionCategoryMixin",
|
|
302
|
+
"StaticFindMixin",
|
|
303
|
+
"AbstractMergerMixin",
|
|
304
|
+
"MemoryRegionMetaMixin",
|
|
305
|
+
"RegionedAddressConcretizationMixin",
|
|
306
|
+
"KeyValueMemoryMixin",
|
|
307
|
+
"JavaVmMemoryMixin",
|
|
308
|
+
"DefaultMemory",
|
|
309
|
+
"DefaultListPagesMemory",
|
|
310
|
+
"FastMemory",
|
|
311
|
+
"AbstractMemory",
|
|
312
|
+
"RegionedMemory",
|
|
313
|
+
"LabeledMemory",
|
|
314
|
+
"MultiValuedMemory",
|
|
315
|
+
"KeyValueMemory",
|
|
316
|
+
"JavaVmMemory",
|
|
317
|
+
)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
import claripy
|
|
3
3
|
|
|
4
|
-
from
|
|
5
|
-
from
|
|
6
|
-
from . import MemoryMixin
|
|
4
|
+
from angr.state_plugins.sim_action import SimActionData, SimActionObject
|
|
5
|
+
from angr import sim_options as o
|
|
6
|
+
from angr.storage.memory_mixins.memory_mixin import MemoryMixin
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class ActionsMixinHigh(MemoryMixin):
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
import claripy
|
|
3
3
|
|
|
4
|
-
from . import MemoryMixin
|
|
5
|
-
from
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
from
|
|
4
|
+
from angr.storage.memory_mixins.memory_mixin import MemoryMixin
|
|
5
|
+
from angr import sim_options as options
|
|
6
|
+
from angr import concretization_strategies
|
|
7
|
+
from angr.sim_state_options import SimStateOptions
|
|
8
|
+
from angr.state_plugins.inspect import BP_BEFORE, BP_AFTER
|
|
9
|
+
from angr.errors import SimMergeError, SimUnsatError, SimMemoryAddressError, SimMemoryError
|
|
10
|
+
from angr.storage import DUMMY_SYMBOLIC_READ_VALUE
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class MultiwriteAnnotation(claripy.Annotation):
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
import logging
|
|
3
3
|
import claripy
|
|
4
4
|
|
|
5
|
-
from angr.storage.memory_mixins import MemoryMixin
|
|
5
|
+
from angr.storage.memory_mixins.memory_mixin import MemoryMixin
|
|
6
6
|
|
|
7
7
|
l = logging.getLogger(__name__)
|
|
8
8
|
|
|
@@ -70,4 +70,4 @@ class DataNormalizationMixin(MemoryMixin):
|
|
|
70
70
|
return raw_to_bv()
|
|
71
71
|
|
|
72
72
|
|
|
73
|
-
from
|
|
73
|
+
from angr.errors import SimMemoryError
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
from angr.storage.memory_mixins.memory_mixin import MemoryMixin
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class InspectMixinHigh(MemoryMixin):
|
|
@@ -129,4 +130,4 @@ class InspectMixinHigh(MemoryMixin):
|
|
|
129
130
|
super()._add_constraints(c, add_constraints=add_constraints, inspect=inspect, **kwargs)
|
|
130
131
|
|
|
131
132
|
|
|
132
|
-
from
|
|
133
|
+
from angr.state_plugins.inspect import BP_BEFORE, BP_AFTER
|