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,10 +3,10 @@ from typing import Any, TYPE_CHECKING
|
|
|
3
3
|
import json
|
|
4
4
|
import pickle
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
6
|
+
from angr.analyses.decompiler.structured_codegen import DummyStructuredCodeGenerator
|
|
7
|
+
from angr.analyses.decompiler.decompilation_cache import DecompilationCache
|
|
8
|
+
from angr.knowledge_plugins import StructuredCodeManager
|
|
9
|
+
from angr.angrdb.models import DbStructuredCode
|
|
10
10
|
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
12
|
from angr.knowledge_base import KnowledgeBase
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
from typing import TYPE_CHECKING
|
|
3
3
|
|
|
4
|
-
from
|
|
5
|
-
from
|
|
6
|
-
from
|
|
4
|
+
from angr.knowledge_plugins import VariableManager
|
|
5
|
+
from angr.knowledge_plugins.variables.variable_manager import VariableManagerInternal
|
|
6
|
+
from angr.angrdb.models import DbVariableCollection
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
9
9
|
from angr.knowledge_base import KnowledgeBase
|
angr/angrdb/serializers/xrefs.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# pylint:disable=unused-import
|
|
2
2
|
from __future__ import annotations
|
|
3
|
-
from
|
|
4
|
-
from
|
|
3
|
+
from angr.angrdb.models import DbXRefs
|
|
4
|
+
from angr.knowledge_plugins.xrefs import XRefManager
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class XRefsSerializer:
|
angr/calling_conventions.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
import logging
|
|
4
4
|
from typing import cast
|
|
5
|
+
from collections.abc import Iterable
|
|
5
6
|
from collections import defaultdict
|
|
6
7
|
|
|
7
8
|
import claripy
|
|
@@ -49,6 +50,7 @@ class AllocHelper:
|
|
|
49
50
|
self.base = claripy.BVS("alloc_base", ptrsize)
|
|
50
51
|
self.ptr = self.base
|
|
51
52
|
self.stores = {}
|
|
53
|
+
self.store_asts = {}
|
|
52
54
|
|
|
53
55
|
def alloc(self, size):
|
|
54
56
|
out = self.ptr
|
|
@@ -58,7 +60,7 @@ class AllocHelper:
|
|
|
58
60
|
def dump(self, val, state, loc=None):
|
|
59
61
|
if loc is None:
|
|
60
62
|
loc = self.stack_loc(val, state.arch)
|
|
61
|
-
self.stores[self.ptr
|
|
63
|
+
self.stores[self.ptr] = (val, loc)
|
|
62
64
|
return self.alloc(self.calc_size(val, state.arch))
|
|
63
65
|
|
|
64
66
|
def translate(self, val, base):
|
|
@@ -66,7 +68,7 @@ class AllocHelper:
|
|
|
66
68
|
return SimStructValue(
|
|
67
69
|
val.struct, {field: self.translate(subval, base) for field, subval in val._values.items()}
|
|
68
70
|
)
|
|
69
|
-
if isinstance(val, claripy.Bits):
|
|
71
|
+
if isinstance(val, claripy.ast.Bits):
|
|
70
72
|
return val.replace(self.base, base)
|
|
71
73
|
if type(val) is list:
|
|
72
74
|
return [self.translate(subval, base) for subval in val]
|
|
@@ -75,7 +77,7 @@ class AllocHelper:
|
|
|
75
77
|
def apply(self, state, base):
|
|
76
78
|
for ptr, (val, loc) in self.stores.items():
|
|
77
79
|
translated_val = self.translate(val, base)
|
|
78
|
-
translated_ptr = self.translate(ptr
|
|
80
|
+
translated_ptr = self.translate(ptr, base)
|
|
79
81
|
loc.set_value(state, translated_val, stack_base=translated_ptr)
|
|
80
82
|
|
|
81
83
|
def size(self):
|
|
@@ -87,7 +89,7 @@ class AllocHelper:
|
|
|
87
89
|
def calc_size(cls, val, arch):
|
|
88
90
|
if type(val) is SimStructValue:
|
|
89
91
|
return val.struct.size // arch.byte_width
|
|
90
|
-
if isinstance(val, claripy.Bits):
|
|
92
|
+
if isinstance(val, claripy.ast.Bits):
|
|
91
93
|
return len(val) // arch.byte_width
|
|
92
94
|
if type(val) is list:
|
|
93
95
|
# TODO real strides
|
|
@@ -98,7 +100,7 @@ class AllocHelper:
|
|
|
98
100
|
|
|
99
101
|
@classmethod
|
|
100
102
|
def stack_loc(cls, val, arch, offset=0):
|
|
101
|
-
if isinstance(val, claripy.Bits):
|
|
103
|
+
if isinstance(val, claripy.ast.Bits):
|
|
102
104
|
return SimStackArg(offset, len(val) // arch.byte_width)
|
|
103
105
|
if type(val) is list:
|
|
104
106
|
# TODO real strides
|
|
@@ -264,7 +266,7 @@ class SimFunctionArgument:
|
|
|
264
266
|
def refine(self, size, arch=None, offset=None, is_fp=None):
|
|
265
267
|
raise NotImplementedError
|
|
266
268
|
|
|
267
|
-
def get_footprint(self) ->
|
|
269
|
+
def get_footprint(self) -> Iterable[SimRegArg | SimStackArg]:
|
|
268
270
|
"""
|
|
269
271
|
Return a list of SimRegArg and SimStackArgs that are the base components used for this location
|
|
270
272
|
"""
|
|
@@ -289,13 +291,18 @@ class SimRegArg(SimFunctionArgument):
|
|
|
289
291
|
self.clear_entire_reg = clear_entire_reg
|
|
290
292
|
|
|
291
293
|
def get_footprint(self):
|
|
292
|
-
|
|
294
|
+
return {self}
|
|
293
295
|
|
|
294
296
|
def __repr__(self):
|
|
295
297
|
return f"<{self.reg_name}>"
|
|
296
298
|
|
|
297
299
|
def __eq__(self, other):
|
|
298
|
-
return
|
|
300
|
+
return (
|
|
301
|
+
type(other) is SimRegArg
|
|
302
|
+
and self.reg_name == other.reg_name
|
|
303
|
+
and self.reg_offset == other.reg_offset
|
|
304
|
+
and self.size == other.size
|
|
305
|
+
)
|
|
299
306
|
|
|
300
307
|
def __hash__(self):
|
|
301
308
|
return hash((self.size, self.reg_name, self.reg_offset))
|
|
@@ -337,12 +344,12 @@ class SimStackArg(SimFunctionArgument):
|
|
|
337
344
|
:ivar bool is_fp: Whether loads from this location should return a floating point bitvector
|
|
338
345
|
"""
|
|
339
346
|
|
|
340
|
-
def __init__(self, stack_offset, size, is_fp=False):
|
|
347
|
+
def __init__(self, stack_offset: int, size: int, is_fp: bool = False):
|
|
341
348
|
SimFunctionArgument.__init__(self, size, is_fp)
|
|
342
|
-
self.stack_offset = stack_offset
|
|
349
|
+
self.stack_offset: int = stack_offset
|
|
343
350
|
|
|
344
351
|
def get_footprint(self):
|
|
345
|
-
|
|
352
|
+
return {self}
|
|
346
353
|
|
|
347
354
|
def __repr__(self):
|
|
348
355
|
return f"[{self.stack_offset:#x}]"
|
|
@@ -385,8 +392,7 @@ class SimComboArg(SimFunctionArgument):
|
|
|
385
392
|
self.locations = locations
|
|
386
393
|
|
|
387
394
|
def get_footprint(self):
|
|
388
|
-
for x in self.locations
|
|
389
|
-
yield from x.get_footprint()
|
|
395
|
+
return {y for x in self.locations for y in x.get_footprint()}
|
|
390
396
|
|
|
391
397
|
def __repr__(self):
|
|
392
398
|
return f"SimComboArg({self.locations!r})"
|
|
@@ -423,8 +429,21 @@ class SimStructArg(SimFunctionArgument):
|
|
|
423
429
|
self.locs = locs
|
|
424
430
|
|
|
425
431
|
def get_footprint(self):
|
|
426
|
-
|
|
427
|
-
|
|
432
|
+
regs: defaultdict[str, set[SimRegArg]] = defaultdict(set)
|
|
433
|
+
others: set[SimRegArg | SimStackArg] = set()
|
|
434
|
+
for loc in self.locs.values():
|
|
435
|
+
for footloc in loc.get_footprint():
|
|
436
|
+
if isinstance(footloc, SimRegArg):
|
|
437
|
+
regs[footloc.reg_name].add(footloc)
|
|
438
|
+
else:
|
|
439
|
+
others.add(footloc)
|
|
440
|
+
|
|
441
|
+
for reg, locset in regs.items():
|
|
442
|
+
min_offset = min(loc.reg_offset for loc in locset)
|
|
443
|
+
max_offset = max(loc.reg_offset + loc.size for loc in locset)
|
|
444
|
+
others.add(SimRegArg(reg, max_offset - min_offset, min_offset))
|
|
445
|
+
|
|
446
|
+
return others
|
|
428
447
|
|
|
429
448
|
def get_value(self, state, **kwargs):
|
|
430
449
|
return SimStructValue(
|
|
@@ -442,8 +461,7 @@ class SimArrayArg(SimFunctionArgument):
|
|
|
442
461
|
self.locs = locs
|
|
443
462
|
|
|
444
463
|
def get_footprint(self):
|
|
445
|
-
for x in self.locs
|
|
446
|
-
yield from x.get_footprint()
|
|
464
|
+
return {y for x in self.locs for y in x.get_footprint()}
|
|
447
465
|
|
|
448
466
|
def get_value(self, state, **kwargs):
|
|
449
467
|
return [getter.get_value(state, **kwargs) for getter in self.locs]
|
|
@@ -470,7 +488,7 @@ class SimReferenceArgument(SimFunctionArgument):
|
|
|
470
488
|
self.main_loc = main_loc
|
|
471
489
|
|
|
472
490
|
def get_footprint(self):
|
|
473
|
-
|
|
491
|
+
return self.main_loc.get_footprint()
|
|
474
492
|
|
|
475
493
|
def get_value(self, state, **kwargs):
|
|
476
494
|
ptr_val = self.ptr_loc.get_value(state, **kwargs)
|
|
@@ -946,7 +964,7 @@ class SimCC:
|
|
|
946
964
|
raise TypeError(f"Type mismatch: expected {ty}, got pointer-wrapper")
|
|
947
965
|
|
|
948
966
|
if arg.buffer:
|
|
949
|
-
if isinstance(arg.value, claripy.Bits):
|
|
967
|
+
if isinstance(arg.value, claripy.ast.Bits):
|
|
950
968
|
real_value = arg.value.chop(state.arch.byte_width)
|
|
951
969
|
elif type(arg.value) in (bytes, str):
|
|
952
970
|
real_value = claripy.BVV(arg.value).chop(8)
|
|
@@ -1069,15 +1087,21 @@ class SimCC:
|
|
|
1069
1087
|
if sp_delta != cls.STACKARG_SP_DIFF:
|
|
1070
1088
|
return False
|
|
1071
1089
|
|
|
1090
|
+
def _arg_ident(a: SimRegArg | SimStackArg) -> int | str:
|
|
1091
|
+
if isinstance(a, SimRegArg):
|
|
1092
|
+
return a.reg_name
|
|
1093
|
+
return a.stack_offset
|
|
1094
|
+
|
|
1072
1095
|
sample_inst = cls(arch)
|
|
1073
|
-
all_fp_args =
|
|
1074
|
-
all_int_args =
|
|
1096
|
+
all_fp_args: set[int | str] = {_arg_ident(a) for a in sample_inst.fp_args}
|
|
1097
|
+
all_int_args: set[int | str] = {_arg_ident(a) for a in sample_inst.int_args}
|
|
1075
1098
|
both_iter = sample_inst.memory_args
|
|
1076
|
-
some_both_args =
|
|
1099
|
+
some_both_args: set[int | str] = {_arg_ident(next(both_iter)) for _ in range(len(args))}
|
|
1077
1100
|
|
|
1078
1101
|
new_args = []
|
|
1079
1102
|
for arg in args:
|
|
1080
|
-
|
|
1103
|
+
arg_ident = _arg_ident(arg)
|
|
1104
|
+
if arg_ident not in all_fp_args and arg_ident not in all_int_args and arg_ident not in some_both_args:
|
|
1081
1105
|
if isinstance(arg, SimRegArg) and arg.reg_name in sample_inst.CALLER_SAVED_REGS:
|
|
1082
1106
|
continue
|
|
1083
1107
|
return False
|
|
@@ -1258,6 +1282,8 @@ class SimCCMicrosoftAMD64(SimCC):
|
|
|
1258
1282
|
|
|
1259
1283
|
ArgSession = MicrosoftAMD64ArgSession
|
|
1260
1284
|
|
|
1285
|
+
STRUCT_RETURN_THRESHOLD = 64
|
|
1286
|
+
|
|
1261
1287
|
def next_arg(self, session, arg_type):
|
|
1262
1288
|
if isinstance(arg_type, (SimTypeArray, SimTypeFixedSizeArray)): # hack
|
|
1263
1289
|
arg_type = SimTypePointer(arg_type.elem_type).with_arch(self.arch)
|
|
@@ -1282,7 +1308,26 @@ class SimCCMicrosoftAMD64(SimCC):
|
|
|
1282
1308
|
def return_in_implicit_outparam(self, ty):
|
|
1283
1309
|
if isinstance(ty, SimTypeBottom):
|
|
1284
1310
|
return False
|
|
1285
|
-
return not isinstance(ty, SimTypeFloat) and ty.size >
|
|
1311
|
+
return not isinstance(ty, SimTypeFloat) and ty.size > self.STRUCT_RETURN_THRESHOLD
|
|
1312
|
+
|
|
1313
|
+
def return_val(self, ty, perspective_returned=False):
|
|
1314
|
+
if ty._arch is None:
|
|
1315
|
+
ty = ty.with_arch(self.arch)
|
|
1316
|
+
if not isinstance(ty, SimStruct):
|
|
1317
|
+
return super().return_val(ty, perspective_returned)
|
|
1318
|
+
|
|
1319
|
+
if ty.size > self.STRUCT_RETURN_THRESHOLD:
|
|
1320
|
+
# TODO this code is duplicated a ton of places. how should it be a function?
|
|
1321
|
+
byte_size = ty.size // self.arch.byte_width
|
|
1322
|
+
referenced_locs = [SimStackArg(offset, self.arch.bytes) for offset in range(0, byte_size, self.arch.bytes)]
|
|
1323
|
+
referenced_loc = refine_locs_with_struct_type(self.arch, referenced_locs, ty)
|
|
1324
|
+
if perspective_returned:
|
|
1325
|
+
ptr_loc = self.RETURN_VAL
|
|
1326
|
+
else:
|
|
1327
|
+
ptr_loc = self.next_arg(self.ArgSession(self), SimTypePointer(SimTypeBottom()).with_arch(self.arch))
|
|
1328
|
+
return SimReferenceArgument(ptr_loc, referenced_loc)
|
|
1329
|
+
|
|
1330
|
+
return refine_locs_with_struct_type(self.arch, [self.RETURN_VAL], ty)
|
|
1286
1331
|
|
|
1287
1332
|
|
|
1288
1333
|
class SimCCSyscall(SimCC):
|
|
@@ -95,3 +95,20 @@ from .range import SimConcretizationStrategyRange
|
|
|
95
95
|
from .single import SimConcretizationStrategySingle
|
|
96
96
|
from .solutions import SimConcretizationStrategySolutions
|
|
97
97
|
from .unlimited_range import SimConcretizationStrategyUnlimitedRange
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
__all__ = (
|
|
101
|
+
"SimConcretizationStrategy",
|
|
102
|
+
"SimConcretizationStrategyAny",
|
|
103
|
+
"SimConcretizationStrategyControlledData",
|
|
104
|
+
"SimConcretizationStrategyEval",
|
|
105
|
+
"SimConcretizationStrategyMax",
|
|
106
|
+
"SimConcretizationStrategyNonzero",
|
|
107
|
+
"SimConcretizationStrategyNonzeroRange",
|
|
108
|
+
"SimConcretizationStrategyNorepeats",
|
|
109
|
+
"SimConcretizationStrategyNorepeatsRange",
|
|
110
|
+
"SimConcretizationStrategyRange",
|
|
111
|
+
"SimConcretizationStrategySingle",
|
|
112
|
+
"SimConcretizationStrategySolutions",
|
|
113
|
+
"SimConcretizationStrategyUnlimitedRange",
|
|
114
|
+
)
|
|
@@ -29,8 +29,8 @@ class SimConcretizationStrategyNorepeats(SimConcretizationStrategy):
|
|
|
29
29
|
)
|
|
30
30
|
|
|
31
31
|
def merge(self, others):
|
|
32
|
-
seen = {s.
|
|
32
|
+
seen = {s.hash() for s in self._repeat_constraints}
|
|
33
33
|
for c in itertools.chain.from_iterable(o._repeat_constraints for o in others):
|
|
34
|
-
if c.
|
|
35
|
-
seen.add(c.
|
|
34
|
+
if c.hash() not in seen:
|
|
35
|
+
seen.add(c.hash())
|
|
36
36
|
self._repeat_constraints.append(c)
|
angr/distributed/__init__.py
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
""" angr.distributed provides a simple implementation for conducting
|
|
2
|
+
long-running symbolic-execution-based tasks.
|
|
3
|
+
"""
|
|
4
|
+
|
|
2
5
|
from __future__ import annotations
|
|
3
6
|
|
|
4
7
|
from .server import Server
|
|
8
|
+
|
|
9
|
+
__all__ = ("Server",)
|
angr/distributed/server.py
CHANGED
angr/distributed/worker.py
CHANGED
|
@@ -5,12 +5,11 @@ import logging
|
|
|
5
5
|
import sys
|
|
6
6
|
|
|
7
7
|
from angr.utils.mp import Initializer
|
|
8
|
-
from
|
|
9
|
-
from
|
|
8
|
+
from angr.exploration_techniques import ExplorationTechnique, Bucketizer
|
|
9
|
+
from angr.vaults import VaultDirShelf
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
_l = logging.getLogger(__name__)
|
|
13
|
-
_l.setLevel(logging.INFO)
|
|
14
13
|
|
|
15
14
|
|
|
16
15
|
class BadStatesDropper(ExplorationTechnique):
|
|
@@ -86,7 +85,10 @@ class Worker:
|
|
|
86
85
|
def run(self, initializer: Initializer):
|
|
87
86
|
initializer.initialize()
|
|
88
87
|
|
|
89
|
-
from
|
|
88
|
+
from angr.exploration_techniques.spiller import (
|
|
89
|
+
Spiller,
|
|
90
|
+
PickledStatesDb,
|
|
91
|
+
) # pylint:disable=import-outside-toplevel
|
|
90
92
|
|
|
91
93
|
_l.debug("Worker %d starts running...", self.worker_id)
|
|
92
94
|
if self._recursion_limit is not None and self._recursion_limit != sys.getrecursionlimit():
|
angr/engines/__init__.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .successors import SimSuccessors
|
|
3
4
|
from .engine import SimEngine, SuccessorsMixin, TLSMixin
|
|
4
5
|
|
|
@@ -30,6 +31,28 @@ class UberEngine(
|
|
|
30
31
|
pass
|
|
31
32
|
|
|
32
33
|
|
|
34
|
+
__all__ = [
|
|
35
|
+
"SimSuccessors",
|
|
36
|
+
"SimEngine",
|
|
37
|
+
"SuccessorsMixin",
|
|
38
|
+
"TLSMixin",
|
|
39
|
+
"HeavyVEXMixin",
|
|
40
|
+
"TrackActionsMixin",
|
|
41
|
+
"SimInspectMixin",
|
|
42
|
+
"HeavyResilienceMixin",
|
|
43
|
+
"SuperFastpathMixin",
|
|
44
|
+
"ProcedureMixin",
|
|
45
|
+
"ProcedureEngine",
|
|
46
|
+
"SimEngineUnicorn",
|
|
47
|
+
"SimEngineFailure",
|
|
48
|
+
"SimEngineSyscall",
|
|
49
|
+
"SimEngineConcrete",
|
|
50
|
+
"HooksMixin",
|
|
51
|
+
"SootMixin",
|
|
52
|
+
"UberEngine",
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
|
|
33
56
|
try:
|
|
34
57
|
from .pcode import HeavyPcodeMixin
|
|
35
58
|
|
|
@@ -38,5 +61,7 @@ try:
|
|
|
38
61
|
): # pylint:disable=abstract-method
|
|
39
62
|
pass
|
|
40
63
|
|
|
64
|
+
__all__.append("UberEnginePcode")
|
|
65
|
+
|
|
41
66
|
except ImportError:
|
|
42
67
|
pass
|
angr/engines/concrete.py
CHANGED
|
@@ -6,10 +6,9 @@ import claripy
|
|
|
6
6
|
|
|
7
7
|
from angr.errors import AngrError
|
|
8
8
|
from .engine import SuccessorsMixin
|
|
9
|
-
from
|
|
9
|
+
from angr.errors import SimConcreteRegisterError
|
|
10
10
|
|
|
11
11
|
l = logging.getLogger("angr.engines.concrete")
|
|
12
|
-
# l.setLevel(logging.DEBUG)
|
|
13
12
|
|
|
14
13
|
try:
|
|
15
14
|
from angr_targets.concrete import ConcreteTarget
|
|
@@ -61,7 +60,7 @@ class SimEngineConcrete(SuccessorsMixin):
|
|
|
61
60
|
|
|
62
61
|
successors.engine = "SimEngineConcrete"
|
|
63
62
|
successors.sort = "SimEngineConcrete"
|
|
64
|
-
successors.add_successor(new_state, new_state.ip, claripy.true, new_state.unicorn.jumpkind)
|
|
63
|
+
successors.add_successor(new_state, new_state.ip, claripy.true(), new_state.unicorn.jumpkind)
|
|
65
64
|
successors.description = "Concrete Successors"
|
|
66
65
|
successors.processed = True
|
|
67
66
|
|
angr/engines/engine.py
CHANGED
|
@@ -204,7 +204,7 @@ class SuccessorsMixin(SimEngine):
|
|
|
204
204
|
|
|
205
205
|
|
|
206
206
|
# pylint:disable=wrong-import-position
|
|
207
|
-
from
|
|
208
|
-
from
|
|
207
|
+
from angr import sim_options as o
|
|
208
|
+
from angr.state_plugins.inspect import BP_BEFORE, BP_AFTER
|
|
209
209
|
from .successors import SimSuccessors
|
|
210
|
-
from
|
|
210
|
+
from angr.errors import SimException
|
angr/engines/failure.py
CHANGED
|
@@ -16,7 +16,7 @@ class SimEngineFailure(SuccessorsMixin, ProcedureMixin):
|
|
|
16
16
|
raise AngrExitError(f"Cannot execute following jumpkind {jumpkind}")
|
|
17
17
|
|
|
18
18
|
if jumpkind == "Ijk_Exit":
|
|
19
|
-
from
|
|
19
|
+
from angr.procedures import SIM_PROCEDURES
|
|
20
20
|
|
|
21
21
|
l.debug("Execution terminated at %#x", state.addr)
|
|
22
22
|
terminator = SIM_PROCEDURES["stubs"]["PathTerminator"](project=self.project)
|
|
@@ -25,4 +25,4 @@ class SimEngineFailure(SuccessorsMixin, ProcedureMixin):
|
|
|
25
25
|
return super().process_successors(successors, **kwargs)
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
from
|
|
28
|
+
from angr.errors import AngrExitError
|
angr/engines/light/__init__.py
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .data import ArithmeticExpression, SpOffset, RegisterOffset
|
|
3
4
|
from .engine import SimEngineLight, SimEngineLightVEXMixin, SimEngineLightAILMixin, SimEngineLightVEX, SimEngineLightAIL
|
|
5
|
+
|
|
6
|
+
__all__ = (
|
|
7
|
+
"ArithmeticExpression",
|
|
8
|
+
"SpOffset",
|
|
9
|
+
"RegisterOffset",
|
|
10
|
+
"SimEngineLight",
|
|
11
|
+
"SimEngineLightVEXMixin",
|
|
12
|
+
"SimEngineLightAILMixin",
|
|
13
|
+
"SimEngineLightVEX",
|
|
14
|
+
"SimEngineLightAIL",
|
|
15
|
+
)
|
angr/engines/light/data.py
CHANGED
angr/engines/light/engine.py
CHANGED
|
@@ -10,12 +10,12 @@ import pyvex
|
|
|
10
10
|
import claripy
|
|
11
11
|
import archinfo
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
13
|
+
from angr.misc.ux import once
|
|
14
|
+
from angr.engines.vex.claripy.datalayer import value as claripy_value
|
|
15
|
+
from angr.engines.vex.claripy.irop import UnsupportedIROpError, SimOperationError, vexop_to_simop
|
|
16
|
+
from angr.code_location import CodeLocation
|
|
17
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
18
|
+
from angr.engines.engine import SimEngine
|
|
19
19
|
import contextlib
|
|
20
20
|
|
|
21
21
|
|
|
@@ -419,7 +419,7 @@ class SimEngineLightVEXMixin(SimEngineLightMixin):
|
|
|
419
419
|
vector_size, vector_count = None, None
|
|
420
420
|
if handler is not None:
|
|
421
421
|
# vector information
|
|
422
|
-
m = re.match(r"Iop_[^\d]+(\d+)
|
|
422
|
+
m = re.match(r"Iop_[^\d]+(\d+)[SU]{0,1}x(\d+)", expr.op)
|
|
423
423
|
if m is not None:
|
|
424
424
|
vector_size = int(m.group(1))
|
|
425
425
|
vector_count = int(m.group(2))
|
|
@@ -1340,12 +1340,8 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
|
|
|
1340
1340
|
if expr_1 is None:
|
|
1341
1341
|
expr_1 = arg1
|
|
1342
1342
|
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
return expr_0 << expr_1.concrete_value
|
|
1346
|
-
except TypeError:
|
|
1347
|
-
pass
|
|
1348
|
-
|
|
1343
|
+
if isinstance(expr_0, claripy.ast.BV) and isinstance(expr_1, claripy.ast.BV) and expr_1.concrete:
|
|
1344
|
+
return expr_0 << expr_1.concrete_value
|
|
1349
1345
|
return ailment.Expr.BinaryOp(expr.idx, "Shl", [expr_0, expr_1], expr.signed, **expr.tags)
|
|
1350
1346
|
|
|
1351
1347
|
def _ail_handle_Sal(self, expr):
|
|
@@ -1385,10 +1381,9 @@ class SimEngineLightAILMixin(SimEngineLightMixin):
|
|
|
1385
1381
|
if expr_1 is None:
|
|
1386
1382
|
expr_1 = arg1
|
|
1387
1383
|
|
|
1388
|
-
|
|
1389
|
-
return expr_0 >> expr_1
|
|
1390
|
-
|
|
1391
|
-
return ailment.Expr.BinaryOp(expr.idx, "Sar", [expr_0, expr_1], expr.signed, **expr.tags)
|
|
1384
|
+
if isinstance(expr_0, claripy.ast.Bits) and isinstance(expr_1, claripy.ast.Bits) and expr_1.concrete:
|
|
1385
|
+
return expr_0 >> expr_1.concrete_value
|
|
1386
|
+
return ailment.Expr.BinaryOp(expr.idx, "Sar", [expr_0, expr_1], expr.signed, **expr.tags)
|
|
1392
1387
|
|
|
1393
1388
|
def _ail_handle_Concat(self, expr):
|
|
1394
1389
|
arg0, arg1 = expr.operands
|
angr/engines/pcode/__init__.py
CHANGED
angr/engines/pcode/behavior.py
CHANGED
angr/engines/pcode/cc.py
CHANGED
angr/engines/pcode/emulate.py
CHANGED
|
@@ -4,12 +4,12 @@ import logging
|
|
|
4
4
|
import claripy
|
|
5
5
|
from claripy.ast.bv import BV
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from angr.engines.engine import SimEngineBase
|
|
8
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
9
9
|
from .lifter import IRSB
|
|
10
10
|
from .behavior import OpBehavior
|
|
11
|
-
from
|
|
12
|
-
from
|
|
11
|
+
from angr.errors import AngrError
|
|
12
|
+
from angr.state_plugins.inspect import BP_BEFORE, BP_AFTER
|
|
13
13
|
import contextlib
|
|
14
14
|
|
|
15
15
|
with contextlib.suppress(ImportError):
|
angr/engines/pcode/engine.py
CHANGED
|
@@ -7,9 +7,9 @@ import logging
|
|
|
7
7
|
from angr.calling_conventions import DEFAULT_CC, default_cc, SimRegArg
|
|
8
8
|
from angr.engines.engine import SuccessorsMixin, SimSuccessors
|
|
9
9
|
from angr.misc.ux import once
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from
|
|
10
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
11
|
+
from angr import sim_options as o
|
|
12
|
+
from angr import errors
|
|
13
13
|
from .lifter import PcodeLifterEngineMixin, IRSB
|
|
14
14
|
from .emulate import PcodeEmulatorMixin
|
|
15
15
|
|
|
@@ -85,7 +85,7 @@ class HeavyPcodeMixin(
|
|
|
85
85
|
successors.sort = "IRSB"
|
|
86
86
|
successors.description = "IRSB"
|
|
87
87
|
self.state.history.recent_block_count = 1
|
|
88
|
-
self.state.scratch.guard = claripy.true
|
|
88
|
+
self.state.scratch.guard = claripy.true()
|
|
89
89
|
self.state.scratch.sim_procedure = None
|
|
90
90
|
addr = successors.addr
|
|
91
91
|
self.state.scratch.bbl_addr = addr
|
|
@@ -240,7 +240,7 @@ class HeavyPcodeMixin(
|
|
|
240
240
|
l.debug("%s adding postcall exit.", self)
|
|
241
241
|
|
|
242
242
|
ret_state = exit_state.copy()
|
|
243
|
-
guard = claripy.true if o.TRUE_RET_EMULATION_GUARD in self.state.options else claripy.false
|
|
243
|
+
guard = claripy.true() if o.TRUE_RET_EMULATION_GUARD in self.state.options else claripy.false()
|
|
244
244
|
ret_target = claripy.BVV(successors.addr + self.state.scratch.irsb.size, ret_state.arch.bits)
|
|
245
245
|
if ret_state.arch.call_pushes_ret and not exit_jumpkind.startswith("Ijk_Sys"):
|
|
246
246
|
ret_state.regs.sp = ret_state.regs.sp + ret_state.arch.bytes
|
angr/engines/pcode/lifter.py
CHANGED
|
@@ -20,13 +20,13 @@ from cachetools import LRUCache
|
|
|
20
20
|
from pyvex.errors import PyVEXError, SkipStatementsError, LiftingException
|
|
21
21
|
|
|
22
22
|
from .behavior import BehaviorFactory
|
|
23
|
-
from
|
|
24
|
-
from
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
from
|
|
28
|
-
from
|
|
29
|
-
from
|
|
23
|
+
from angr.engines.engine import SimEngineBase
|
|
24
|
+
from angr.state_plugins.inspect import BP_AFTER, BP_BEFORE
|
|
25
|
+
from angr.sim_state import SimState
|
|
26
|
+
from angr.misc.ux import once
|
|
27
|
+
from angr.errors import SimEngineError, SimTranslationError, SimError
|
|
28
|
+
from angr import sim_options as o
|
|
29
|
+
from angr.block import DisassemblerBlock, DisassemblerInsn
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
try:
|
angr/engines/procedure.py
CHANGED
|
@@ -67,6 +67,6 @@ class ProcedureEngine(ProcedureMixin, SuccessorsMixin):
|
|
|
67
67
|
self.process_procedure(self.state, successors, procedure, **kwargs)
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
from
|
|
71
|
-
from
|
|
72
|
-
from
|
|
70
|
+
from angr import sim_options as o
|
|
71
|
+
from angr import errors
|
|
72
|
+
from angr.state_plugins.inspect import BP_BEFORE, BP_AFTER
|