angr 9.2.119__py3-none-macosx_11_0_arm64.whl → 9.2.121__py3-none-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of angr might be problematic. Click here for more details.
- angr/__init__.py +217 -2
- angr/__main__.py +14 -4
- angr/analyses/__init__.py +54 -0
- angr/analyses/analysis.py +8 -8
- angr/analyses/backward_slice.py +4 -4
- angr/analyses/bindiff.py +2 -2
- angr/analyses/callee_cleanup_finder.py +1 -1
- angr/analyses/calling_convention.py +21 -15
- angr/analyses/cdg.py +1 -1
- angr/analyses/cfg/__init__.py +12 -1
- angr/analyses/cfg/cfb.py +2 -2
- angr/analyses/cfg/cfg.py +1 -1
- angr/analyses/cfg/cfg_base.py +28 -11
- angr/analyses/cfg/cfg_emulated.py +18 -18
- angr/analyses/cfg/cfg_fast.py +3 -2
- angr/analyses/cfg/cfg_fast_soot.py +5 -5
- angr/analyses/cfg/cfg_job_base.py +3 -3
- angr/analyses/cfg/indirect_jump_resolvers/__init__.py +15 -0
- angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py +1 -1
- angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py +4 -4
- angr/analyses/cfg/indirect_jump_resolvers/default_resolvers.py +2 -0
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +27 -20
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +140 -369
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_got.py +148 -0
- angr/analyses/cfg/indirect_jump_resolvers/resolver.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/x86_pe_iat.py +1 -1
- angr/analyses/cfg_slice_to_sink/__init__.py +8 -0
- angr/analyses/class_identifier.py +2 -2
- angr/analyses/code_tagging.py +2 -2
- angr/analyses/complete_calling_conventions.py +3 -3
- angr/analyses/congruency_check.py +1 -2
- angr/analyses/data_dep/__init__.py +13 -0
- angr/analyses/data_dep/data_dependency_analysis.py +5 -5
- angr/analyses/datagraph_meta.py +1 -1
- angr/analyses/ddg.py +3 -3
- angr/analyses/decompiler/__init__.py +25 -0
- angr/analyses/decompiler/ail_simplifier.py +8 -8
- angr/analyses/decompiler/block_simplifier.py +3 -3
- angr/analyses/decompiler/callsite_maker.py +5 -3
- angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py +20 -0
- angr/analyses/decompiler/clinic.py +25 -26
- angr/analyses/decompiler/condition_processor.py +7 -5
- angr/analyses/decompiler/counters/__init__.py +11 -0
- angr/analyses/decompiler/decompiler.py +24 -10
- angr/analyses/decompiler/dephication/seqnode_dephication.py +19 -1
- angr/analyses/decompiler/optimization_passes/__init__.py +66 -54
- angr/analyses/decompiler/optimization_passes/const_derefs.py +1 -1
- angr/analyses/decompiler/optimization_passes/const_prop_reverter.py +3 -3
- angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py +1 -1
- angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py +3 -0
- angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_reverter.py +7 -7
- angr/analyses/decompiler/optimization_passes/duplication_reverter/similarity.py +1 -1
- angr/analyses/decompiler/optimization_passes/duplication_reverter/utils.py +1 -1
- angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
- angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +2 -2
- angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +4 -4
- angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +6 -6
- angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
- angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +7 -3
- angr/analyses/decompiler/optimization_passes/optimization_pass.py +34 -28
- angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +2 -2
- angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +1 -1
- angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +3 -3
- angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +5 -5
- angr/analyses/decompiler/optimization_passes/return_duplicator_high.py +1 -1
- angr/analyses/decompiler/peephole_optimizations/__init__.py +61 -19
- angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +1 -1
- angr/analyses/decompiler/presets/__init__.py +20 -0
- angr/analyses/decompiler/presets/basic.py +30 -0
- angr/analyses/decompiler/presets/fast.py +54 -0
- angr/analyses/decompiler/presets/full.py +64 -0
- angr/analyses/decompiler/presets/preset.py +37 -0
- angr/analyses/decompiler/region_identifier.py +21 -7
- angr/analyses/decompiler/region_simplifiers/__init__.py +3 -0
- angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +3 -3
- angr/analyses/decompiler/region_simplifiers/cascading_ifs.py +3 -3
- angr/analyses/decompiler/region_simplifiers/expr_folding.py +2 -2
- angr/analyses/decompiler/region_simplifiers/goto.py +3 -3
- angr/analyses/decompiler/region_simplifiers/if_.py +2 -2
- angr/analyses/decompiler/region_simplifiers/ifelse.py +4 -4
- angr/analyses/decompiler/region_simplifiers/loop.py +4 -4
- angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -1
- angr/analyses/decompiler/region_simplifiers/region_simplifier.py +6 -6
- angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +12 -5
- angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py +3 -3
- angr/analyses/decompiler/sequence_walker.py +11 -12
- angr/analyses/decompiler/structured_codegen/__init__.py +14 -0
- angr/analyses/decompiler/structured_codegen/base.py +1 -1
- angr/analyses/decompiler/structured_codegen/c.py +13 -13
- angr/analyses/decompiler/structured_codegen/dwarf_import.py +2 -2
- angr/analyses/decompiler/structuring/__init__.py +11 -1
- angr/analyses/decompiler/structuring/dream.py +8 -8
- angr/analyses/decompiler/structuring/phoenix.py +6 -6
- angr/analyses/decompiler/structuring/recursive_structurer.py +7 -7
- angr/analyses/decompiler/structuring/sailr.py +2 -2
- angr/analyses/decompiler/structuring/structurer_base.py +9 -4
- angr/analyses/decompiler/structuring/structurer_nodes.py +18 -9
- angr/analyses/decompiler/utils.py +4 -2
- angr/analyses/disassembly.py +6 -6
- angr/analyses/disassembly_utils.py +1 -1
- angr/analyses/dominance_frontier.py +1 -1
- angr/analyses/find_objects_static.py +5 -5
- angr/analyses/flirt.py +3 -3
- angr/analyses/forward_analysis/__init__.py +9 -0
- angr/analyses/forward_analysis/forward_analysis.py +4 -4
- angr/analyses/forward_analysis/job_info.py +1 -1
- angr/analyses/forward_analysis/visitors/__init__.py +9 -0
- angr/analyses/forward_analysis/visitors/graph.py +2 -2
- angr/analyses/identifier/__init__.py +3 -0
- angr/analyses/identifier/custom_callable.py +2 -3
- angr/analyses/identifier/errors.py +1 -1
- angr/analyses/identifier/functions/__init__.py +4 -4
- angr/analyses/identifier/functions/atoi.py +1 -1
- angr/analyses/identifier/functions/based_atoi.py +1 -1
- angr/analyses/identifier/functions/fdprintf.py +1 -1
- angr/analyses/identifier/functions/free.py +2 -2
- angr/analyses/identifier/functions/int2str.py +1 -1
- angr/analyses/identifier/functions/malloc.py +2 -2
- angr/analyses/identifier/functions/memcmp.py +1 -1
- angr/analyses/identifier/functions/memcpy.py +3 -3
- angr/analyses/identifier/functions/memset.py +1 -1
- angr/analyses/identifier/functions/printf.py +1 -1
- angr/analyses/identifier/functions/recv_until.py +2 -2
- angr/analyses/identifier/functions/skip_calloc.py +2 -2
- angr/analyses/identifier/functions/skip_realloc.py +2 -2
- angr/analyses/identifier/functions/skip_recv_n.py +1 -1
- angr/analyses/identifier/functions/snprintf.py +1 -1
- angr/analyses/identifier/functions/sprintf.py +1 -1
- angr/analyses/identifier/functions/strcmp.py +1 -1
- angr/analyses/identifier/functions/strcpy.py +1 -1
- angr/analyses/identifier/functions/strlen.py +1 -1
- angr/analyses/identifier/functions/strncmp.py +1 -1
- angr/analyses/identifier/functions/strncpy.py +1 -1
- angr/analyses/identifier/functions/strtol.py +1 -1
- angr/analyses/identifier/identify.py +3 -3
- angr/analyses/identifier/runner.py +6 -6
- angr/analyses/init_finder.py +1 -1
- angr/analyses/loop_analysis.py +2 -2
- angr/analyses/propagator/__init__.py +3 -0
- angr/analyses/propagator/engine_ail.py +4 -4
- angr/analyses/propagator/engine_base.py +2 -2
- angr/analyses/propagator/engine_vex.py +2 -2
- angr/analyses/propagator/outdated_definition_walker.py +3 -3
- angr/analyses/propagator/propagator.py +3 -3
- angr/analyses/propagator/top_checker_mixin.py +1 -1
- angr/analyses/proximity_graph.py +3 -3
- angr/analyses/reaching_definitions/__init__.py +6 -6
- angr/analyses/reaching_definitions/dep_graph.py +5 -5
- angr/analyses/reaching_definitions/engine_ail.py +8 -8
- angr/analyses/reaching_definitions/engine_vex.py +18 -13
- angr/analyses/reaching_definitions/heap_allocator.py +3 -3
- angr/analyses/reaching_definitions/rd_state.py +4 -10
- angr/analyses/reaching_definitions/reaching_definitions.py +11 -11
- angr/analyses/reaching_definitions/subject.py +3 -3
- angr/analyses/reassembler.py +5 -5
- angr/analyses/{s_propagator/s_propagator.py → s_propagator.py} +1 -1
- angr/analyses/s_reaching_definitions/__init__.py +11 -1
- angr/analyses/s_reaching_definitions/s_rda_model.py +117 -0
- angr/analyses/s_reaching_definitions/s_rda_view.py +213 -0
- angr/analyses/s_reaching_definitions/s_reaching_definitions.py +159 -0
- angr/analyses/stack_pointer_tracker.py +5 -5
- angr/analyses/static_hooker.py +2 -2
- angr/analyses/typehoon/__init__.py +3 -0
- angr/analyses/typehoon/lifter.py +1 -1
- angr/analyses/typehoon/translator.py +2 -2
- angr/analyses/typehoon/typehoon.py +3 -3
- angr/analyses/typehoon/typevars.py +37 -16
- angr/analyses/variable_recovery/__init__.py +6 -0
- angr/analyses/variable_recovery/engine_ail.py +5 -5
- angr/analyses/variable_recovery/engine_base.py +7 -7
- angr/analyses/variable_recovery/engine_vex.py +7 -7
- angr/analyses/variable_recovery/variable_recovery.py +5 -5
- angr/analyses/variable_recovery/variable_recovery_base.py +7 -7
- angr/analyses/variable_recovery/variable_recovery_fast.py +7 -7
- angr/analyses/veritesting.py +8 -8
- angr/analyses/vfg.py +13 -13
- angr/analyses/vsa_ddg.py +3 -3
- angr/analyses/vtable.py +1 -1
- angr/analyses/xrefs.py +3 -3
- angr/angrdb/__init__.py +3 -0
- angr/angrdb/db.py +3 -3
- angr/angrdb/serializers/__init__.py +7 -0
- angr/angrdb/serializers/cfg_model.py +2 -2
- angr/angrdb/serializers/comments.py +2 -2
- angr/angrdb/serializers/funcs.py +2 -2
- angr/angrdb/serializers/kb.py +2 -2
- angr/angrdb/serializers/labels.py +2 -2
- angr/angrdb/serializers/loader.py +2 -2
- angr/angrdb/serializers/structured_code.py +4 -4
- angr/angrdb/serializers/variables.py +3 -3
- angr/angrdb/serializers/xrefs.py +2 -2
- angr/block.py +9 -1
- angr/calling_conventions.py +1 -1
- angr/concretization_strategies/__init__.py +17 -0
- angr/concretization_strategies/max.py +1 -1
- angr/concretization_strategies/norepeats_range.py +1 -1
- angr/distributed/__init__.py +6 -1
- angr/distributed/server.py +0 -1
- angr/distributed/worker.py +6 -4
- angr/engines/__init__.py +25 -0
- angr/engines/concrete.py +1 -2
- angr/engines/engine.py +8 -15
- angr/engines/failure.py +2 -2
- angr/engines/light/__init__.py +12 -0
- angr/engines/light/data.py +1 -1
- angr/engines/light/engine.py +6 -6
- angr/engines/pcode/__init__.py +7 -1
- angr/engines/pcode/behavior.py +1 -1
- angr/engines/pcode/cc.py +1 -1
- angr/engines/pcode/emulate.py +4 -4
- angr/engines/pcode/engine.py +3 -3
- angr/engines/pcode/lifter.py +15 -7
- angr/engines/procedure.py +3 -3
- angr/engines/soot/__init__.py +3 -0
- angr/engines/soot/engine.py +8 -8
- angr/engines/soot/expressions/__init__.py +33 -0
- angr/engines/soot/expressions/arrayref.py +1 -1
- angr/engines/soot/expressions/base.py +1 -1
- angr/engines/soot/expressions/cast.py +1 -1
- angr/engines/soot/expressions/condition.py +1 -1
- angr/engines/soot/expressions/constants.py +1 -1
- angr/engines/soot/expressions/invoke.py +2 -2
- angr/engines/soot/expressions/new.py +1 -1
- angr/engines/soot/expressions/newArray.py +1 -1
- angr/engines/soot/expressions/newMultiArray.py +1 -1
- angr/engines/soot/statements/__init__.py +16 -0
- angr/engines/soot/statements/assign.py +1 -1
- angr/engines/soot/statements/base.py +3 -3
- angr/engines/soot/values/__init__.py +14 -0
- angr/engines/soot/values/arrayref.py +1 -1
- angr/engines/soot/values/instancefieldref.py +1 -1
- angr/engines/soot/values/staticfieldref.py +1 -1
- angr/engines/soot/values/thisref.py +2 -2
- angr/engines/successors.py +8 -8
- angr/engines/syscall.py +1 -1
- angr/engines/unicorn.py +11 -11
- angr/engines/vex/__init__.py +18 -3
- angr/engines/vex/claripy/__init__.py +3 -0
- angr/engines/vex/claripy/ccall.py +2 -3
- angr/engines/vex/claripy/datalayer.py +9 -12
- angr/engines/vex/heavy/__init__.py +11 -1
- angr/engines/vex/heavy/actions.py +19 -24
- angr/engines/vex/heavy/heavy.py +13 -7
- angr/engines/vex/heavy/inspect.py +2 -2
- angr/engines/vex/heavy/resilience.py +2 -2
- angr/engines/vex/heavy/super_fastpath.py +3 -3
- angr/engines/vex/lifter.py +8 -6
- angr/engines/vex/light/__init__.py +7 -0
- angr/engines/vex/light/light.py +4 -4
- angr/engines/vex/light/slicing.py +1 -1
- angr/errors.py +0 -4
- angr/exploration_techniques/__init__.py +0 -1
- angr/exploration_techniques/bucketizer.py +9 -10
- angr/exploration_techniques/common.py +2 -2
- angr/exploration_techniques/director.py +4 -4
- angr/exploration_techniques/explorer.py +3 -3
- angr/exploration_techniques/loop_seer.py +3 -3
- angr/exploration_techniques/oppologist.py +3 -3
- angr/exploration_techniques/slicecutor.py +1 -1
- angr/exploration_techniques/spiller.py +1 -1
- angr/exploration_techniques/suggestions.py +4 -4
- angr/exploration_techniques/symbion.py +0 -1
- angr/exploration_techniques/threading.py +2 -2
- angr/exploration_techniques/tracer.py +3 -3
- angr/exploration_techniques/veritesting.py +1 -1
- angr/factory.py +5 -0
- angr/flirt/__init__.py +0 -1
- angr/{knowledge_base/knowledge_base.py → knowledge_base.py} +13 -15
- angr/knowledge_plugins/__init__.py +23 -1
- angr/knowledge_plugins/callsite_prototypes.py +2 -2
- angr/knowledge_plugins/cfg/cfg_manager.py +1 -1
- angr/knowledge_plugins/cfg/cfg_model.py +6 -6
- angr/knowledge_plugins/cfg/indirect_jump.py +1 -1
- angr/knowledge_plugins/cfg/memory_data.py +3 -2
- angr/knowledge_plugins/debug_variables.py +2 -2
- angr/knowledge_plugins/functions/__init__.py +6 -0
- angr/knowledge_plugins/functions/function.py +21 -16
- angr/knowledge_plugins/functions/function_manager.py +2 -2
- angr/knowledge_plugins/functions/function_parser.py +3 -3
- angr/knowledge_plugins/functions/soot_function.py +2 -2
- angr/knowledge_plugins/key_definitions/atoms.py +2 -2
- angr/knowledge_plugins/key_definitions/definition.py +3 -3
- angr/knowledge_plugins/key_definitions/key_definition_manager.py +2 -2
- angr/knowledge_plugins/key_definitions/uses.py +2 -2
- angr/knowledge_plugins/propagations/__init__.py +7 -0
- angr/knowledge_plugins/propagations/prop_value.py +1 -1
- angr/knowledge_plugins/{structured_code/manager.py → structured_code.py} +6 -3
- angr/knowledge_plugins/types.py +1 -1
- angr/knowledge_plugins/variables/__init__.py +6 -0
- angr/knowledge_plugins/variables/variable_access.py +3 -3
- angr/knowledge_plugins/variables/variable_manager.py +7 -7
- angr/knowledge_plugins/xrefs/__init__.py +9 -1
- angr/knowledge_plugins/xrefs/xref.py +5 -5
- angr/knowledge_plugins/xrefs/xref_manager.py +3 -3
- angr/lib/angr_native.dylib +0 -0
- angr/misc/__init__.py +12 -2
- angr/misc/loggers.py +2 -2
- angr/procedures/__init__.py +9 -0
- angr/procedures/cgc/receive.py +2 -2
- angr/procedures/cgc/transmit.py +1 -1
- angr/procedures/definitions/__init__.py +8 -8
- angr/procedures/definitions/cgc.py +1 -1
- angr/procedures/definitions/glibc.py +2 -15
- angr/procedures/definitions/gnulib.py +2 -6
- angr/procedures/definitions/libstdcpp.py +2 -2
- angr/procedures/definitions/linux_kernel.py +2 -3
- angr/procedures/definitions/linux_loader.py +1 -1
- angr/procedures/definitions/msvcr.py +2 -2
- angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-4.py +3 -18
- angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-6.py +3 -18
- angr/procedures/definitions/wdk_clfs.py +3 -18
- angr/procedures/definitions/wdk_fltmgr.py +3 -18
- angr/procedures/definitions/wdk_fwpkclnt.py +3 -18
- angr/procedures/definitions/wdk_fwpuclnt.py +3 -18
- angr/procedures/definitions/wdk_gdi32.py +3 -18
- angr/procedures/definitions/wdk_hal.py +3 -18
- angr/procedures/definitions/wdk_ksecdd.py +3 -18
- angr/procedures/definitions/wdk_ndis.py +3 -18
- angr/procedures/definitions/wdk_ntoskrnl.py +3 -18
- angr/procedures/definitions/wdk_offreg.py +3 -18
- angr/procedures/definitions/wdk_pshed.py +3 -18
- angr/procedures/definitions/wdk_secur32.py +3 -18
- angr/procedures/definitions/wdk_vhfum.py +3 -18
- angr/procedures/definitions/win32_aclui.py +3 -18
- angr/procedures/definitions/win32_activeds.py +3 -18
- angr/procedures/definitions/win32_advapi32.py +3 -18
- angr/procedures/definitions/win32_advpack.py +3 -18
- angr/procedures/definitions/win32_amsi.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-apiquery-l2-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-backgroundtask-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-enclave-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-errorhandling-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-file-fromapp-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-handle-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-ioring-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-marshal-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-5.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-7.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-8.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-path-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-slapi-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-state-helpers-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-synch-l1-2-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-util-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-1.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-registration-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-robuffer-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-roparameterizediid-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-1.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-wow64-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-dx-d3dkmt-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-deviceinformation-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-expandedresources-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-mm-misc-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-net-isolation-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-base-l1-2-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-5.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-stream-winrt-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-wsl-api-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_apphelp.py +3 -18
- angr/procedures/definitions/win32_authz.py +3 -18
- angr/procedures/definitions/win32_avicap32.py +3 -18
- angr/procedures/definitions/win32_avifil32.py +3 -18
- angr/procedures/definitions/win32_avrt.py +3 -18
- angr/procedures/definitions/win32_bcp47mrm.py +3 -18
- angr/procedures/definitions/win32_bcrypt.py +3 -18
- angr/procedures/definitions/win32_bcryptprimitives.py +3 -18
- angr/procedures/definitions/win32_bluetoothapis.py +3 -18
- angr/procedures/definitions/win32_bthprops.py +3 -3
- angr/procedures/definitions/win32_bthprops_cpl.py +3 -18
- angr/procedures/definitions/win32_cabinet.py +3 -18
- angr/procedures/definitions/win32_certadm.py +3 -18
- angr/procedures/definitions/win32_certpoleng.py +3 -18
- angr/procedures/definitions/win32_cfgmgr32.py +3 -18
- angr/procedures/definitions/win32_chakra.py +3 -18
- angr/procedures/definitions/win32_cldapi.py +3 -18
- angr/procedures/definitions/win32_clfsw32.py +3 -18
- angr/procedures/definitions/win32_clusapi.py +3 -18
- angr/procedures/definitions/win32_comctl32.py +3 -18
- angr/procedures/definitions/win32_comdlg32.py +3 -18
- angr/procedures/definitions/win32_compstui.py +3 -18
- angr/procedures/definitions/win32_computecore.py +3 -18
- angr/procedures/definitions/win32_computenetwork.py +3 -18
- angr/procedures/definitions/win32_computestorage.py +3 -18
- angr/procedures/definitions/win32_comsvcs.py +3 -18
- angr/procedures/definitions/win32_coremessaging.py +3 -3
- angr/procedures/definitions/win32_credui.py +3 -18
- angr/procedures/definitions/win32_crypt32.py +3 -18
- angr/procedures/definitions/win32_cryptnet.py +3 -18
- angr/procedures/definitions/win32_cryptui.py +3 -18
- angr/procedures/definitions/win32_cryptxml.py +3 -18
- angr/procedures/definitions/win32_cscapi.py +3 -18
- angr/procedures/definitions/win32_d2d1.py +3 -18
- angr/procedures/definitions/win32_d3d10.py +3 -18
- angr/procedures/definitions/win32_d3d10_1.py +3 -18
- angr/procedures/definitions/win32_d3d11.py +3 -18
- angr/procedures/definitions/win32_d3d12.py +3 -18
- angr/procedures/definitions/win32_d3d9.py +3 -18
- angr/procedures/definitions/win32_d3dcompiler_47.py +3 -18
- angr/procedures/definitions/win32_d3dcsx.py +3 -18
- angr/procedures/definitions/win32_davclnt.py +3 -18
- angr/procedures/definitions/win32_dbgeng.py +3 -18
- angr/procedures/definitions/win32_dbghelp.py +3 -18
- angr/procedures/definitions/win32_dbgmodel.py +3 -18
- angr/procedures/definitions/win32_dciman32.py +3 -18
- angr/procedures/definitions/win32_dcomp.py +3 -18
- angr/procedures/definitions/win32_ddraw.py +3 -18
- angr/procedures/definitions/win32_deviceaccess.py +3 -18
- angr/procedures/definitions/win32_dflayout.py +3 -18
- angr/procedures/definitions/win32_dhcpcsvc.py +3 -18
- angr/procedures/definitions/win32_dhcpcsvc6.py +3 -18
- angr/procedures/definitions/win32_dhcpsapi.py +3 -18
- angr/procedures/definitions/win32_diagnosticdataquery.py +3 -18
- angr/procedures/definitions/win32_dinput8.py +3 -18
- angr/procedures/definitions/win32_directml.py +3 -18
- angr/procedures/definitions/win32_dmprocessxmlfiltered.py +3 -18
- angr/procedures/definitions/win32_dnsapi.py +3 -18
- angr/procedures/definitions/win32_drt.py +3 -18
- angr/procedures/definitions/win32_drtprov.py +3 -18
- angr/procedures/definitions/win32_drttransport.py +3 -18
- angr/procedures/definitions/win32_dsound.py +3 -18
- angr/procedures/definitions/win32_dsparse.py +3 -18
- angr/procedures/definitions/win32_dsprop.py +3 -18
- angr/procedures/definitions/win32_dssec.py +3 -18
- angr/procedures/definitions/win32_dsuiext.py +3 -18
- angr/procedures/definitions/win32_dwmapi.py +3 -18
- angr/procedures/definitions/win32_dwrite.py +3 -18
- angr/procedures/definitions/win32_dxcompiler.py +3 -18
- angr/procedures/definitions/win32_dxcore.py +3 -18
- angr/procedures/definitions/win32_dxgi.py +3 -18
- angr/procedures/definitions/win32_dxva2.py +3 -18
- angr/procedures/definitions/win32_eappcfg.py +3 -18
- angr/procedures/definitions/win32_eappprxy.py +3 -18
- angr/procedures/definitions/win32_efswrt.py +3 -18
- angr/procedures/definitions/win32_elscore.py +3 -18
- angr/procedures/definitions/win32_esent.py +3 -18
- angr/procedures/definitions/win32_evr.py +3 -18
- angr/procedures/definitions/win32_faultrep.py +3 -18
- angr/procedures/definitions/win32_fhsvcctl.py +3 -18
- angr/procedures/definitions/win32_firewallapi.py +3 -18
- angr/procedures/definitions/win32_fltlib.py +3 -18
- angr/procedures/definitions/win32_fontsub.py +3 -18
- angr/procedures/definitions/win32_forceinline.py +3 -18
- angr/procedures/definitions/win32_fwpuclnt.py +3 -18
- angr/procedures/definitions/win32_fxsutility.py +3 -18
- angr/procedures/definitions/win32_gdi32.py +3 -18
- angr/procedures/definitions/win32_gdiplus.py +3 -18
- angr/procedures/definitions/win32_glu32.py +3 -18
- angr/procedures/definitions/win32_gpedit.py +3 -18
- angr/procedures/definitions/win32_hhctrl_ocx.py +3 -18
- angr/procedures/definitions/win32_hid.py +3 -18
- angr/procedures/definitions/win32_hlink.py +3 -18
- angr/procedures/definitions/win32_hrtfapo.py +3 -18
- angr/procedures/definitions/win32_httpapi.py +3 -18
- angr/procedures/definitions/win32_icm32.py +3 -18
- angr/procedures/definitions/win32_icmui.py +3 -18
- angr/procedures/definitions/win32_icu.py +3 -18
- angr/procedures/definitions/win32_ieframe.py +3 -18
- angr/procedures/definitions/win32_imagehlp.py +3 -18
- angr/procedures/definitions/win32_imgutil.py +3 -18
- angr/procedures/definitions/win32_imm32.py +3 -18
- angr/procedures/definitions/win32_infocardapi.py +3 -18
- angr/procedures/definitions/win32_inkobjcore.py +3 -18
- angr/procedures/definitions/win32_iphlpapi.py +3 -18
- angr/procedures/definitions/win32_iscsidsc.py +3 -18
- angr/procedures/definitions/win32_isolatedwindowsenvironmentutils.py +3 -18
- angr/procedures/definitions/win32_kernel32.py +3 -18
- angr/procedures/definitions/win32_kernelbase.py +3 -18
- angr/procedures/definitions/win32_keycredmgr.py +3 -18
- angr/procedures/definitions/win32_ksproxy_ax.py +3 -18
- angr/procedures/definitions/win32_ksuser.py +3 -18
- angr/procedures/definitions/win32_ktmw32.py +3 -18
- angr/procedures/definitions/win32_licenseprotection.py +3 -18
- angr/procedures/definitions/win32_loadperf.py +3 -18
- angr/procedures/definitions/win32_magnification.py +3 -18
- angr/procedures/definitions/win32_mapi32.py +3 -18
- angr/procedures/definitions/win32_mdmlocalmanagement.py +3 -18
- angr/procedures/definitions/win32_mdmregistration.py +3 -18
- angr/procedures/definitions/win32_mf.py +3 -18
- angr/procedures/definitions/win32_mfcore.py +3 -18
- angr/procedures/definitions/win32_mfplat.py +3 -18
- angr/procedures/definitions/win32_mfplay.py +3 -18
- angr/procedures/definitions/win32_mfreadwrite.py +3 -18
- angr/procedures/definitions/win32_mfsensorgroup.py +3 -18
- angr/procedures/definitions/win32_mfsrcsnk.py +3 -18
- angr/procedures/definitions/win32_mgmtapi.py +3 -18
- angr/procedures/definitions/win32_mi.py +3 -18
- angr/procedures/definitions/win32_mmdevapi.py +3 -18
- angr/procedures/definitions/win32_mpr.py +3 -18
- angr/procedures/definitions/win32_mprapi.py +3 -18
- angr/procedures/definitions/win32_mqrt.py +3 -18
- angr/procedures/definitions/win32_mrmsupport.py +3 -18
- angr/procedures/definitions/win32_msacm32.py +3 -18
- angr/procedures/definitions/win32_msajapi.py +3 -18
- angr/procedures/definitions/win32_mscms.py +3 -18
- angr/procedures/definitions/win32_mscoree.py +3 -18
- angr/procedures/definitions/win32_msctfmonitor.py +3 -18
- angr/procedures/definitions/win32_msdelta.py +3 -18
- angr/procedures/definitions/win32_msdmo.py +3 -18
- angr/procedures/definitions/win32_msdrm.py +3 -18
- angr/procedures/definitions/win32_msi.py +3 -18
- angr/procedures/definitions/win32_msimg32.py +3 -18
- angr/procedures/definitions/win32_mspatcha.py +3 -18
- angr/procedures/definitions/win32_mspatchc.py +3 -18
- angr/procedures/definitions/win32_msports.py +3 -18
- angr/procedures/definitions/win32_msrating.py +3 -18
- angr/procedures/definitions/win32_mssign32.py +3 -18
- angr/procedures/definitions/win32_mstask.py +3 -18
- angr/procedures/definitions/win32_msvfw32.py +3 -18
- angr/procedures/definitions/win32_mswsock.py +3 -18
- angr/procedures/definitions/win32_mtxdm.py +3 -18
- angr/procedures/definitions/win32_ncrypt.py +3 -18
- angr/procedures/definitions/win32_ndfapi.py +3 -18
- angr/procedures/definitions/win32_netapi32.py +3 -18
- angr/procedures/definitions/win32_netsh.py +3 -18
- angr/procedures/definitions/win32_netshell.py +3 -18
- angr/procedures/definitions/win32_newdev.py +3 -18
- angr/procedures/definitions/win32_ninput.py +3 -18
- angr/procedures/definitions/win32_normaliz.py +3 -18
- angr/procedures/definitions/win32_ntdll.py +3 -18
- angr/procedures/definitions/win32_ntdllk.py +3 -18
- angr/procedures/definitions/win32_ntdsapi.py +3 -18
- angr/procedures/definitions/win32_ntlanman.py +3 -18
- angr/procedures/definitions/win32_odbc32.py +3 -18
- angr/procedures/definitions/win32_odbcbcp.py +3 -18
- angr/procedures/definitions/win32_ole32.py +3 -18
- angr/procedures/definitions/win32_oleacc.py +3 -18
- angr/procedures/definitions/win32_oleaut32.py +3 -18
- angr/procedures/definitions/win32_oledlg.py +3 -18
- angr/procedures/definitions/win32_ondemandconnroutehelper.py +3 -18
- angr/procedures/definitions/win32_opengl32.py +3 -18
- angr/procedures/definitions/win32_opmxbox.py +3 -18
- angr/procedures/definitions/win32_p2p.py +3 -18
- angr/procedures/definitions/win32_p2pgraph.py +3 -18
- angr/procedures/definitions/win32_pdh.py +3 -18
- angr/procedures/definitions/win32_peerdist.py +3 -18
- angr/procedures/definitions/win32_powrprof.py +3 -18
- angr/procedures/definitions/win32_prntvpt.py +3 -18
- angr/procedures/definitions/win32_projectedfslib.py +3 -18
- angr/procedures/definitions/win32_propsys.py +3 -18
- angr/procedures/definitions/win32_psapi.py +3 -18
- angr/procedures/definitions/win32_quartz.py +3 -18
- angr/procedures/definitions/win32_query.py +3 -18
- angr/procedures/definitions/win32_qwave.py +3 -18
- angr/procedures/definitions/win32_rasapi32.py +3 -18
- angr/procedures/definitions/win32_rasdlg.py +3 -18
- angr/procedures/definitions/win32_resutils.py +3 -18
- angr/procedures/definitions/win32_rometadata.py +3 -3
- angr/procedures/definitions/win32_rpcns4.py +3 -18
- angr/procedures/definitions/win32_rpcproxy.py +3 -18
- angr/procedures/definitions/win32_rpcrt4.py +3 -18
- angr/procedures/definitions/win32_rstrtmgr.py +3 -18
- angr/procedures/definitions/win32_rtm.py +3 -18
- angr/procedures/definitions/win32_rtutils.py +3 -18
- angr/procedures/definitions/win32_rtworkq.py +3 -18
- angr/procedures/definitions/win32_sas.py +3 -18
- angr/procedures/definitions/win32_scarddlg.py +3 -18
- angr/procedures/definitions/win32_schannel.py +3 -18
- angr/procedures/definitions/win32_sechost.py +3 -18
- angr/procedures/definitions/win32_secur32.py +3 -18
- angr/procedures/definitions/win32_sensapi.py +3 -18
- angr/procedures/definitions/win32_sensorsutilsv2.py +3 -18
- angr/procedures/definitions/win32_setupapi.py +3 -18
- angr/procedures/definitions/win32_sfc.py +3 -18
- angr/procedures/definitions/win32_shdocvw.py +3 -18
- angr/procedures/definitions/win32_shell32.py +3 -18
- angr/procedures/definitions/win32_shlwapi.py +3 -18
- angr/procedures/definitions/win32_slc.py +3 -18
- angr/procedures/definitions/win32_slcext.py +3 -18
- angr/procedures/definitions/win32_slwga.py +3 -18
- angr/procedures/definitions/win32_snmpapi.py +3 -18
- angr/procedures/definitions/win32_spoolss.py +3 -18
- angr/procedures/definitions/win32_srclient.py +3 -18
- angr/procedures/definitions/win32_srpapi.py +3 -18
- angr/procedures/definitions/win32_sspicli.py +3 -18
- angr/procedures/definitions/win32_sti.py +3 -18
- angr/procedures/definitions/win32_t2embed.py +3 -18
- angr/procedures/definitions/win32_tapi32.py +3 -18
- angr/procedures/definitions/win32_tbs.py +3 -18
- angr/procedures/definitions/win32_tdh.py +3 -18
- angr/procedures/definitions/win32_tokenbinding.py +3 -18
- angr/procedures/definitions/win32_traffic.py +3 -18
- angr/procedures/definitions/win32_txfw32.py +3 -18
- angr/procedures/definitions/win32_ualapi.py +3 -18
- angr/procedures/definitions/win32_uiautomationcore.py +3 -18
- angr/procedures/definitions/win32_urlmon.py +3 -18
- angr/procedures/definitions/win32_user32.py +4 -19
- angr/procedures/definitions/win32_userenv.py +3 -18
- angr/procedures/definitions/win32_usp10.py +3 -18
- angr/procedures/definitions/win32_uxtheme.py +3 -18
- angr/procedures/definitions/win32_verifier.py +3 -18
- angr/procedures/definitions/win32_version.py +3 -18
- angr/procedures/definitions/win32_vertdll.py +3 -18
- angr/procedures/definitions/win32_virtdisk.py +3 -18
- angr/procedures/definitions/win32_vmdevicehost.py +3 -18
- angr/procedures/definitions/win32_vmsavedstatedumpprovider.py +3 -18
- angr/procedures/definitions/win32_vssapi.py +3 -18
- angr/procedures/definitions/win32_wcmapi.py +3 -18
- angr/procedures/definitions/win32_wdsbp.py +3 -18
- angr/procedures/definitions/win32_wdsclientapi.py +3 -18
- angr/procedures/definitions/win32_wdsmc.py +3 -18
- angr/procedures/definitions/win32_wdspxe.py +3 -18
- angr/procedures/definitions/win32_wdstptc.py +3 -18
- angr/procedures/definitions/win32_webauthn.py +3 -18
- angr/procedures/definitions/win32_webservices.py +3 -18
- angr/procedures/definitions/win32_websocket.py +3 -18
- angr/procedures/definitions/win32_wecapi.py +3 -18
- angr/procedures/definitions/win32_wer.py +3 -18
- angr/procedures/definitions/win32_wevtapi.py +3 -18
- angr/procedures/definitions/win32_winbio.py +3 -18
- angr/procedures/definitions/win32_windows_ai_machinelearning.py +3 -18
- angr/procedures/definitions/win32_windows_data_pdf.py +3 -3
- angr/procedures/definitions/win32_windows_media_mediacontrol.py +3 -18
- angr/procedures/definitions/win32_windows_networking.py +3 -18
- angr/procedures/definitions/win32_windows_ui_xaml.py +3 -18
- angr/procedures/definitions/win32_windowscodecs.py +3 -18
- angr/procedures/definitions/win32_winfax.py +3 -18
- angr/procedures/definitions/win32_winhttp.py +3 -18
- angr/procedures/definitions/win32_winhvemulation.py +3 -18
- angr/procedures/definitions/win32_winhvplatform.py +3 -18
- angr/procedures/definitions/win32_wininet.py +3 -18
- angr/procedures/definitions/win32_winml.py +3 -18
- angr/procedures/definitions/win32_winmm.py +3 -18
- angr/procedures/definitions/win32_winscard.py +3 -18
- angr/procedures/definitions/win32_winspool.py +3 -3
- angr/procedures/definitions/win32_winspool_drv.py +3 -18
- angr/procedures/definitions/win32_wintrust.py +3 -18
- angr/procedures/definitions/win32_winusb.py +3 -18
- angr/procedures/definitions/win32_wlanapi.py +3 -18
- angr/procedures/definitions/win32_wlanui.py +3 -18
- angr/procedures/definitions/win32_wldap32.py +3 -18
- angr/procedures/definitions/win32_wldp.py +3 -18
- angr/procedures/definitions/win32_wmvcore.py +3 -18
- angr/procedures/definitions/win32_wnvapi.py +3 -18
- angr/procedures/definitions/win32_wofutil.py +3 -18
- angr/procedures/definitions/win32_ws2_32.py +3 -18
- angr/procedures/definitions/win32_wscapi.py +3 -18
- angr/procedures/definitions/win32_wsclient.py +3 -18
- angr/procedures/definitions/win32_wsdapi.py +3 -18
- angr/procedures/definitions/win32_wsmsvc.py +3 -18
- angr/procedures/definitions/win32_wsnmp32.py +3 -18
- angr/procedures/definitions/win32_wtsapi32.py +3 -18
- angr/procedures/definitions/win32_xaudio2_8.py +3 -18
- angr/procedures/definitions/win32_xinput1_4.py +3 -18
- angr/procedures/definitions/win32_xinputuap.py +3 -3
- angr/procedures/definitions/win32_xmllite.py +3 -18
- angr/procedures/definitions/win32_xolehlp.py +3 -18
- angr/procedures/definitions/win32_xpsprint.py +3 -18
- angr/procedures/glibc/scanf.py +2 -2
- angr/procedures/glibc/sscanf.py +1 -1
- angr/procedures/java/__init__.py +6 -3
- angr/procedures/java/unconstrained.py +3 -3
- angr/procedures/java_io/read.py +1 -1
- angr/procedures/java_io/write.py +1 -1
- angr/procedures/java_jni/__init__.py +4 -4
- angr/procedures/java_jni/array_operations.py +2 -2
- angr/procedures/java_jni/field_access.py +3 -3
- angr/procedures/java_jni/method_calls.py +2 -2
- angr/procedures/java_jni/object_operations.py +1 -1
- angr/procedures/java_jni/string_operations.py +1 -1
- angr/procedures/java_lang/character.py +1 -1
- angr/procedures/java_lang/double.py +1 -1
- angr/procedures/java_lang/exit.py +1 -1
- angr/procedures/java_lang/getsimplename.py +1 -1
- angr/procedures/java_lang/integer.py +2 -2
- angr/procedures/java_lang/load_library.py +1 -1
- angr/procedures/java_lang/math.py +1 -1
- angr/procedures/java_lang/string.py +3 -3
- angr/procedures/java_lang/stringbuilder.py +2 -2
- angr/procedures/java_lang/system.py +1 -1
- angr/procedures/java_util/collection.py +2 -2
- angr/procedures/java_util/iterator.py +2 -2
- angr/procedures/java_util/list.py +3 -3
- angr/procedures/java_util/map.py +3 -3
- angr/procedures/java_util/random.py +1 -1
- angr/procedures/java_util/scanner_nextline.py +2 -2
- angr/procedures/libc/fseek.py +1 -1
- angr/procedures/libc/memcpy.py +1 -1
- angr/procedures/libc/strlen.py +12 -4
- angr/procedures/libc/strncmp.py +9 -4
- angr/procedures/linux_kernel/iovec.py +3 -3
- angr/procedures/linux_kernel/mmap.py +1 -1
- angr/procedures/linux_kernel/stat.py +1 -1
- angr/procedures/linux_kernel/sysinfo.py +1 -1
- angr/procedures/posix/bzero.py +1 -1
- angr/procedures/posix/mmap.py +1 -1
- angr/procedures/posix/send.py +1 -1
- angr/procedures/posix/syslog.py +2 -3
- angr/procedures/procedure_dict.py +2 -2
- angr/procedures/stubs/format_parser.py +5 -5
- angr/procedures/tracer/random.py +1 -1
- angr/procedures/tracer/receive.py +1 -1
- angr/procedures/tracer/transmit.py +1 -1
- angr/procedures/uclibc/__uClibc_main.py +1 -1
- angr/protos/__init__.py +8 -0
- angr/protos/cfg_pb2.py +23 -15
- angr/protos/function_pb2.py +19 -21
- angr/protos/primitives_pb2.py +46 -112
- angr/protos/variables_pb2.py +38 -114
- angr/protos/xrefs_pb2.py +17 -18
- angr/sim_options.py +0 -4
- angr/sim_state.py +2 -78
- angr/sim_type.py +9 -18
- angr/simos/__init__.py +12 -0
- angr/simos/cgc.py +5 -5
- angr/simos/javavm.py +12 -12
- angr/simos/linux.py +5 -5
- angr/simos/simos.py +11 -15
- angr/simos/userland.py +3 -3
- angr/simos/windows.py +5 -10
- angr/state_plugins/__init__.py +84 -28
- angr/state_plugins/callstack.py +1 -1
- angr/state_plugins/concrete.py +3 -4
- angr/state_plugins/filesystem.py +3 -3
- angr/state_plugins/gdb.py +1 -1
- angr/state_plugins/heap/__init__.py +14 -5
- angr/state_plugins/heap/heap_base.py +5 -4
- angr/state_plugins/heap/heap_brk.py +1 -1
- angr/state_plugins/heap/heap_freelist.py +1 -1
- angr/state_plugins/heap/heap_ptmalloc.py +2 -20
- angr/state_plugins/heap/utils.py +1 -1
- angr/state_plugins/history.py +2 -2
- angr/state_plugins/javavm_classloader.py +3 -3
- angr/state_plugins/jni_references.py +1 -1
- angr/state_plugins/light_registers.py +3 -3
- angr/state_plugins/log.py +1 -1
- angr/state_plugins/plugin.py +3 -2
- angr/state_plugins/posix.py +3 -3
- angr/state_plugins/preconstrainer.py +4 -4
- angr/state_plugins/scratch.py +3 -3
- angr/state_plugins/sim_action_object.py +1 -1
- angr/state_plugins/solver.py +85 -32
- angr/state_plugins/symbolizer.py +2 -3
- angr/state_plugins/uc_manager.py +1 -1
- angr/state_plugins/unicorn_engine.py +4 -4
- angr/state_plugins/view.py +1 -1
- angr/storage/__init__.py +9 -4
- angr/storage/file.py +4 -4
- angr/storage/memory_mixins/__init__.py +89 -162
- angr/storage/memory_mixins/actions_mixin.py +3 -3
- angr/storage/memory_mixins/address_concretization_mixin.py +7 -7
- angr/storage/memory_mixins/bvv_conversion_mixin.py +2 -2
- angr/storage/memory_mixins/clouseau_mixin.py +3 -2
- angr/storage/memory_mixins/conditional_store_mixin.py +1 -1
- angr/storage/memory_mixins/convenient_mappings_mixin.py +3 -3
- angr/storage/memory_mixins/default_filler_mixin.py +4 -4
- angr/storage/memory_mixins/dirty_addrs_mixin.py +2 -1
- angr/storage/memory_mixins/hex_dumper_mixin.py +2 -2
- angr/storage/memory_mixins/{javavm_memory/javavm_memory_mixin.py → javavm_memory_mixin.py} +15 -12
- angr/storage/memory_mixins/{keyvalue_memory/keyvalue_memory_mixin.py → keyvalue_memory_mixin.py} +11 -6
- angr/storage/memory_mixins/label_merger_mixin.py +1 -1
- angr/storage/memory_mixins/memory_mixin.py +163 -0
- angr/storage/memory_mixins/multi_value_merger_mixin.py +1 -1
- angr/storage/memory_mixins/name_resolution_mixin.py +5 -3
- angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +2 -2
- angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/__init__.py +16 -1
- angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/ispo_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/permissions_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/refcount_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +2 -2
- angr/storage/memory_mixins/paged_memory/stack_allocation_mixin.py +2 -2
- angr/storage/memory_mixins/regioned_memory/__init__.py +10 -0
- angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +1 -2
- angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +2 -1
- angr/storage/memory_mixins/regioned_memory/region_data.py +2 -2
- angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +1 -1
- angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +4 -4
- angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +8 -20
- angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
- angr/storage/memory_mixins/simple_interface_mixin.py +3 -2
- angr/storage/memory_mixins/simplification_mixin.py +3 -2
- angr/storage/memory_mixins/size_resolution_mixin.py +2 -2
- angr/storage/memory_mixins/slotted_memory.py +3 -3
- angr/storage/memory_mixins/smart_find_mixin.py +2 -2
- angr/storage/memory_mixins/symbolic_merger_mixin.py +2 -1
- angr/storage/memory_mixins/top_merger_mixin.py +3 -2
- angr/storage/memory_mixins/underconstrained_mixin.py +5 -3
- angr/storage/memory_mixins/unwrapper_mixin.py +3 -2
- angr/storage/memory_object.py +1 -1
- angr/utils/__init__.py +12 -0
- angr/utils/enums_conv.py +1 -1
- angr/utils/library.py +2 -2
- angr/utils/mp.py +1 -1
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/METADATA +7 -8
- angr-9.2.121.dist-info/RECORD +1342 -0
- angr/analyses/s_liveness/__init__.py +0 -2
- angr/analyses/s_propagator/__init__.py +0 -2
- angr/analyses/s_reaching_definitions/s_rda.py +0 -479
- angr/knowledge_base/__init__.py +0 -2
- angr/knowledge_plugins/structured_code/__init__.py +0 -2
- angr/knowledge_plugins/sync/__init__.py +0 -2
- angr/knowledge_plugins/sync/sync_controller.py +0 -324
- angr/misc/range.py +0 -24
- angr/misc/weakpatch.py +0 -59
- angr/storage/memory_mixins/javavm_memory/__init__.py +0 -2
- angr/storage/memory_mixins/keyvalue_memory/__init__.py +0 -2
- angr/storage/pcap.py +0 -65
- angr/utils/typing.py +0 -18
- angr-9.2.119.dist-info/RECORD +0 -1345
- /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/LICENSE +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/WHEEL +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/entry_points.txt +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/top_level.txt +0 -0
|
@@ -7,7 +7,6 @@ from angr.state_plugins.sim_action_object import _raw_ast, SimActionObject
|
|
|
7
7
|
from angr import errors
|
|
8
8
|
|
|
9
9
|
l = logging.getLogger(name=__name__)
|
|
10
|
-
# l.setLevel(logging.DEBUG)
|
|
11
10
|
|
|
12
11
|
# pylint: disable=R0911
|
|
13
12
|
# pylint: disable=W0613
|
|
@@ -44,7 +43,7 @@ def boolean_extend(O, a, b, size):
|
|
|
44
43
|
def op_concretize(op):
|
|
45
44
|
if type(op) is int:
|
|
46
45
|
return op
|
|
47
|
-
op_e = op
|
|
46
|
+
op_e = claripy.excavate_ite(op)
|
|
48
47
|
if op_e.op == "If":
|
|
49
48
|
cases = list(claripy.reverse_ite_cases(op_e))
|
|
50
49
|
if all(c.op == "BVV" for _, c in cases):
|
|
@@ -57,7 +56,7 @@ def op_concretize(op):
|
|
|
57
56
|
|
|
58
57
|
|
|
59
58
|
def strip_simaction(val):
|
|
60
|
-
if
|
|
59
|
+
if isinstance(val, SimActionObject):
|
|
61
60
|
return _raw_ast(val)
|
|
62
61
|
return val
|
|
63
62
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
import logging
|
|
3
4
|
|
|
4
5
|
import claripy
|
|
5
6
|
import pyvex
|
|
6
7
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
|
|
11
|
-
from
|
|
8
|
+
from angr import errors
|
|
9
|
+
from angr import sim_options as o
|
|
10
|
+
from angr.engines.vex.light import VEXMixin
|
|
11
|
+
|
|
12
|
+
from . import ccall, irop
|
|
12
13
|
|
|
13
14
|
l = logging.getLogger(__name__)
|
|
14
15
|
zero = claripy.BVV(0, 32)
|
|
@@ -39,13 +40,8 @@ class ClaripyDataMixin(VEXMixin):
|
|
|
39
40
|
|
|
40
41
|
# util methods
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def _is_false(self, v):
|
|
46
|
-
return claripy.is_false(v)
|
|
47
|
-
|
|
48
|
-
def _optimize_guarded_addr(self, addr, guard):
|
|
43
|
+
@staticmethod
|
|
44
|
+
def _optimize_guarded_addr(addr, guard):
|
|
49
45
|
# optimization: is the guard the same as the condition inside the address? if so, unpack the address and remove
|
|
50
46
|
# the guarding condition.
|
|
51
47
|
if (
|
|
@@ -65,6 +61,7 @@ class ClaripyDataMixin(VEXMixin):
|
|
|
65
61
|
|
|
66
62
|
# statements
|
|
67
63
|
|
|
64
|
+
# pylint: disable=too-many-positional-arguments
|
|
68
65
|
def _perform_vex_stmt_LoadG(self, addr, alt, guard, dst, cvt, end):
|
|
69
66
|
addr = self._optimize_guarded_addr(addr, guard)
|
|
70
67
|
super()._perform_vex_stmt_LoadG(addr, alt, guard, dst, cvt, end)
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from .actions import TrackActionsMixin
|
|
2
4
|
from .heavy import HeavyVEXMixin
|
|
3
5
|
from .inspect import SimInspectMixin
|
|
4
|
-
from .actions import TrackActionsMixin
|
|
5
6
|
from .resilience import HeavyResilienceMixin
|
|
6
7
|
from .super_fastpath import SuperFastpathMixin
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = (
|
|
11
|
+
"TrackActionsMixin",
|
|
12
|
+
"HeavyVEXMixin",
|
|
13
|
+
"SimInspectMixin",
|
|
14
|
+
"HeavyResilienceMixin",
|
|
15
|
+
"SuperFastpathMixin",
|
|
16
|
+
)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
import pyvex
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
import pyvex
|
|
5
4
|
|
|
6
|
-
from angr.state_plugins.sim_action import SimActionObject, SimActionData, SimActionExit, SimActionOperation
|
|
7
5
|
from angr import sim_options as o
|
|
6
|
+
from angr.state_plugins.sim_action import SimActionData, SimActionExit, SimActionObject, SimActionOperation
|
|
7
|
+
|
|
8
|
+
from .heavy import HeavyVEXMixin
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
class TrackActionsMixin(HeavyVEXMixin):
|
|
@@ -15,12 +16,6 @@ class TrackActionsMixin(HeavyVEXMixin):
|
|
|
15
16
|
|
|
16
17
|
__tls = ("__tmp_deps",)
|
|
17
18
|
|
|
18
|
-
def _is_true(self, v):
|
|
19
|
-
return super()._is_true(v[0])
|
|
20
|
-
|
|
21
|
-
def _is_false(self, v):
|
|
22
|
-
return super()._is_false(v[0])
|
|
23
|
-
|
|
24
19
|
def _optimize_guarded_addr(self, addr, guard):
|
|
25
20
|
addr, addr_deps = addr
|
|
26
21
|
guard, _ = guard
|
|
@@ -97,8 +92,8 @@ class TrackActionsMixin(HeavyVEXMixin):
|
|
|
97
92
|
a = self.__tmp_deps.get(tmp, frozenset())
|
|
98
93
|
return result, a
|
|
99
94
|
|
|
100
|
-
def _perform_vex_expr_Get(self,
|
|
101
|
-
offset, offset_deps =
|
|
95
|
+
def _perform_vex_expr_Get(self, offset, ty, **kwargs):
|
|
96
|
+
offset, offset_deps = offset
|
|
102
97
|
result = super()._perform_vex_expr_Get(offset, ty, **kwargs)
|
|
103
98
|
|
|
104
99
|
if o.TRACK_REGISTER_ACTIONS in self.state.options:
|
|
@@ -117,15 +112,15 @@ class TrackActionsMixin(HeavyVEXMixin):
|
|
|
117
112
|
a = frozenset()
|
|
118
113
|
return result, a
|
|
119
114
|
|
|
120
|
-
def _perform_vex_expr_Load(self,
|
|
121
|
-
addr, addr_deps =
|
|
115
|
+
def _perform_vex_expr_Load(self, addr, ty, endness, condition=None, **kwargs):
|
|
116
|
+
addr, addr_deps = addr
|
|
122
117
|
|
|
123
118
|
if condition is not None:
|
|
124
119
|
condition, condition_deps = condition
|
|
125
120
|
else:
|
|
126
121
|
condition_deps = None
|
|
127
122
|
|
|
128
|
-
result = super()._perform_vex_expr_Load(addr, ty,
|
|
123
|
+
result = super()._perform_vex_expr_Load(addr, ty, endness, condition=condition, **kwargs)
|
|
129
124
|
|
|
130
125
|
if o.TRACK_MEMORY_ACTIONS in self.state.options:
|
|
131
126
|
addr_ao = SimActionObject(addr, deps=addr_deps, state=self.state)
|
|
@@ -162,9 +157,9 @@ class TrackActionsMixin(HeavyVEXMixin):
|
|
|
162
157
|
self.__tmp_deps[tmp] = data_deps
|
|
163
158
|
super()._perform_vex_stmt_WrTmp(tmp, data, deps=data_deps)
|
|
164
159
|
|
|
165
|
-
def _perform_vex_stmt_Put(self,
|
|
166
|
-
offset,
|
|
167
|
-
data, data_deps =
|
|
160
|
+
def _perform_vex_stmt_Put(self, offset, data, **kwargs):
|
|
161
|
+
offset, _ = offset
|
|
162
|
+
data, data_deps = data
|
|
168
163
|
# track the put
|
|
169
164
|
if o.TRACK_REGISTER_ACTIONS in self.state.options:
|
|
170
165
|
data_ao = SimActionObject(data, deps=data_deps, state=self.state)
|
|
@@ -178,9 +173,9 @@ class TrackActionsMixin(HeavyVEXMixin):
|
|
|
178
173
|
|
|
179
174
|
super()._perform_vex_stmt_Put(offset, data, action=a, **kwargs)
|
|
180
175
|
|
|
181
|
-
def _perform_vex_stmt_Store(self,
|
|
182
|
-
addr, addr_deps =
|
|
183
|
-
data, data_deps =
|
|
176
|
+
def _perform_vex_stmt_Store(self, addr, data, endness, condition=None, **kwargs):
|
|
177
|
+
addr, addr_deps = addr
|
|
178
|
+
data, data_deps = data
|
|
184
179
|
|
|
185
180
|
if condition is not None:
|
|
186
181
|
condition, condition_deps = condition
|
|
@@ -210,11 +205,11 @@ class TrackActionsMixin(HeavyVEXMixin):
|
|
|
210
205
|
else:
|
|
211
206
|
a = None
|
|
212
207
|
|
|
213
|
-
super()._perform_vex_stmt_Store(addr, data,
|
|
208
|
+
super()._perform_vex_stmt_Store(addr, data, endness, action=a, condition=condition, **kwargs)
|
|
214
209
|
|
|
215
|
-
def _perform_vex_stmt_Exit(self,
|
|
216
|
-
guard, guard_deps =
|
|
217
|
-
target, target_deps =
|
|
210
|
+
def _perform_vex_stmt_Exit(self, guard, expr, jumpkind):
|
|
211
|
+
guard, guard_deps = guard
|
|
212
|
+
target, target_deps = expr
|
|
218
213
|
|
|
219
214
|
if o.TRACK_JMP_ACTIONS in self.state.options:
|
|
220
215
|
guard_ao = SimActionObject(guard, deps=guard_deps, state=self.state)
|
angr/engines/vex/heavy/heavy.py
CHANGED
|
@@ -4,12 +4,12 @@ import claripy
|
|
|
4
4
|
import pyvex
|
|
5
5
|
|
|
6
6
|
from angr.engines.engine import SuccessorsMixin
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from
|
|
7
|
+
from angr.engines.vex.light import VEXMixin
|
|
8
|
+
from angr.engines.vex.lifter import VEXLifter
|
|
9
|
+
from angr.engines.vex.claripy.datalayer import ClaripyDataMixin, symbol
|
|
10
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
11
|
+
from angr import sim_options as o
|
|
12
|
+
from angr import errors
|
|
13
13
|
from . import dirty
|
|
14
14
|
|
|
15
15
|
l = logging.getLogger(__name__)
|
|
@@ -251,7 +251,13 @@ class HeavyVEXMixin(SuccessorsMixin, ClaripyDataMixin, SimStateStorageMixin, VEX
|
|
|
251
251
|
|
|
252
252
|
# Raise an exception if we're suddenly in self-modifying code
|
|
253
253
|
if (self.project is None or self.project.selfmodifying_code) and self.state.scratch.dirty_addrs:
|
|
254
|
-
|
|
254
|
+
instruction_len = stmt.len
|
|
255
|
+
if instruction_len == 0:
|
|
256
|
+
# We don't know how long this instruction is.
|
|
257
|
+
# Conservatively assume it is the maximum instruction
|
|
258
|
+
# length for the purpose of dirty checks.
|
|
259
|
+
instruction_len = self.project.arch.max_inst_bytes
|
|
260
|
+
for subaddr in range(instruction_len):
|
|
255
261
|
if subaddr + stmt.addr in self.state.scratch.dirty_addrs:
|
|
256
262
|
raise errors.SimReliftException(self.state)
|
|
257
263
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from
|
|
3
|
-
from
|
|
2
|
+
from angr.engines.vex.light import VEXMixin
|
|
3
|
+
from angr.state_plugins import BP_BEFORE, BP_AFTER, NO_OVERRIDE
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class SimInspectMixin(VEXMixin):
|
|
@@ -4,8 +4,8 @@ import pyvex
|
|
|
4
4
|
from angr import sim_options as o
|
|
5
5
|
|
|
6
6
|
from .concretizers import concretizers
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from angr.engines.vex.light.resilience import VEXResilienceMixin, raiseme
|
|
8
|
+
from angr.engines.vex.claripy.datalayer import ClaripyDataMixin, symbol, value
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class HeavyResilienceMixin(VEXResilienceMixin, ClaripyDataMixin):
|
|
@@ -2,9 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
import pyvex
|
|
3
3
|
import claripy
|
|
4
4
|
|
|
5
|
-
from
|
|
6
|
-
from
|
|
7
|
-
from
|
|
5
|
+
from angr import sim_options as o
|
|
6
|
+
from angr.errors import SimMissingTempError
|
|
7
|
+
from angr.engines.vex.light.slicing import VEXSlicingMixin
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class SuperFastpathMixin(VEXSlicingMixin):
|
angr/engines/vex/lifter.py
CHANGED
|
@@ -8,11 +8,11 @@ import cle
|
|
|
8
8
|
from archinfo import ArchARM
|
|
9
9
|
import claripy
|
|
10
10
|
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
11
|
+
from angr.engines.engine import SimEngineBase
|
|
12
|
+
from angr.state_plugins.inspect import BP_AFTER, BP_BEFORE, NO_OVERRIDE
|
|
13
|
+
from angr.misc.ux import once
|
|
14
|
+
from angr.errors import SimEngineError, SimTranslationError, SimError
|
|
15
|
+
from angr import sim_options as o
|
|
16
16
|
|
|
17
17
|
l = logging.getLogger(__name__)
|
|
18
18
|
|
|
@@ -93,6 +93,7 @@ class VEXLifter(SimEngineBase):
|
|
|
93
93
|
collect_data_refs=False,
|
|
94
94
|
cross_insn_opt=None,
|
|
95
95
|
load_from_ro_regions=False,
|
|
96
|
+
const_prop=False,
|
|
96
97
|
):
|
|
97
98
|
"""
|
|
98
99
|
Lift an IRSB.
|
|
@@ -170,7 +171,7 @@ class VEXLifter(SimEngineBase):
|
|
|
170
171
|
have_patches = self.project and self.project.kb.patches.items()
|
|
171
172
|
|
|
172
173
|
# FIXME: cache ignores provided state
|
|
173
|
-
use_cache = self._use_cache and not (skip_stmts or collect_data_refs or have_patches)
|
|
174
|
+
use_cache = self._use_cache and not (skip_stmts or collect_data_refs or have_patches or const_prop)
|
|
174
175
|
|
|
175
176
|
# phase 2: thumb normalization
|
|
176
177
|
thumb = int(thumb)
|
|
@@ -261,6 +262,7 @@ class VEXLifter(SimEngineBase):
|
|
|
261
262
|
collect_data_refs=collect_data_refs,
|
|
262
263
|
load_from_ro_regions=load_from_ro_regions,
|
|
263
264
|
cross_insn_opt=cross_insn_opt,
|
|
265
|
+
const_prop=const_prop,
|
|
264
266
|
)
|
|
265
267
|
|
|
266
268
|
if subphase == 0 and irsb.statements is not None:
|
angr/engines/vex/light/light.py
CHANGED
|
@@ -3,8 +3,8 @@ import logging
|
|
|
3
3
|
|
|
4
4
|
import pyvex
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
6
|
+
from angr.engines.engine import SimEngineBase
|
|
7
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
8
8
|
|
|
9
9
|
l = logging.getLogger(name=__name__)
|
|
10
10
|
|
|
@@ -394,7 +394,7 @@ class VEXMixin(SimEngineBase):
|
|
|
394
394
|
# guarded address). This way we get rid of the redundant load that should have existed in the first place.
|
|
395
395
|
|
|
396
396
|
ty, cvt_op = cvt_properties[cvt]
|
|
397
|
-
if self.
|
|
397
|
+
if self.state.solver.is_true(guard[0] == 0):
|
|
398
398
|
self._perform_vex_stmt_LoadG_wrtmp(dst, alt)
|
|
399
399
|
return
|
|
400
400
|
load_result = self._perform_vex_stmt_LoadG_load(
|
|
@@ -436,7 +436,7 @@ class VEXMixin(SimEngineBase):
|
|
|
436
436
|
|
|
437
437
|
def _perform_vex_stmt_StoreG(self, addr, data, guard, ty, endness, **kwargs):
|
|
438
438
|
# perform the same optimization as in _perform_vex_stmt_LoadG
|
|
439
|
-
if self.
|
|
439
|
+
if self.state.solver.is_true(guard[0] == 0):
|
|
440
440
|
return
|
|
441
441
|
self._perform_vex_stmt_StoreG_store(
|
|
442
442
|
addr, data, endness, condition=self._perform_vex_stmt_StoreG_guard_condition(guard), **kwargs
|
angr/errors.py
CHANGED
|
@@ -141,7 +141,6 @@ from .tech_builder import TechniqueBuilder
|
|
|
141
141
|
from .stochastic import StochasticSearch
|
|
142
142
|
from .unique import UniqueSearch
|
|
143
143
|
from .symbion import Symbion
|
|
144
|
-
from ..errors import AngrError, AngrExplorationTechniqueError
|
|
145
144
|
from .memory_watcher import MemoryWatcher
|
|
146
145
|
from .bucketizer import Bucketizer
|
|
147
146
|
from .local_loop_seer import LocalLoopSeer
|
|
@@ -3,11 +3,10 @@ import math
|
|
|
3
3
|
from collections import defaultdict
|
|
4
4
|
import logging
|
|
5
5
|
|
|
6
|
-
from
|
|
6
|
+
from angr.engines.successors import SimSuccessors
|
|
7
7
|
from . import ExplorationTechnique
|
|
8
8
|
|
|
9
9
|
_l = logging.getLogger(__name__)
|
|
10
|
-
_l.setLevel(logging.DEBUG)
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
class Bucketizer(ExplorationTechnique):
|
|
@@ -15,9 +14,6 @@ class Bucketizer(ExplorationTechnique):
|
|
|
15
14
|
Loop bucketization: Pick log(n) paths out of n possible paths, and stash (or drop) everything else.
|
|
16
15
|
"""
|
|
17
16
|
|
|
18
|
-
def __init__(self):
|
|
19
|
-
super().__init__()
|
|
20
|
-
|
|
21
17
|
def successors(self, simgr, state, **kwargs):
|
|
22
18
|
# step first
|
|
23
19
|
successors: SimSuccessors = super().successors(simgr, state, **kwargs)
|
|
@@ -50,7 +46,8 @@ class Bucketizer(ExplorationTechnique):
|
|
|
50
46
|
successors.successors = new_successors
|
|
51
47
|
return successors
|
|
52
48
|
|
|
53
|
-
|
|
49
|
+
@staticmethod
|
|
50
|
+
def _get_transition_dict(state):
|
|
54
51
|
"""
|
|
55
52
|
|
|
56
53
|
:param SimState state:
|
|
@@ -64,7 +61,8 @@ class Bucketizer(ExplorationTechnique):
|
|
|
64
61
|
state.globals["transition"] = t
|
|
65
62
|
return t
|
|
66
63
|
|
|
67
|
-
|
|
64
|
+
@staticmethod
|
|
65
|
+
def _record_transition(state, transition):
|
|
68
66
|
"""
|
|
69
67
|
|
|
70
68
|
:param SimState state:
|
|
@@ -72,12 +70,13 @@ class Bucketizer(ExplorationTechnique):
|
|
|
72
70
|
:return:
|
|
73
71
|
"""
|
|
74
72
|
|
|
75
|
-
t =
|
|
73
|
+
t = Bucketizer._get_transition_dict(state).copy()
|
|
76
74
|
t[transition] += 1
|
|
77
75
|
|
|
78
76
|
state.globals["transition"] = t
|
|
79
77
|
|
|
80
|
-
|
|
78
|
+
@staticmethod
|
|
79
|
+
def _accept_transition(state, transition):
|
|
81
80
|
"""
|
|
82
81
|
|
|
83
82
|
:param SimState state:
|
|
@@ -85,7 +84,7 @@ class Bucketizer(ExplorationTechnique):
|
|
|
85
84
|
:return:
|
|
86
85
|
"""
|
|
87
86
|
|
|
88
|
-
t =
|
|
87
|
+
t = Bucketizer._get_transition_dict(state)
|
|
89
88
|
|
|
90
89
|
if t[transition] == 0:
|
|
91
90
|
_l.error("Impossible: Transition %s has 0 occurrences.", transition)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from
|
|
3
|
-
from
|
|
2
|
+
from angr import engines
|
|
3
|
+
from angr.errors import SimError, AngrError, AngrExplorationTechniqueError
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
def condition_to_lambda(condition, default=False):
|
|
@@ -6,10 +6,10 @@ import networkx
|
|
|
6
6
|
|
|
7
7
|
import claripy
|
|
8
8
|
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from
|
|
9
|
+
from angr.sim_type import SimType, SimTypePointer, SimTypeChar, SimTypeString, SimTypeReg
|
|
10
|
+
from angr.calling_conventions import default_cc
|
|
11
|
+
from angr.knowledge_base import KnowledgeBase
|
|
12
|
+
from angr.errors import AngrDirectorError
|
|
13
13
|
from . import ExplorationTechnique
|
|
14
14
|
|
|
15
15
|
l = logging.getLogger(name=__name__)
|
|
@@ -4,8 +4,8 @@ import claripy
|
|
|
4
4
|
|
|
5
5
|
from . import ExplorationTechnique
|
|
6
6
|
from .common import condition_to_lambda
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from angr import sim_options
|
|
8
|
+
from angr.state_plugins.sim_event import resource_event
|
|
9
9
|
|
|
10
10
|
l = logging.getLogger(name=__name__)
|
|
11
11
|
|
|
@@ -48,7 +48,7 @@ class Explorer(ExplorationTechnique):
|
|
|
48
48
|
self._warned_unicorn = False
|
|
49
49
|
|
|
50
50
|
# TODO: This is a hack for while CFGFast doesn't handle procedure continuations
|
|
51
|
-
from
|
|
51
|
+
from angr import analyses # pylint: disable=import-outside-toplevel
|
|
52
52
|
|
|
53
53
|
if isinstance(cfg, analyses.CFGFast):
|
|
54
54
|
l.error("CFGFast is currently inappropriate for use with Explorer.")
|
|
@@ -2,8 +2,8 @@ from __future__ import annotations
|
|
|
2
2
|
import logging
|
|
3
3
|
|
|
4
4
|
from . import ExplorationTechnique
|
|
5
|
-
from
|
|
6
|
-
from
|
|
5
|
+
from angr.knowledge_base import KnowledgeBase
|
|
6
|
+
from angr.knowledge_plugins.functions import Function
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
l = logging.getLogger(name=__name__)
|
|
@@ -233,4 +233,4 @@ class LoopSeer(ExplorationTechnique):
|
|
|
233
233
|
return f
|
|
234
234
|
|
|
235
235
|
|
|
236
|
-
from
|
|
236
|
+
from angr.analyses.loopfinder import Loop
|
|
@@ -6,9 +6,9 @@ import logging
|
|
|
6
6
|
|
|
7
7
|
l = logging.getLogger(name=__name__)
|
|
8
8
|
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
9
|
+
from angr.errors import AngrError, SimError, SimUnsupportedError, SimCCallError
|
|
10
|
+
from angr import sim_options
|
|
11
|
+
from angr.engines.successors import SimSuccessors
|
|
12
12
|
|
|
13
13
|
exc_list = (AngrError, SimError, claripy.ClaripyError, TypeError, ValueError, ArithmeticError, MemoryError)
|
|
14
14
|
|
|
@@ -3,10 +3,10 @@ import logging
|
|
|
3
3
|
import claripy
|
|
4
4
|
|
|
5
5
|
from . import ExplorationTechnique
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
6
|
+
from angr.misc.ux import once
|
|
7
|
+
from angr.misc.picklable_lock import PicklableLock
|
|
8
|
+
from angr.state_plugins.sim_action import SimActionConstraint
|
|
9
|
+
from angr.state_plugins.sim_action_object import SimActionObject
|
|
10
10
|
|
|
11
11
|
l = logging.getLogger(__name__)
|
|
12
12
|
|
|
@@ -4,8 +4,8 @@ import concurrent.futures
|
|
|
4
4
|
import logging
|
|
5
5
|
|
|
6
6
|
from . import ExplorationTechnique
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from angr.engines.engine import TLSMixin
|
|
8
|
+
from angr.misc.ux import once
|
|
9
9
|
|
|
10
10
|
l = logging.getLogger(__name__)
|
|
11
11
|
|
|
@@ -7,8 +7,8 @@ import claripy
|
|
|
7
7
|
from capstone import CS_GRP_CALL, CS_GRP_IRET, CS_GRP_JUMP, CS_GRP_RET
|
|
8
8
|
|
|
9
9
|
from . import ExplorationTechnique
|
|
10
|
-
from
|
|
11
|
-
from
|
|
10
|
+
from angr import BP_BEFORE, BP_AFTER, sim_options
|
|
11
|
+
from angr.errors import AngrTracerError, SimIRSBNoDecodeError
|
|
12
12
|
|
|
13
13
|
if TYPE_CHECKING:
|
|
14
14
|
from angr.sim_state import SimState
|
|
@@ -60,7 +60,7 @@ class RepHook:
|
|
|
60
60
|
return p.execute(state, None, arguments=e_args)
|
|
61
61
|
|
|
62
62
|
def run(self, state):
|
|
63
|
-
from
|
|
63
|
+
from angr import SIM_PROCEDURES # pylint: disable=import-outside-toplevel
|
|
64
64
|
|
|
65
65
|
dst = state.regs.edi if state.arch.name == "X86" else state.regs.rdi
|
|
66
66
|
|
angr/factory.py
CHANGED
|
@@ -289,6 +289,7 @@ class AngrObjectFactory:
|
|
|
289
289
|
collect_data_refs=False,
|
|
290
290
|
cross_insn_opt=True,
|
|
291
291
|
load_from_ro_regions=False,
|
|
292
|
+
const_prop=False,
|
|
292
293
|
initial_regs=None,
|
|
293
294
|
skip_stmts=False,
|
|
294
295
|
) -> Block: ...
|
|
@@ -312,6 +313,8 @@ class AngrObjectFactory:
|
|
|
312
313
|
insn_text=None, # backward compatibility
|
|
313
314
|
strict_block_end=None,
|
|
314
315
|
collect_data_refs=False,
|
|
316
|
+
load_from_ro_regions=False,
|
|
317
|
+
const_prop=False,
|
|
315
318
|
cross_insn_opt=True,
|
|
316
319
|
skip_stmts=False,
|
|
317
320
|
) -> SootBlock: ...
|
|
@@ -335,6 +338,7 @@ class AngrObjectFactory:
|
|
|
335
338
|
collect_data_refs=False,
|
|
336
339
|
cross_insn_opt=True,
|
|
337
340
|
load_from_ro_regions=False,
|
|
341
|
+
const_prop=False,
|
|
338
342
|
initial_regs=None,
|
|
339
343
|
skip_stmts=False,
|
|
340
344
|
):
|
|
@@ -372,6 +376,7 @@ class AngrObjectFactory:
|
|
|
372
376
|
collect_data_refs=collect_data_refs,
|
|
373
377
|
cross_insn_opt=cross_insn_opt,
|
|
374
378
|
load_from_ro_regions=load_from_ro_regions,
|
|
379
|
+
const_prop=const_prop,
|
|
375
380
|
initial_regs=initial_regs,
|
|
376
381
|
skip_stmts=skip_stmts,
|
|
377
382
|
)
|