angr 9.2.118__py3-none-manylinux2014_x86_64.whl → 9.2.120__py3-none-manylinux2014_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of angr might be problematic. Click here for more details.
- angr/__init__.py +217 -2
- angr/__main__.py +14 -4
- angr/analyses/__init__.py +54 -0
- angr/analyses/analysis.py +47 -5
- 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 +136 -24
- 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 +13 -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/jumptable.py +21 -18
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +5 -5
- 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 +9 -9
- angr/analyses/decompiler/block_simplifier.py +3 -3
- angr/analyses/decompiler/callsite_maker.py +5 -3
- angr/analyses/decompiler/clinic.py +46 -36
- angr/analyses/decompiler/condition_processor.py +48 -21
- angr/analyses/decompiler/counters/__init__.py +11 -0
- angr/analyses/decompiler/decompiler.py +27 -10
- angr/analyses/decompiler/dephication/seqnode_dephication.py +19 -1
- angr/analyses/decompiler/jumptable_entry_condition_rewriter.py +1 -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/ail_merge_graph.py +7 -4
- angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_reverter.py +13 -9
- 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/inlined_string_transformation_simplifier.py +19 -19
- 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 +22 -15
- angr/analyses/decompiler/structured_codegen/dwarf_import.py +2 -2
- angr/analyses/decompiler/structuring/__init__.py +11 -1
- angr/analyses/decompiler/structuring/dream.py +16 -15
- angr/analyses/decompiler/structuring/phoenix.py +9 -9
- 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 +6 -5
- 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/function_handler.py +6 -2
- 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 +34 -16
- 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 +21 -4
- angr/analyses/typehoon/typeconsts.py +8 -0
- angr/analyses/typehoon/typehoon.py +3 -3
- 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 +14 -17
- 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 +2 -2
- 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/calling_conventions.py +69 -24
- angr/concretization_strategies/__init__.py +17 -0
- angr/concretization_strategies/max.py +1 -1
- angr/concretization_strategies/norepeats.py +3 -3
- 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 +2 -3
- angr/engines/engine.py +3 -3
- 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 +12 -17
- 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 +5 -5
- angr/engines/pcode/lifter.py +7 -7
- angr/engines/procedure.py +3 -3
- angr/engines/soot/__init__.py +3 -0
- angr/engines/soot/engine.py +13 -13
- 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 +2 -2
- 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/statements/goto.py +1 -1
- angr/engines/soot/statements/if_.py +1 -1
- angr/engines/soot/statements/throw.py +1 -1
- 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 +13 -13
- angr/engines/vex/__init__.py +18 -3
- angr/engines/vex/claripy/__init__.py +3 -0
- angr/engines/vex/claripy/ccall.py +1 -2
- angr/engines/vex/claripy/datalayer.py +3 -3
- angr/engines/vex/heavy/__init__.py +11 -1
- angr/engines/vex/heavy/heavy.py +8 -8
- 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 +5 -5
- angr/engines/vex/light/__init__.py +7 -0
- angr/engines/vex/light/light.py +2 -2
- angr/engines/vex/light/slicing.py +1 -1
- angr/errors.py +4 -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/driller_core.py +2 -3
- 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 +6 -6
- 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/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 +8 -7
- 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/misc/__init__.py +12 -2
- angr/misc/loggers.py +2 -2
- angr/misc/telemetry.py +54 -0
- 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 +4 -4
- angr/procedures/java_io/read.py +1 -1
- angr/procedures/java_io/write.py +1 -1
- angr/procedures/java_jni/__init__.py +25 -17
- 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 +2 -2
- angr/procedures/java_lang/character.py +1 -1
- angr/procedures/java_lang/double.py +2 -2
- 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 +4 -4
- 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 +3 -3
- 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/linux_kernel/vsyscall.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/Redirect.py +1 -1
- angr/procedures/stubs/UserHook.py +1 -1
- angr/procedures/stubs/format_parser.py +6 -6
- 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/sim_options.py +0 -4
- angr/sim_procedure.py +5 -5
- angr/sim_state.py +21 -34
- angr/sim_type.py +51 -18
- angr/simos/__init__.py +12 -0
- angr/simos/cgc.py +5 -5
- angr/simos/javavm.py +18 -23
- angr/simos/linux.py +6 -6
- angr/simos/simos.py +12 -16
- angr/simos/userland.py +3 -3
- angr/simos/windows.py +6 -11
- angr/state_hierarchy.py +1 -1
- 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 +6 -6
- angr/state_plugins/scratch.py +4 -4
- angr/state_plugins/sim_action_object.py +1 -1
- angr/state_plugins/solver.py +15 -19
- angr/state_plugins/symbolizer.py +2 -3
- angr/state_plugins/trace_additions.py +8 -8
- 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 -3
- angr/storage/file.py +16 -16
- angr/storage/memory_mixins/__init__.py +88 -6
- angr/storage/memory_mixins/actions_mixin.py +3 -3
- angr/storage/memory_mixins/address_concretization_mixin.py +6 -6
- angr/storage/memory_mixins/bvv_conversion_mixin.py +1 -1
- angr/storage/memory_mixins/clouseau_mixin.py +1 -1
- angr/storage/memory_mixins/convenient_mappings_mixin.py +8 -10
- angr/storage/memory_mixins/default_filler_mixin.py +3 -3
- angr/storage/memory_mixins/hex_dumper_mixin.py +1 -1
- 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/multi_value_merger_mixin.py +5 -5
- angr/storage/memory_mixins/name_resolution_mixin.py +2 -2
- angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/__init__.py +15 -0
- angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -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 -1
- angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +1 -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 +7 -19
- angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
- angr/storage/memory_mixins/simple_interface_mixin.py +1 -1
- angr/storage/memory_mixins/simplification_mixin.py +1 -1
- angr/storage/memory_mixins/size_resolution_mixin.py +2 -2
- angr/storage/memory_mixins/slotted_memory.py +1 -1
- angr/storage/memory_mixins/smart_find_mixin.py +3 -3
- angr/storage/memory_mixins/underconstrained_mixin.py +1 -1
- angr/storage/memory_mixins/unwrapper_mixin.py +1 -1
- angr/storage/memory_object.py +8 -10
- 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/utils/timing.py +30 -18
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/METADATA +8 -7
- angr-9.2.120.dist-info/RECORD +1340 -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.118.dist-info/RECORD +0 -1344
- /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/LICENSE +0 -0
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/WHEEL +0 -0
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/entry_points.txt +0 -0
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/top_level.txt +0 -0
|
@@ -3,30 +3,18 @@ import logging
|
|
|
3
3
|
|
|
4
4
|
import claripy
|
|
5
5
|
|
|
6
|
-
from
|
|
6
|
+
from angr.state_plugins.plugin import SimStatePlugin
|
|
7
7
|
from .heap_freelist import SimHeapFreelist, Chunk
|
|
8
8
|
from .utils import concretize
|
|
9
|
-
from
|
|
9
|
+
from angr.errors import SimHeapError, SimMergeError, SimSolverError
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
l = logging.getLogger("angr.state_plugins.heap.heap_ptmalloc")
|
|
13
|
-
sml = logging.getLogger("angr.state_plugins.symbolic_memory")
|
|
14
13
|
|
|
15
14
|
CHUNK_FLAGS_MASK = 0x07
|
|
16
15
|
CHUNK_P_MASK = 0x01
|
|
17
16
|
|
|
18
17
|
|
|
19
|
-
# These are included as sometimes the heap will touch uninitialized locations, which normally causes a warning
|
|
20
|
-
def silence_logger():
|
|
21
|
-
level = sml.getEffectiveLevel()
|
|
22
|
-
sml.setLevel("ERROR")
|
|
23
|
-
return level
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def unsilence_logger(level):
|
|
27
|
-
sml.setLevel(level)
|
|
28
|
-
|
|
29
|
-
|
|
30
18
|
class PTChunk(Chunk):
|
|
31
19
|
"""
|
|
32
20
|
A chunk, inspired by the implementation of chunks in ptmalloc. Provides a representation of a chunk via a view into
|
|
@@ -60,11 +48,9 @@ class PTChunk(Chunk):
|
|
|
60
48
|
return chunk_size - 2 * self._chunk_size_t_size
|
|
61
49
|
|
|
62
50
|
def _set_leading_size(self, size):
|
|
63
|
-
level = silence_logger()
|
|
64
51
|
chunk_flags = (
|
|
65
52
|
self.state.memory.load(self.base + self._chunk_size_t_size, self._chunk_size_t_size) & CHUNK_FLAGS_MASK
|
|
66
53
|
)
|
|
67
|
-
unsilence_logger(level)
|
|
68
54
|
self.state.memory.store(self.base + self._chunk_size_t_size, size | chunk_flags, size=self.state.arch.bytes)
|
|
69
55
|
|
|
70
56
|
def _set_trailing_size(self, size):
|
|
@@ -98,9 +84,7 @@ class PTChunk(Chunk):
|
|
|
98
84
|
|
|
99
85
|
:param is_free: if True, sets the previous chunk to be free; if False, sets it to be allocated
|
|
100
86
|
"""
|
|
101
|
-
level = silence_logger()
|
|
102
87
|
size_field = self.state.memory.load(self.base + self._chunk_size_t_size, self._chunk_size_t_size)
|
|
103
|
-
unsilence_logger(level)
|
|
104
88
|
if is_free:
|
|
105
89
|
self.state.memory.store(
|
|
106
90
|
self.base + self._chunk_size_t_size, size_field & ~CHUNK_P_MASK, size=self.state.arch.bytes
|
|
@@ -550,9 +534,7 @@ class SimHeapPTMalloc(SimHeapFreelist):
|
|
|
550
534
|
return 0
|
|
551
535
|
# Copy the old data over
|
|
552
536
|
old_data_ptr = chunk.data_ptr()
|
|
553
|
-
level = silence_logger()
|
|
554
537
|
old_data = self.state.memory.load(old_data_ptr, size=old_size - 2 * self._chunk_size_t_size)
|
|
555
|
-
unsilence_logger(level)
|
|
556
538
|
self.state.memory.store(new_data_ptr, old_data)
|
|
557
539
|
self.free(old_data_ptr) # Free the old chunk
|
|
558
540
|
return new_data_ptr
|
angr/state_plugins/heap/utils.py
CHANGED
angr/state_plugins/history.py
CHANGED
|
@@ -9,8 +9,8 @@ import claripy
|
|
|
9
9
|
from claripy.ast.bv import BV
|
|
10
10
|
|
|
11
11
|
from .plugin import SimStatePlugin
|
|
12
|
-
from
|
|
13
|
-
from
|
|
12
|
+
from angr import sim_options
|
|
13
|
+
from angr.state_plugins.sim_action import SimActionObject
|
|
14
14
|
|
|
15
15
|
l = logging.getLogger(name=__name__)
|
|
16
16
|
|
|
@@ -3,9 +3,9 @@ import logging
|
|
|
3
3
|
|
|
4
4
|
from archinfo.arch_soot import SootAddressDescriptor, SootAddressTerminator, SootClassDescriptor
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
6
|
+
from angr.engines.soot.method_dispatcher import resolve_method
|
|
7
|
+
from angr.engines import UberEngine
|
|
8
|
+
from angr.sim_state import SimState
|
|
9
9
|
from .plugin import SimStatePlugin
|
|
10
10
|
|
|
11
11
|
l = logging.getLogger("angr.state_plugins.javavm_classloader")
|
|
@@ -3,9 +3,9 @@ import claripy
|
|
|
3
3
|
import logging
|
|
4
4
|
|
|
5
5
|
from .plugin import SimStatePlugin
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
6
|
+
from angr.errors import SimFastMemoryError
|
|
7
|
+
from angr.misc.ux import once
|
|
8
|
+
from angr import sim_options as options
|
|
9
9
|
|
|
10
10
|
l = logging.getLogger(__name__)
|
|
11
11
|
|
angr/state_plugins/log.py
CHANGED
angr/state_plugins/plugin.py
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from typing import cast
|
|
3
4
|
|
|
4
|
-
import angr # For type annotations; pylint: disable=unused-import
|
|
5
5
|
import logging
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
import angr
|
|
8
|
+
from angr.misc.ux import once
|
|
8
9
|
|
|
9
10
|
l = logging.getLogger(name=__name__)
|
|
10
11
|
|
angr/state_plugins/posix.py
CHANGED
|
@@ -5,8 +5,8 @@ import claripy
|
|
|
5
5
|
|
|
6
6
|
from .plugin import SimStatePlugin
|
|
7
7
|
from .filesystem import SimMount, Stat
|
|
8
|
-
from
|
|
9
|
-
from
|
|
8
|
+
from angr.storage.file import SimFile, SimPacketsStream, Flags, SimFileDescriptor, SimFileDescriptorDuplex
|
|
9
|
+
from angr import sim_options as options
|
|
10
10
|
|
|
11
11
|
l = logging.getLogger(name=__name__)
|
|
12
12
|
|
|
@@ -700,4 +700,4 @@ from angr.sim_state import SimState
|
|
|
700
700
|
|
|
701
701
|
SimState.register_default("posix", SimSystemPosix)
|
|
702
702
|
|
|
703
|
-
from
|
|
703
|
+
from angr.errors import SimPosixError, SimSolverError, SimMergeError, SimMemoryError
|
|
@@ -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(
|
|
@@ -147,13 +147,13 @@ class SimStatePreconstrainer(SimStatePlugin):
|
|
|
147
147
|
precon_cache_keys = set()
|
|
148
148
|
|
|
149
149
|
for con in self.preconstraints:
|
|
150
|
-
precon_cache_keys.add(con.
|
|
150
|
+
precon_cache_keys.add(con.hash())
|
|
151
151
|
|
|
152
152
|
# if we used the replacement solver we didn't add constraints we need to remove so keep all constraints
|
|
153
153
|
if o.REPLACEMENT_SOLVER in self.state.options:
|
|
154
154
|
new_constraints = self.state.solver.constraints
|
|
155
155
|
else:
|
|
156
|
-
new_constraints = [x for x in self.state.solver.constraints if x.
|
|
156
|
+
new_constraints = [x for x in self.state.solver.constraints if x.hash() not in precon_cache_keys]
|
|
157
157
|
|
|
158
158
|
if self.state.has_plugin("zen_plugin"):
|
|
159
159
|
new_constraints = self.state.get_plugin("zen_plugin").filter_constraints(new_constraints)
|
angr/state_plugins/scratch.py
CHANGED
|
@@ -30,7 +30,7 @@ class SimStateScratch(SimStatePlugin):
|
|
|
30
30
|
|
|
31
31
|
# information on exits *from* this state
|
|
32
32
|
self.jumpkind = None
|
|
33
|
-
self.guard = claripy.true
|
|
33
|
+
self.guard = claripy.true()
|
|
34
34
|
self.target = None
|
|
35
35
|
self.source = None
|
|
36
36
|
self.exit_stmt_idx = None
|
|
@@ -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
|
@@ -95,7 +95,7 @@ def error_converter(f):
|
|
|
95
95
|
return f(*args, **kwargs)
|
|
96
96
|
except claripy.UnsatError as e:
|
|
97
97
|
raise SimUnsatError("Got an unsat result") from e
|
|
98
|
-
except claripy.
|
|
98
|
+
except claripy.ClaripyError as e:
|
|
99
99
|
raise SimSolverModeError("Claripy threw an error") from e
|
|
100
100
|
|
|
101
101
|
return wrapped_f
|
|
@@ -346,23 +346,19 @@ class SimSolver(SimStatePlugin):
|
|
|
346
346
|
"""
|
|
347
347
|
if o.SYMBOLIC_INITIAL_VALUES in self.state.options:
|
|
348
348
|
# 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)
|
|
349
|
+
l.debug("Creating new unconstrained BV named %s", name)
|
|
350
|
+
r = self.BVS(
|
|
351
|
+
name,
|
|
352
|
+
bits,
|
|
353
|
+
uninitialized=uninitialized,
|
|
354
|
+
key=key,
|
|
355
|
+
eternal=eternal,
|
|
356
|
+
inspect=inspect,
|
|
357
|
+
events=events,
|
|
358
|
+
**kwargs,
|
|
359
|
+
)
|
|
360
|
+
if uc_alloc_depth is not None:
|
|
361
|
+
self.state.uc_manager.set_alloc_depth(r, uc_alloc_depth)
|
|
366
362
|
|
|
367
363
|
return r
|
|
368
364
|
# Return a default value, aka. 0
|
|
@@ -416,7 +412,7 @@ class SimSolver(SimStatePlugin):
|
|
|
416
412
|
or min != r.args[1]
|
|
417
413
|
or max != r.args[2]
|
|
418
414
|
or stride != r.args[3]
|
|
419
|
-
or uninitialized != r.
|
|
415
|
+
or uninitialized != r.uninitialized
|
|
420
416
|
or bool(explicit_name) ^ (r.args[0] == name)
|
|
421
417
|
):
|
|
422
418
|
l.warning("Variable %s being retrieved with different settings than it was tracked with", name)
|
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)
|
|
@@ -219,7 +219,7 @@ def end_info_hook(state):
|
|
|
219
219
|
)
|
|
220
220
|
chall_resp_plugin.str_to_int_pairs.append((input_bvs, new_var))
|
|
221
221
|
if pending_info.allows_negative:
|
|
222
|
-
chall_resp_plugin.allows_negative_bvs.add(input_bvs.
|
|
222
|
+
chall_resp_plugin.allows_negative_bvs.add(input_bvs.hash())
|
|
223
223
|
chall_resp_plugin.replacement_pairs.append((input_bvs, input_val))
|
|
224
224
|
elif pending_info.get_type() == "IntToStr":
|
|
225
225
|
# result constraint
|
|
@@ -459,11 +459,11 @@ class ChallRespInfo(angr.state_plugins.SimStatePlugin):
|
|
|
459
459
|
base = int(int_var_name.split("_")[1], 10)
|
|
460
460
|
original_len = str_var.size() // 8
|
|
461
461
|
abs_max = (1 << int_var.size()) - 1
|
|
462
|
-
if str_var.
|
|
462
|
+
if str_var.hash() in self.allows_negative_bvs:
|
|
463
463
|
abs_max = (1 << (int_var.size() - 1)) - 1
|
|
464
464
|
max_val = base ** (original_len) - 1
|
|
465
465
|
min_val = 0
|
|
466
|
-
if str_var.
|
|
466
|
+
if str_var.hash() in self.allows_negative_bvs and original_len > 1:
|
|
467
467
|
min_val = -(base ** (original_len - 1) - 1)
|
|
468
468
|
|
|
469
469
|
max_val = min(max_val, abs_max)
|
|
@@ -569,10 +569,10 @@ def zen_hook(state, expr):
|
|
|
569
569
|
if len(flag_args) > 1:
|
|
570
570
|
zen_plugin = state.get_plugin("zen_plugin")
|
|
571
571
|
|
|
572
|
-
if expr.
|
|
572
|
+
if expr.hash() in zen_plugin.replacements:
|
|
573
573
|
# we already have the replacement
|
|
574
574
|
concrete_val = state.solver.eval(expr)
|
|
575
|
-
replacement = zen_plugin.replacements[expr.
|
|
575
|
+
replacement = zen_plugin.replacements[expr.hash()]
|
|
576
576
|
state.preconstrainer.preconstrain(concrete_val, replacement)
|
|
577
577
|
zen_plugin.preconstraints.append(replacement == concrete_val)
|
|
578
578
|
else:
|
|
@@ -603,7 +603,7 @@ def zen_hook(state, expr):
|
|
|
603
603
|
zen_plugin.state.preconstrainer.preconstraints.append(constraint)
|
|
604
604
|
zen_plugin.preconstraints.append(replacement == concrete_val)
|
|
605
605
|
|
|
606
|
-
zen_plugin.replacements[expr.
|
|
606
|
+
zen_plugin.replacements[expr.hash()] = replacement
|
|
607
607
|
|
|
608
608
|
return replacement
|
|
609
609
|
return None
|
|
@@ -701,11 +701,11 @@ class ZenPlugin(angr.state_plugins.SimStatePlugin):
|
|
|
701
701
|
return contained_bytes
|
|
702
702
|
|
|
703
703
|
def filter_constraints(self, constraints):
|
|
704
|
-
zen_cache_keys = {x.
|
|
704
|
+
zen_cache_keys = {x.hash() for x in self.zen_constraints}
|
|
705
705
|
new_cons = []
|
|
706
706
|
for con in constraints:
|
|
707
707
|
if (
|
|
708
|
-
con.
|
|
708
|
+
con.hash() in zen_cache_keys
|
|
709
709
|
or not all(v.startswith(("cgc-flag", "random")) for v in con.variables)
|
|
710
710
|
or len(con.variables) == 0
|
|
711
711
|
):
|
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,16 @@
|
|
|
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
7
|
from .memory_mixins import MemoryMixin, DefaultMemory
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = (
|
|
11
|
+
"DUMMY_SYMBOLIC_READ_VALUE",
|
|
12
|
+
"SimFile",
|
|
13
|
+
"SimMemoryObject",
|
|
14
|
+
"MemoryMixin",
|
|
15
|
+
"DefaultMemory",
|
|
16
|
+
)
|
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
|
|
|
@@ -209,7 +209,7 @@ class SimFile(SimFileBase, DefaultMemory): # TODO: pick a better base class omg
|
|
|
209
209
|
content = claripy.BVV(content.encode())
|
|
210
210
|
elif content is None:
|
|
211
211
|
pass
|
|
212
|
-
elif isinstance(content, claripy.Bits):
|
|
212
|
+
elif isinstance(content, claripy.ast.Bits):
|
|
213
213
|
if concrete is None and not content.symbolic:
|
|
214
214
|
concrete = True
|
|
215
215
|
else:
|
|
@@ -322,7 +322,7 @@ class SimFile(SimFileBase, DefaultMemory): # TODO: pick a better base class omg
|
|
|
322
322
|
|
|
323
323
|
data = _deps_unpack(data)[0]
|
|
324
324
|
if size is None:
|
|
325
|
-
size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.Bits) else len(data)
|
|
325
|
+
size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.ast.Bits) else len(data)
|
|
326
326
|
# \(_^^)/
|
|
327
327
|
self.store(pos, data, size=size)
|
|
328
328
|
new_end = _deps_unpack(pos + size)[0] # decline to store SAO
|
|
@@ -442,7 +442,7 @@ class SimPackets(SimFileBase):
|
|
|
442
442
|
if type(x) is tuple
|
|
443
443
|
else (
|
|
444
444
|
(x, len(x) // 8)
|
|
445
|
-
if isinstance(x, claripy.Bits)
|
|
445
|
+
if isinstance(x, claripy.ast.Bits)
|
|
446
446
|
else (
|
|
447
447
|
(x.ast, len(x) // 8)
|
|
448
448
|
if isinstance(x, SimActionObject)
|
|
@@ -593,7 +593,7 @@ class SimPackets(SimFileBase):
|
|
|
593
593
|
if type(data) is bytes:
|
|
594
594
|
data = claripy.BVV(data)
|
|
595
595
|
if size is None:
|
|
596
|
-
size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.Bits) else len(data)
|
|
596
|
+
size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.ast.Bits) else len(data)
|
|
597
597
|
if type(size) is int:
|
|
598
598
|
size = claripy.BVV(size, self.state.arch.bits)
|
|
599
599
|
|
|
@@ -903,7 +903,7 @@ class SimFileDescriptor(SimFileDescriptorBase):
|
|
|
903
903
|
|
|
904
904
|
data = _deps_unpack(data)[0]
|
|
905
905
|
if size is None:
|
|
906
|
-
size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.Bits) else len(data)
|
|
906
|
+
size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.ast.Bits) else len(data)
|
|
907
907
|
|
|
908
908
|
size = self._prep_write(size)
|
|
909
909
|
self._pos = self.file.write(self._pos, data, size)
|
|
@@ -911,7 +911,7 @@ class SimFileDescriptor(SimFileDescriptorBase):
|
|
|
911
911
|
|
|
912
912
|
def seek(self, offset, whence="start"):
|
|
913
913
|
if not self.file.seekable:
|
|
914
|
-
return claripy.false
|
|
914
|
+
return claripy.false()
|
|
915
915
|
|
|
916
916
|
if type(offset) is int:
|
|
917
917
|
offset = claripy.BVV(offset, self.state.arch.bits)
|
|
@@ -929,9 +929,9 @@ class SimFileDescriptor(SimFileDescriptorBase):
|
|
|
929
929
|
|
|
930
930
|
def eof(self):
|
|
931
931
|
if not self.file.seekable:
|
|
932
|
-
return claripy.false
|
|
932
|
+
return claripy.false()
|
|
933
933
|
if not getattr(self.file, "has_end", True):
|
|
934
|
-
return claripy.false
|
|
934
|
+
return claripy.false()
|
|
935
935
|
return self._pos == self.file.size
|
|
936
936
|
|
|
937
937
|
def tell(self):
|
|
@@ -1034,7 +1034,7 @@ class SimFileDescriptorDuplex(SimFileDescriptorBase):
|
|
|
1034
1034
|
def write_data(self, data, size=None, **kwargs):
|
|
1035
1035
|
data = _deps_unpack(data)[0]
|
|
1036
1036
|
if size is None:
|
|
1037
|
-
size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.Bits) else len(data)
|
|
1037
|
+
size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.ast.Bits) else len(data)
|
|
1038
1038
|
|
|
1039
1039
|
size = self._prep_write(size)
|
|
1040
1040
|
self._write_pos = self._write_file.write(self._write_pos, data, size)
|
|
@@ -1048,16 +1048,16 @@ class SimFileDescriptorDuplex(SimFileDescriptorBase):
|
|
|
1048
1048
|
def eof(self):
|
|
1049
1049
|
# the thing that makes the most sense is for this to refer to the read eof status...
|
|
1050
1050
|
if not self._read_file.seekable:
|
|
1051
|
-
return claripy.false
|
|
1051
|
+
return claripy.false()
|
|
1052
1052
|
if not getattr(self._read_file, "has_end", True):
|
|
1053
|
-
return claripy.false
|
|
1053
|
+
return claripy.false()
|
|
1054
1054
|
return self._read_pos == self._read_file.size
|
|
1055
1055
|
|
|
1056
1056
|
def tell(self):
|
|
1057
1057
|
return None
|
|
1058
1058
|
|
|
1059
1059
|
def seek(self, offset, whence="start"):
|
|
1060
|
-
return claripy.false
|
|
1060
|
+
return claripy.false()
|
|
1061
1061
|
|
|
1062
1062
|
def size(self):
|
|
1063
1063
|
return None
|
|
@@ -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,12 +1,12 @@
|
|
|
1
1
|
# pylint:disable=abstract-method,wrong-import-position,unused-argument,missing-class-docstring,arguments-differ
|
|
2
2
|
from __future__ import annotations
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Any
|
|
4
4
|
from collections.abc import Iterable
|
|
5
5
|
|
|
6
6
|
import claripy
|
|
7
7
|
|
|
8
|
-
from
|
|
9
|
-
from
|
|
8
|
+
from angr.state_plugins.plugin import SimStatePlugin
|
|
9
|
+
from angr.errors import SimMemoryError
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class MemoryMixin(SimStatePlugin):
|
|
@@ -188,7 +188,19 @@ from .paged_memory.paged_memory_mixin import (
|
|
|
188
188
|
from .paged_memory.privileged_mixin import PrivilegedPagingMixin
|
|
189
189
|
from .paged_memory.stack_allocation_mixin import StackAllocationMixin
|
|
190
190
|
from .paged_memory.paged_memory_multivalue_mixin import PagedMemoryMultiValueMixin
|
|
191
|
-
from .paged_memory.pages import
|
|
191
|
+
from .paged_memory.pages import (
|
|
192
|
+
CooperationBase,
|
|
193
|
+
MemoryObjectMixin,
|
|
194
|
+
ISPOMixin,
|
|
195
|
+
RefcountMixin,
|
|
196
|
+
PermissionsMixin,
|
|
197
|
+
HistoryTrackingMixin,
|
|
198
|
+
PageBase,
|
|
199
|
+
PageType,
|
|
200
|
+
ListPage,
|
|
201
|
+
MVListPage,
|
|
202
|
+
UltraPage,
|
|
203
|
+
)
|
|
192
204
|
|
|
193
205
|
from .slotted_memory import SlottedMemoryMixin
|
|
194
206
|
from .regioned_memory import (
|
|
@@ -199,8 +211,8 @@ from .regioned_memory import (
|
|
|
199
211
|
MemoryRegionMetaMixin,
|
|
200
212
|
RegionedAddressConcretizationMixin,
|
|
201
213
|
)
|
|
202
|
-
from .
|
|
203
|
-
from .
|
|
214
|
+
from .keyvalue_memory_mixin import KeyValueMemoryMixin
|
|
215
|
+
from .javavm_memory_mixin import JavaVmMemoryMixin
|
|
204
216
|
|
|
205
217
|
|
|
206
218
|
class DefaultMemory(
|
|
@@ -388,3 +400,73 @@ SimState.register_default("fast_memory", FastMemory)
|
|
|
388
400
|
SimState.register_default("abs_memory", AbstractMemory)
|
|
389
401
|
SimState.register_default("keyvalue_memory", KeyValueMemory)
|
|
390
402
|
SimState.register_default("javavm_memory", JavaVmMemory)
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
__all__ = (
|
|
406
|
+
"MemoryMixin",
|
|
407
|
+
"ActionsMixinHigh",
|
|
408
|
+
"ActionsMixinLow",
|
|
409
|
+
"AddressConcretizationMixin",
|
|
410
|
+
"DataNormalizationMixin",
|
|
411
|
+
"InspectMixinHigh",
|
|
412
|
+
"ConditionalMixin",
|
|
413
|
+
"ConvenientMappingsMixin",
|
|
414
|
+
"DefaultFillerMixin",
|
|
415
|
+
"SpecialFillerMixin",
|
|
416
|
+
"ExplicitFillerMixin",
|
|
417
|
+
"DirtyAddrsMixin",
|
|
418
|
+
"HexDumperMixin",
|
|
419
|
+
"LabelMergerMixin",
|
|
420
|
+
"MultiValueMergerMixin",
|
|
421
|
+
"NameResolutionMixin",
|
|
422
|
+
"SimplificationMixin",
|
|
423
|
+
"SimpleInterfaceMixin",
|
|
424
|
+
"SizeNormalizationMixin",
|
|
425
|
+
"SizeConcretizationMixin",
|
|
426
|
+
"SmartFindMixin",
|
|
427
|
+
"SymbolicMergerMixin",
|
|
428
|
+
"TopMergerMixin",
|
|
429
|
+
"UnderconstrainedMixin",
|
|
430
|
+
"UnwrapperMixin",
|
|
431
|
+
"ClemoryBackerMixin",
|
|
432
|
+
"ConcreteBackerMixin",
|
|
433
|
+
"DictBackerMixin",
|
|
434
|
+
"PagedMemoryMixin",
|
|
435
|
+
"ListPagesMixin",
|
|
436
|
+
"UltraPagesMixin",
|
|
437
|
+
"ListPagesWithLabelsMixin",
|
|
438
|
+
"MVListPagesMixin",
|
|
439
|
+
"MVListPagesWithLabelsMixin",
|
|
440
|
+
"PrivilegedPagingMixin",
|
|
441
|
+
"StackAllocationMixin",
|
|
442
|
+
"PagedMemoryMultiValueMixin",
|
|
443
|
+
"CooperationBase",
|
|
444
|
+
"MemoryObjectMixin",
|
|
445
|
+
"ISPOMixin",
|
|
446
|
+
"RefcountMixin",
|
|
447
|
+
"PermissionsMixin",
|
|
448
|
+
"HistoryTrackingMixin",
|
|
449
|
+
"PageBase",
|
|
450
|
+
"PageType",
|
|
451
|
+
"ListPage",
|
|
452
|
+
"MVListPage",
|
|
453
|
+
"UltraPage",
|
|
454
|
+
"SlottedMemoryMixin",
|
|
455
|
+
"RegionedMemoryMixin",
|
|
456
|
+
"RegionCategoryMixin",
|
|
457
|
+
"StaticFindMixin",
|
|
458
|
+
"AbstractMergerMixin",
|
|
459
|
+
"MemoryRegionMetaMixin",
|
|
460
|
+
"RegionedAddressConcretizationMixin",
|
|
461
|
+
"KeyValueMemoryMixin",
|
|
462
|
+
"JavaVmMemoryMixin",
|
|
463
|
+
"DefaultMemory",
|
|
464
|
+
"DefaultListPagesMemory",
|
|
465
|
+
"FastMemory",
|
|
466
|
+
"AbstractMemory",
|
|
467
|
+
"RegionedMemory",
|
|
468
|
+
"LabeledMemory",
|
|
469
|
+
"MultiValuedMemory",
|
|
470
|
+
"KeyValueMemory",
|
|
471
|
+
"JavaVmMemory",
|
|
472
|
+
)
|