angr 9.2.119__py3-none-win_amd64.whl → 9.2.120__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of angr might be problematic. Click here for more details.
- angr/__init__.py +217 -2
- angr/__main__.py +14 -4
- angr/analyses/__init__.py +54 -0
- angr/analyses/analysis.py +8 -8
- angr/analyses/backward_slice.py +4 -4
- angr/analyses/bindiff.py +2 -2
- angr/analyses/callee_cleanup_finder.py +1 -1
- angr/analyses/calling_convention.py +21 -15
- angr/analyses/cdg.py +1 -1
- angr/analyses/cfg/__init__.py +12 -1
- angr/analyses/cfg/cfb.py +2 -2
- angr/analyses/cfg/cfg.py +1 -1
- angr/analyses/cfg/cfg_base.py +28 -11
- angr/analyses/cfg/cfg_emulated.py +18 -18
- angr/analyses/cfg/cfg_fast.py +1 -1
- 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 +8 -8
- angr/analyses/decompiler/block_simplifier.py +3 -3
- angr/analyses/decompiler/callsite_maker.py +5 -3
- 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/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 +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/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 +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 +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 +7 -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 +7 -7
- 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 +1 -2
- angr/engines/vex/claripy/datalayer.py +3 -3
- angr/engines/vex/heavy/__init__.py +11 -1
- angr/engines/vex/heavy/heavy.py +6 -6
- 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 +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/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 +2 -2
- angr/knowledge_plugins/debug_variables.py +2 -2
- angr/knowledge_plugins/functions/__init__.py +6 -0
- angr/knowledge_plugins/functions/function.py +21 -16
- angr/knowledge_plugins/functions/function_manager.py +2 -2
- angr/knowledge_plugins/functions/function_parser.py +3 -3
- angr/knowledge_plugins/functions/soot_function.py +2 -2
- angr/knowledge_plugins/key_definitions/atoms.py +2 -2
- angr/knowledge_plugins/key_definitions/definition.py +3 -3
- angr/knowledge_plugins/key_definitions/key_definition_manager.py +2 -2
- angr/knowledge_plugins/key_definitions/uses.py +2 -2
- angr/knowledge_plugins/propagations/__init__.py +7 -0
- angr/knowledge_plugins/propagations/prop_value.py +1 -1
- angr/knowledge_plugins/{structured_code/manager.py → structured_code.py} +6 -3
- angr/knowledge_plugins/types.py +1 -1
- angr/knowledge_plugins/variables/__init__.py +6 -0
- angr/knowledge_plugins/variables/variable_access.py +3 -3
- angr/knowledge_plugins/variables/variable_manager.py +7 -7
- angr/knowledge_plugins/xrefs/__init__.py +9 -1
- angr/knowledge_plugins/xrefs/xref.py +5 -5
- angr/knowledge_plugins/xrefs/xref_manager.py +3 -3
- angr/lib/angr_native.dll +0 -0
- angr/misc/__init__.py +12 -2
- angr/misc/loggers.py +2 -2
- angr/procedures/__init__.py +9 -0
- angr/procedures/cgc/receive.py +2 -2
- angr/procedures/cgc/transmit.py +1 -1
- angr/procedures/definitions/__init__.py +8 -8
- angr/procedures/definitions/cgc.py +1 -1
- angr/procedures/definitions/glibc.py +2 -15
- angr/procedures/definitions/gnulib.py +2 -6
- angr/procedures/definitions/libstdcpp.py +2 -2
- angr/procedures/definitions/linux_kernel.py +2 -3
- angr/procedures/definitions/linux_loader.py +1 -1
- angr/procedures/definitions/msvcr.py +2 -2
- angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-4.py +3 -18
- angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-6.py +3 -18
- angr/procedures/definitions/wdk_clfs.py +3 -18
- angr/procedures/definitions/wdk_fltmgr.py +3 -18
- angr/procedures/definitions/wdk_fwpkclnt.py +3 -18
- angr/procedures/definitions/wdk_fwpuclnt.py +3 -18
- angr/procedures/definitions/wdk_gdi32.py +3 -18
- angr/procedures/definitions/wdk_hal.py +3 -18
- angr/procedures/definitions/wdk_ksecdd.py +3 -18
- angr/procedures/definitions/wdk_ndis.py +3 -18
- angr/procedures/definitions/wdk_ntoskrnl.py +3 -18
- angr/procedures/definitions/wdk_offreg.py +3 -18
- angr/procedures/definitions/wdk_pshed.py +3 -18
- angr/procedures/definitions/wdk_secur32.py +3 -18
- angr/procedures/definitions/wdk_vhfum.py +3 -18
- angr/procedures/definitions/win32_aclui.py +3 -18
- angr/procedures/definitions/win32_activeds.py +3 -18
- angr/procedures/definitions/win32_advapi32.py +3 -18
- angr/procedures/definitions/win32_advpack.py +3 -18
- angr/procedures/definitions/win32_amsi.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-apiquery-l2-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-backgroundtask-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-enclave-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-errorhandling-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-file-fromapp-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-handle-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-ioring-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-marshal-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-5.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-7.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-8.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-path-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-slapi-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-state-helpers-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-synch-l1-2-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-util-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-1.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-registration-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-robuffer-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-roparameterizediid-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-1.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-wow64-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-dx-d3dkmt-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-deviceinformation-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-expandedresources-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-mm-misc-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-net-isolation-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-base-l1-2-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-5.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-stream-winrt-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-wsl-api-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_apphelp.py +3 -18
- angr/procedures/definitions/win32_authz.py +3 -18
- angr/procedures/definitions/win32_avicap32.py +3 -18
- angr/procedures/definitions/win32_avifil32.py +3 -18
- angr/procedures/definitions/win32_avrt.py +3 -18
- angr/procedures/definitions/win32_bcp47mrm.py +3 -18
- angr/procedures/definitions/win32_bcrypt.py +3 -18
- angr/procedures/definitions/win32_bcryptprimitives.py +3 -18
- angr/procedures/definitions/win32_bluetoothapis.py +3 -18
- angr/procedures/definitions/win32_bthprops.py +3 -3
- angr/procedures/definitions/win32_bthprops_cpl.py +3 -18
- angr/procedures/definitions/win32_cabinet.py +3 -18
- angr/procedures/definitions/win32_certadm.py +3 -18
- angr/procedures/definitions/win32_certpoleng.py +3 -18
- angr/procedures/definitions/win32_cfgmgr32.py +3 -18
- angr/procedures/definitions/win32_chakra.py +3 -18
- angr/procedures/definitions/win32_cldapi.py +3 -18
- angr/procedures/definitions/win32_clfsw32.py +3 -18
- angr/procedures/definitions/win32_clusapi.py +3 -18
- angr/procedures/definitions/win32_comctl32.py +3 -18
- angr/procedures/definitions/win32_comdlg32.py +3 -18
- angr/procedures/definitions/win32_compstui.py +3 -18
- angr/procedures/definitions/win32_computecore.py +3 -18
- angr/procedures/definitions/win32_computenetwork.py +3 -18
- angr/procedures/definitions/win32_computestorage.py +3 -18
- angr/procedures/definitions/win32_comsvcs.py +3 -18
- angr/procedures/definitions/win32_coremessaging.py +3 -3
- angr/procedures/definitions/win32_credui.py +3 -18
- angr/procedures/definitions/win32_crypt32.py +3 -18
- angr/procedures/definitions/win32_cryptnet.py +3 -18
- angr/procedures/definitions/win32_cryptui.py +3 -18
- angr/procedures/definitions/win32_cryptxml.py +3 -18
- angr/procedures/definitions/win32_cscapi.py +3 -18
- angr/procedures/definitions/win32_d2d1.py +3 -18
- angr/procedures/definitions/win32_d3d10.py +3 -18
- angr/procedures/definitions/win32_d3d10_1.py +3 -18
- angr/procedures/definitions/win32_d3d11.py +3 -18
- angr/procedures/definitions/win32_d3d12.py +3 -18
- angr/procedures/definitions/win32_d3d9.py +3 -18
- angr/procedures/definitions/win32_d3dcompiler_47.py +3 -18
- angr/procedures/definitions/win32_d3dcsx.py +3 -18
- angr/procedures/definitions/win32_davclnt.py +3 -18
- angr/procedures/definitions/win32_dbgeng.py +3 -18
- angr/procedures/definitions/win32_dbghelp.py +3 -18
- angr/procedures/definitions/win32_dbgmodel.py +3 -18
- angr/procedures/definitions/win32_dciman32.py +3 -18
- angr/procedures/definitions/win32_dcomp.py +3 -18
- angr/procedures/definitions/win32_ddraw.py +3 -18
- angr/procedures/definitions/win32_deviceaccess.py +3 -18
- angr/procedures/definitions/win32_dflayout.py +3 -18
- angr/procedures/definitions/win32_dhcpcsvc.py +3 -18
- angr/procedures/definitions/win32_dhcpcsvc6.py +3 -18
- angr/procedures/definitions/win32_dhcpsapi.py +3 -18
- angr/procedures/definitions/win32_diagnosticdataquery.py +3 -18
- angr/procedures/definitions/win32_dinput8.py +3 -18
- angr/procedures/definitions/win32_directml.py +3 -18
- angr/procedures/definitions/win32_dmprocessxmlfiltered.py +3 -18
- angr/procedures/definitions/win32_dnsapi.py +3 -18
- angr/procedures/definitions/win32_drt.py +3 -18
- angr/procedures/definitions/win32_drtprov.py +3 -18
- angr/procedures/definitions/win32_drttransport.py +3 -18
- angr/procedures/definitions/win32_dsound.py +3 -18
- angr/procedures/definitions/win32_dsparse.py +3 -18
- angr/procedures/definitions/win32_dsprop.py +3 -18
- angr/procedures/definitions/win32_dssec.py +3 -18
- angr/procedures/definitions/win32_dsuiext.py +3 -18
- angr/procedures/definitions/win32_dwmapi.py +3 -18
- angr/procedures/definitions/win32_dwrite.py +3 -18
- angr/procedures/definitions/win32_dxcompiler.py +3 -18
- angr/procedures/definitions/win32_dxcore.py +3 -18
- angr/procedures/definitions/win32_dxgi.py +3 -18
- angr/procedures/definitions/win32_dxva2.py +3 -18
- angr/procedures/definitions/win32_eappcfg.py +3 -18
- angr/procedures/definitions/win32_eappprxy.py +3 -18
- angr/procedures/definitions/win32_efswrt.py +3 -18
- angr/procedures/definitions/win32_elscore.py +3 -18
- angr/procedures/definitions/win32_esent.py +3 -18
- angr/procedures/definitions/win32_evr.py +3 -18
- angr/procedures/definitions/win32_faultrep.py +3 -18
- angr/procedures/definitions/win32_fhsvcctl.py +3 -18
- angr/procedures/definitions/win32_firewallapi.py +3 -18
- angr/procedures/definitions/win32_fltlib.py +3 -18
- angr/procedures/definitions/win32_fontsub.py +3 -18
- angr/procedures/definitions/win32_forceinline.py +3 -18
- angr/procedures/definitions/win32_fwpuclnt.py +3 -18
- angr/procedures/definitions/win32_fxsutility.py +3 -18
- angr/procedures/definitions/win32_gdi32.py +3 -18
- angr/procedures/definitions/win32_gdiplus.py +3 -18
- angr/procedures/definitions/win32_glu32.py +3 -18
- angr/procedures/definitions/win32_gpedit.py +3 -18
- angr/procedures/definitions/win32_hhctrl_ocx.py +3 -18
- angr/procedures/definitions/win32_hid.py +3 -18
- angr/procedures/definitions/win32_hlink.py +3 -18
- angr/procedures/definitions/win32_hrtfapo.py +3 -18
- angr/procedures/definitions/win32_httpapi.py +3 -18
- angr/procedures/definitions/win32_icm32.py +3 -18
- angr/procedures/definitions/win32_icmui.py +3 -18
- angr/procedures/definitions/win32_icu.py +3 -18
- angr/procedures/definitions/win32_ieframe.py +3 -18
- angr/procedures/definitions/win32_imagehlp.py +3 -18
- angr/procedures/definitions/win32_imgutil.py +3 -18
- angr/procedures/definitions/win32_imm32.py +3 -18
- angr/procedures/definitions/win32_infocardapi.py +3 -18
- angr/procedures/definitions/win32_inkobjcore.py +3 -18
- angr/procedures/definitions/win32_iphlpapi.py +3 -18
- angr/procedures/definitions/win32_iscsidsc.py +3 -18
- angr/procedures/definitions/win32_isolatedwindowsenvironmentutils.py +3 -18
- angr/procedures/definitions/win32_kernel32.py +3 -18
- angr/procedures/definitions/win32_kernelbase.py +3 -18
- angr/procedures/definitions/win32_keycredmgr.py +3 -18
- angr/procedures/definitions/win32_ksproxy_ax.py +3 -18
- angr/procedures/definitions/win32_ksuser.py +3 -18
- angr/procedures/definitions/win32_ktmw32.py +3 -18
- angr/procedures/definitions/win32_licenseprotection.py +3 -18
- angr/procedures/definitions/win32_loadperf.py +3 -18
- angr/procedures/definitions/win32_magnification.py +3 -18
- angr/procedures/definitions/win32_mapi32.py +3 -18
- angr/procedures/definitions/win32_mdmlocalmanagement.py +3 -18
- angr/procedures/definitions/win32_mdmregistration.py +3 -18
- angr/procedures/definitions/win32_mf.py +3 -18
- angr/procedures/definitions/win32_mfcore.py +3 -18
- angr/procedures/definitions/win32_mfplat.py +3 -18
- angr/procedures/definitions/win32_mfplay.py +3 -18
- angr/procedures/definitions/win32_mfreadwrite.py +3 -18
- angr/procedures/definitions/win32_mfsensorgroup.py +3 -18
- angr/procedures/definitions/win32_mfsrcsnk.py +3 -18
- angr/procedures/definitions/win32_mgmtapi.py +3 -18
- angr/procedures/definitions/win32_mi.py +3 -18
- angr/procedures/definitions/win32_mmdevapi.py +3 -18
- angr/procedures/definitions/win32_mpr.py +3 -18
- angr/procedures/definitions/win32_mprapi.py +3 -18
- angr/procedures/definitions/win32_mqrt.py +3 -18
- angr/procedures/definitions/win32_mrmsupport.py +3 -18
- angr/procedures/definitions/win32_msacm32.py +3 -18
- angr/procedures/definitions/win32_msajapi.py +3 -18
- angr/procedures/definitions/win32_mscms.py +3 -18
- angr/procedures/definitions/win32_mscoree.py +3 -18
- angr/procedures/definitions/win32_msctfmonitor.py +3 -18
- angr/procedures/definitions/win32_msdelta.py +3 -18
- angr/procedures/definitions/win32_msdmo.py +3 -18
- angr/procedures/definitions/win32_msdrm.py +3 -18
- angr/procedures/definitions/win32_msi.py +3 -18
- angr/procedures/definitions/win32_msimg32.py +3 -18
- angr/procedures/definitions/win32_mspatcha.py +3 -18
- angr/procedures/definitions/win32_mspatchc.py +3 -18
- angr/procedures/definitions/win32_msports.py +3 -18
- angr/procedures/definitions/win32_msrating.py +3 -18
- angr/procedures/definitions/win32_mssign32.py +3 -18
- angr/procedures/definitions/win32_mstask.py +3 -18
- angr/procedures/definitions/win32_msvfw32.py +3 -18
- angr/procedures/definitions/win32_mswsock.py +3 -18
- angr/procedures/definitions/win32_mtxdm.py +3 -18
- angr/procedures/definitions/win32_ncrypt.py +3 -18
- angr/procedures/definitions/win32_ndfapi.py +3 -18
- angr/procedures/definitions/win32_netapi32.py +3 -18
- angr/procedures/definitions/win32_netsh.py +3 -18
- angr/procedures/definitions/win32_netshell.py +3 -18
- angr/procedures/definitions/win32_newdev.py +3 -18
- angr/procedures/definitions/win32_ninput.py +3 -18
- angr/procedures/definitions/win32_normaliz.py +3 -18
- angr/procedures/definitions/win32_ntdll.py +3 -18
- angr/procedures/definitions/win32_ntdllk.py +3 -18
- angr/procedures/definitions/win32_ntdsapi.py +3 -18
- angr/procedures/definitions/win32_ntlanman.py +3 -18
- angr/procedures/definitions/win32_odbc32.py +3 -18
- angr/procedures/definitions/win32_odbcbcp.py +3 -18
- angr/procedures/definitions/win32_ole32.py +3 -18
- angr/procedures/definitions/win32_oleacc.py +3 -18
- angr/procedures/definitions/win32_oleaut32.py +3 -18
- angr/procedures/definitions/win32_oledlg.py +3 -18
- angr/procedures/definitions/win32_ondemandconnroutehelper.py +3 -18
- angr/procedures/definitions/win32_opengl32.py +3 -18
- angr/procedures/definitions/win32_opmxbox.py +3 -18
- angr/procedures/definitions/win32_p2p.py +3 -18
- angr/procedures/definitions/win32_p2pgraph.py +3 -18
- angr/procedures/definitions/win32_pdh.py +3 -18
- angr/procedures/definitions/win32_peerdist.py +3 -18
- angr/procedures/definitions/win32_powrprof.py +3 -18
- angr/procedures/definitions/win32_prntvpt.py +3 -18
- angr/procedures/definitions/win32_projectedfslib.py +3 -18
- angr/procedures/definitions/win32_propsys.py +3 -18
- angr/procedures/definitions/win32_psapi.py +3 -18
- angr/procedures/definitions/win32_quartz.py +3 -18
- angr/procedures/definitions/win32_query.py +3 -18
- angr/procedures/definitions/win32_qwave.py +3 -18
- angr/procedures/definitions/win32_rasapi32.py +3 -18
- angr/procedures/definitions/win32_rasdlg.py +3 -18
- angr/procedures/definitions/win32_resutils.py +3 -18
- angr/procedures/definitions/win32_rometadata.py +3 -3
- angr/procedures/definitions/win32_rpcns4.py +3 -18
- angr/procedures/definitions/win32_rpcproxy.py +3 -18
- angr/procedures/definitions/win32_rpcrt4.py +3 -18
- angr/procedures/definitions/win32_rstrtmgr.py +3 -18
- angr/procedures/definitions/win32_rtm.py +3 -18
- angr/procedures/definitions/win32_rtutils.py +3 -18
- angr/procedures/definitions/win32_rtworkq.py +3 -18
- angr/procedures/definitions/win32_sas.py +3 -18
- angr/procedures/definitions/win32_scarddlg.py +3 -18
- angr/procedures/definitions/win32_schannel.py +3 -18
- angr/procedures/definitions/win32_sechost.py +3 -18
- angr/procedures/definitions/win32_secur32.py +3 -18
- angr/procedures/definitions/win32_sensapi.py +3 -18
- angr/procedures/definitions/win32_sensorsutilsv2.py +3 -18
- angr/procedures/definitions/win32_setupapi.py +3 -18
- angr/procedures/definitions/win32_sfc.py +3 -18
- angr/procedures/definitions/win32_shdocvw.py +3 -18
- angr/procedures/definitions/win32_shell32.py +3 -18
- angr/procedures/definitions/win32_shlwapi.py +3 -18
- angr/procedures/definitions/win32_slc.py +3 -18
- angr/procedures/definitions/win32_slcext.py +3 -18
- angr/procedures/definitions/win32_slwga.py +3 -18
- angr/procedures/definitions/win32_snmpapi.py +3 -18
- angr/procedures/definitions/win32_spoolss.py +3 -18
- angr/procedures/definitions/win32_srclient.py +3 -18
- angr/procedures/definitions/win32_srpapi.py +3 -18
- angr/procedures/definitions/win32_sspicli.py +3 -18
- angr/procedures/definitions/win32_sti.py +3 -18
- angr/procedures/definitions/win32_t2embed.py +3 -18
- angr/procedures/definitions/win32_tapi32.py +3 -18
- angr/procedures/definitions/win32_tbs.py +3 -18
- angr/procedures/definitions/win32_tdh.py +3 -18
- angr/procedures/definitions/win32_tokenbinding.py +3 -18
- angr/procedures/definitions/win32_traffic.py +3 -18
- angr/procedures/definitions/win32_txfw32.py +3 -18
- angr/procedures/definitions/win32_ualapi.py +3 -18
- angr/procedures/definitions/win32_uiautomationcore.py +3 -18
- angr/procedures/definitions/win32_urlmon.py +3 -18
- angr/procedures/definitions/win32_user32.py +4 -19
- angr/procedures/definitions/win32_userenv.py +3 -18
- angr/procedures/definitions/win32_usp10.py +3 -18
- angr/procedures/definitions/win32_uxtheme.py +3 -18
- angr/procedures/definitions/win32_verifier.py +3 -18
- angr/procedures/definitions/win32_version.py +3 -18
- angr/procedures/definitions/win32_vertdll.py +3 -18
- angr/procedures/definitions/win32_virtdisk.py +3 -18
- angr/procedures/definitions/win32_vmdevicehost.py +3 -18
- angr/procedures/definitions/win32_vmsavedstatedumpprovider.py +3 -18
- angr/procedures/definitions/win32_vssapi.py +3 -18
- angr/procedures/definitions/win32_wcmapi.py +3 -18
- angr/procedures/definitions/win32_wdsbp.py +3 -18
- angr/procedures/definitions/win32_wdsclientapi.py +3 -18
- angr/procedures/definitions/win32_wdsmc.py +3 -18
- angr/procedures/definitions/win32_wdspxe.py +3 -18
- angr/procedures/definitions/win32_wdstptc.py +3 -18
- angr/procedures/definitions/win32_webauthn.py +3 -18
- angr/procedures/definitions/win32_webservices.py +3 -18
- angr/procedures/definitions/win32_websocket.py +3 -18
- angr/procedures/definitions/win32_wecapi.py +3 -18
- angr/procedures/definitions/win32_wer.py +3 -18
- angr/procedures/definitions/win32_wevtapi.py +3 -18
- angr/procedures/definitions/win32_winbio.py +3 -18
- angr/procedures/definitions/win32_windows_ai_machinelearning.py +3 -18
- angr/procedures/definitions/win32_windows_data_pdf.py +3 -3
- angr/procedures/definitions/win32_windows_media_mediacontrol.py +3 -18
- angr/procedures/definitions/win32_windows_networking.py +3 -18
- angr/procedures/definitions/win32_windows_ui_xaml.py +3 -18
- angr/procedures/definitions/win32_windowscodecs.py +3 -18
- angr/procedures/definitions/win32_winfax.py +3 -18
- angr/procedures/definitions/win32_winhttp.py +3 -18
- angr/procedures/definitions/win32_winhvemulation.py +3 -18
- angr/procedures/definitions/win32_winhvplatform.py +3 -18
- angr/procedures/definitions/win32_wininet.py +3 -18
- angr/procedures/definitions/win32_winml.py +3 -18
- angr/procedures/definitions/win32_winmm.py +3 -18
- angr/procedures/definitions/win32_winscard.py +3 -18
- angr/procedures/definitions/win32_winspool.py +3 -3
- angr/procedures/definitions/win32_winspool_drv.py +3 -18
- angr/procedures/definitions/win32_wintrust.py +3 -18
- angr/procedures/definitions/win32_winusb.py +3 -18
- angr/procedures/definitions/win32_wlanapi.py +3 -18
- angr/procedures/definitions/win32_wlanui.py +3 -18
- angr/procedures/definitions/win32_wldap32.py +3 -18
- angr/procedures/definitions/win32_wldp.py +3 -18
- angr/procedures/definitions/win32_wmvcore.py +3 -18
- angr/procedures/definitions/win32_wnvapi.py +3 -18
- angr/procedures/definitions/win32_wofutil.py +3 -18
- angr/procedures/definitions/win32_ws2_32.py +3 -18
- angr/procedures/definitions/win32_wscapi.py +3 -18
- angr/procedures/definitions/win32_wsclient.py +3 -18
- angr/procedures/definitions/win32_wsdapi.py +3 -18
- angr/procedures/definitions/win32_wsmsvc.py +3 -18
- angr/procedures/definitions/win32_wsnmp32.py +3 -18
- angr/procedures/definitions/win32_wtsapi32.py +3 -18
- angr/procedures/definitions/win32_xaudio2_8.py +3 -18
- angr/procedures/definitions/win32_xinput1_4.py +3 -18
- angr/procedures/definitions/win32_xinputuap.py +3 -3
- angr/procedures/definitions/win32_xmllite.py +3 -18
- angr/procedures/definitions/win32_xolehlp.py +3 -18
- angr/procedures/definitions/win32_xpsprint.py +3 -18
- angr/procedures/glibc/scanf.py +2 -2
- angr/procedures/glibc/sscanf.py +1 -1
- angr/procedures/java/__init__.py +6 -3
- angr/procedures/java/unconstrained.py +3 -3
- angr/procedures/java_io/read.py +1 -1
- angr/procedures/java_io/write.py +1 -1
- angr/procedures/java_jni/__init__.py +4 -4
- angr/procedures/java_jni/array_operations.py +2 -2
- angr/procedures/java_jni/field_access.py +3 -3
- angr/procedures/java_jni/method_calls.py +2 -2
- angr/procedures/java_jni/object_operations.py +1 -1
- angr/procedures/java_jni/string_operations.py +1 -1
- angr/procedures/java_lang/character.py +1 -1
- angr/procedures/java_lang/double.py +1 -1
- angr/procedures/java_lang/exit.py +1 -1
- angr/procedures/java_lang/getsimplename.py +1 -1
- angr/procedures/java_lang/integer.py +2 -2
- angr/procedures/java_lang/load_library.py +1 -1
- angr/procedures/java_lang/math.py +1 -1
- angr/procedures/java_lang/string.py +3 -3
- angr/procedures/java_lang/stringbuilder.py +2 -2
- angr/procedures/java_lang/system.py +1 -1
- angr/procedures/java_util/collection.py +2 -2
- angr/procedures/java_util/iterator.py +2 -2
- angr/procedures/java_util/list.py +3 -3
- angr/procedures/java_util/map.py +3 -3
- angr/procedures/java_util/random.py +1 -1
- angr/procedures/java_util/scanner_nextline.py +2 -2
- angr/procedures/libc/fseek.py +1 -1
- angr/procedures/libc/memcpy.py +1 -1
- angr/procedures/libc/strlen.py +12 -4
- angr/procedures/libc/strncmp.py +9 -4
- angr/procedures/linux_kernel/iovec.py +3 -3
- angr/procedures/linux_kernel/mmap.py +1 -1
- angr/procedures/linux_kernel/stat.py +1 -1
- angr/procedures/linux_kernel/sysinfo.py +1 -1
- angr/procedures/posix/bzero.py +1 -1
- angr/procedures/posix/mmap.py +1 -1
- angr/procedures/posix/send.py +1 -1
- angr/procedures/posix/syslog.py +2 -3
- angr/procedures/procedure_dict.py +2 -2
- angr/procedures/stubs/format_parser.py +5 -5
- angr/procedures/tracer/random.py +1 -1
- angr/procedures/tracer/receive.py +1 -1
- angr/procedures/tracer/transmit.py +1 -1
- angr/procedures/uclibc/__uClibc_main.py +1 -1
- angr/protos/__init__.py +8 -0
- angr/sim_options.py +0 -4
- 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 +14 -18
- 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 -3
- angr/storage/file.py +4 -4
- angr/storage/memory_mixins/__init__.py +88 -6
- angr/storage/memory_mixins/actions_mixin.py +2 -2
- 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 +2 -2
- 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/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 +1 -1
- 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 +1 -1
- angr/storage/memory_mixins/slotted_memory.py +1 -1
- angr/storage/memory_mixins/smart_find_mixin.py +1 -1
- angr/storage/memory_mixins/underconstrained_mixin.py +1 -1
- angr/storage/memory_mixins/unwrapper_mixin.py +1 -1
- 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.120.dist-info}/METADATA +6 -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.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.120.dist-info}/LICENSE +0 -0
- {angr-9.2.119.dist-info → angr-9.2.120.dist-info}/WHEEL +0 -0
- {angr-9.2.119.dist-info → angr-9.2.120.dist-info}/entry_points.txt +0 -0
- {angr-9.2.119.dist-info → angr-9.2.120.dist-info}/top_level.txt +0 -0
|
@@ -14,15 +14,15 @@ from archinfo import ArchARM
|
|
|
14
14
|
from angr.analyses import ForwardAnalysis
|
|
15
15
|
from angr.utils.graph import GraphUtils
|
|
16
16
|
from angr.analyses import AnalysesHub
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
from
|
|
21
|
-
from
|
|
22
|
-
from
|
|
23
|
-
from
|
|
24
|
-
from
|
|
25
|
-
from
|
|
17
|
+
from angr import BP, BP_BEFORE, BP_AFTER, SIM_PROCEDURES, procedures
|
|
18
|
+
from angr import options as o
|
|
19
|
+
from angr.codenode import BlockNode
|
|
20
|
+
from angr.engines.procedure import ProcedureEngine
|
|
21
|
+
from angr.exploration_techniques.loop_seer import LoopSeer
|
|
22
|
+
from angr.exploration_techniques.slicecutor import Slicecutor
|
|
23
|
+
from angr.exploration_techniques.explorer import Explorer
|
|
24
|
+
from angr.exploration_techniques.lengthlimiter import LengthLimiter
|
|
25
|
+
from angr.errors import (
|
|
26
26
|
AngrCFGError,
|
|
27
27
|
AngrError,
|
|
28
28
|
AngrSkipJobNotice,
|
|
@@ -34,15 +34,15 @@ from ...errors import (
|
|
|
34
34
|
AngrExitError,
|
|
35
35
|
SimEmptyCallStackError,
|
|
36
36
|
)
|
|
37
|
-
from
|
|
38
|
-
from
|
|
39
|
-
from
|
|
40
|
-
from
|
|
41
|
-
from
|
|
42
|
-
from
|
|
43
|
-
from
|
|
44
|
-
from
|
|
45
|
-
from
|
|
37
|
+
from angr.sim_state import SimState
|
|
38
|
+
from angr.state_plugins.callstack import CallStack
|
|
39
|
+
from angr.state_plugins.sim_action import SimActionData
|
|
40
|
+
from angr.knowledge_plugins.cfg import CFGENode, IndirectJump
|
|
41
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
42
|
+
from angr.analyses.cdg import CDG
|
|
43
|
+
from angr.analyses.ddg import DDG
|
|
44
|
+
from angr.analyses.backward_slice import BackwardSlice
|
|
45
|
+
from angr.analyses.loopfinder import LoopFinder, Loop
|
|
46
46
|
from .cfg_base import CFGBase
|
|
47
47
|
from .cfg_job_base import BlockID, CFGJobBase
|
|
48
48
|
import contextlib
|
angr/analyses/cfg/cfg_fast.py
CHANGED
|
@@ -3450,7 +3450,7 @@ class CFGFast(ForwardAnalysis[CFGNode, CFGNode, CFGJob, int], CFGBase): # pylin
|
|
|
3450
3450
|
|
|
3451
3451
|
# next case - if b is directly from function prologue detection, or a basic block that is a successor of
|
|
3452
3452
|
# a wrongly identified basic block, we might be totally misdecoding b
|
|
3453
|
-
if b.instruction_addrs[0] not in a.instruction_addrs and b in self.graph:
|
|
3453
|
+
if (not b.instruction_addrs or b.instruction_addrs[0] not in a.instruction_addrs) and b in self.graph:
|
|
3454
3454
|
# use a, truncate b
|
|
3455
3455
|
|
|
3456
3456
|
new_b_addr = a.addr + a.size # b starts right after a terminates
|
|
@@ -8,11 +8,11 @@ from copy import copy
|
|
|
8
8
|
|
|
9
9
|
from archinfo.arch_soot import SootMethodDescriptor, SootAddressDescriptor
|
|
10
10
|
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
11
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
12
|
+
from angr.errors import AngrCFGError, SimMemoryError, SimEngineError
|
|
13
|
+
from angr.codenode import HookNode, SootBlockNode
|
|
14
|
+
from angr.knowledge_plugins.cfg import CFGNode
|
|
15
|
+
from angr.analyses import register_analysis
|
|
16
16
|
from .cfg_fast import CFGFast, CFGJob, PendingJobs, FunctionTransitionEdge
|
|
17
17
|
|
|
18
18
|
l = logging.getLogger(name=__name__)
|
|
@@ -4,11 +4,11 @@ from typing import TYPE_CHECKING
|
|
|
4
4
|
|
|
5
5
|
from archinfo.arch_soot import SootAddressDescriptor
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from angr.errors import SimValueError, SimSolverModeError
|
|
8
|
+
from angr.state_plugins.callstack import CallStack
|
|
9
9
|
|
|
10
10
|
if TYPE_CHECKING:
|
|
11
|
-
from
|
|
11
|
+
from angr.sim_state import SimState
|
|
12
12
|
l = logging.getLogger(name=__name__)
|
|
13
13
|
|
|
14
14
|
# TODO: Make callsite an object and use it in BlockID and FunctionKey
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .mips_elf_fast import MipsElfFastResolver
|
|
3
4
|
from .x86_elf_pic_plt import X86ElfPicPltResolver
|
|
4
5
|
from .jumptable import JumpTableResolver
|
|
@@ -7,3 +8,15 @@ from .amd64_elf_got import AMD64ElfGotResolver
|
|
|
7
8
|
from .arm_elf_fast import ArmElfFastResolver
|
|
8
9
|
from .const_resolver import ConstantResolver
|
|
9
10
|
from .amd64_pe_iat import AMD64PeIatResolver
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = (
|
|
14
|
+
"MipsElfFastResolver",
|
|
15
|
+
"X86ElfPicPltResolver",
|
|
16
|
+
"JumpTableResolver",
|
|
17
|
+
"X86PeIatResolver",
|
|
18
|
+
"AMD64ElfGotResolver",
|
|
19
|
+
"ArmElfFastResolver",
|
|
20
|
+
"ConstantResolver",
|
|
21
|
+
"AMD64PeIatResolver",
|
|
22
|
+
)
|
|
@@ -4,8 +4,8 @@ import logging
|
|
|
4
4
|
import archinfo
|
|
5
5
|
import pyvex
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from angr.blade import Blade
|
|
8
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
9
9
|
from .resolver import IndirectJumpResolver
|
|
10
10
|
|
|
11
11
|
_l = logging.getLogger(name=__name__)
|
|
@@ -5,10 +5,10 @@ import logging
|
|
|
5
5
|
import claripy
|
|
6
6
|
import pyvex
|
|
7
7
|
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
8
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
9
|
+
from angr.code_location import CodeLocation
|
|
10
|
+
from angr.blade import Blade
|
|
11
|
+
from angr.analyses.propagator import vex_vars
|
|
12
12
|
from .resolver import IndirectJumpResolver
|
|
13
13
|
from .propagator_utils import PropagatorLoadCallback
|
|
14
14
|
|
|
@@ -11,27 +11,27 @@ import pyvex
|
|
|
11
11
|
import claripy
|
|
12
12
|
from archinfo.arch_arm import is_arm_arch
|
|
13
13
|
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
from
|
|
21
|
-
from
|
|
22
|
-
from
|
|
23
|
-
from
|
|
24
|
-
from
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
from
|
|
28
|
-
from
|
|
29
|
-
from
|
|
14
|
+
from angr import sim_options as o
|
|
15
|
+
from angr import BP, BP_BEFORE, BP_AFTER
|
|
16
|
+
from angr.misc.ux import once
|
|
17
|
+
from angr.code_location import CodeLocation
|
|
18
|
+
from angr.concretization_strategies import SimConcretizationStrategyAny
|
|
19
|
+
from angr.knowledge_plugins.cfg import IndirectJump, IndirectJumpType
|
|
20
|
+
from angr.engines.vex.claripy import ccall
|
|
21
|
+
from angr.engines.light import SimEngineLightVEXMixin, SimEngineLight, SpOffset, RegisterOffset
|
|
22
|
+
from angr.errors import AngrError, SimError
|
|
23
|
+
from angr.blade import Blade
|
|
24
|
+
from angr.annocfg import AnnotatedCFG
|
|
25
|
+
from angr.exploration_techniques.slicecutor import Slicecutor
|
|
26
|
+
from angr.exploration_techniques.local_loop_seer import LocalLoopSeer
|
|
27
|
+
from angr.exploration_techniques.explorer import Explorer
|
|
28
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
29
|
+
from angr.analyses.propagator.vex_vars import VEXReg
|
|
30
30
|
from .resolver import IndirectJumpResolver
|
|
31
31
|
from .propagator_utils import PropagatorLoadCallback
|
|
32
32
|
|
|
33
33
|
try:
|
|
34
|
-
from
|
|
34
|
+
from angr.engines import pcode
|
|
35
35
|
except ImportError:
|
|
36
36
|
pcode = None
|
|
37
37
|
|
|
@@ -1723,7 +1723,10 @@ class JumpTableResolver(IndirectJumpResolver):
|
|
|
1723
1723
|
all_targets = []
|
|
1724
1724
|
jump_table = []
|
|
1725
1725
|
|
|
1726
|
-
|
|
1726
|
+
try:
|
|
1727
|
+
jumptable_si = claripy.SI(bits=project.arch.bits, to_conv=jumptable_addr)
|
|
1728
|
+
except claripy.errors.BackendError:
|
|
1729
|
+
return None
|
|
1727
1730
|
|
|
1728
1731
|
# we may resolve a vtable (in C, e.g., the IO_JUMPS_FUNC in libc), but the stride of this load is usually 1
|
|
1729
1732
|
# while the read statement reads a word size at a time.
|
|
@@ -8,11 +8,11 @@ import claripy
|
|
|
8
8
|
import pyvex
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
11
|
+
from angr import options, BP_BEFORE
|
|
12
|
+
from angr.blade import Blade
|
|
13
|
+
from angr.annocfg import AnnotatedCFG
|
|
14
|
+
from angr.exploration_techniques import Slicecutor
|
|
15
|
+
from angr.utils.constants import DEFAULT_STATEMENT
|
|
16
16
|
from .resolver import IndirectJumpResolver
|
|
17
17
|
|
|
18
18
|
if TYPE_CHECKING:
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .graph import slice_callgraph, slice_cfg_graph, slice_function_graph
|
|
3
4
|
from .cfg_slice_to_sink import CFGSliceToSink
|
|
5
|
+
|
|
6
|
+
__all__ = (
|
|
7
|
+
"CFGSliceToSink",
|
|
8
|
+
"slice_callgraph",
|
|
9
|
+
"slice_cfg_graph",
|
|
10
|
+
"slice_function_graph",
|
|
11
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from
|
|
3
|
-
from
|
|
2
|
+
from angr.sim_type import SimCppClass, SimTypeCppFunction
|
|
3
|
+
from angr.analyses import AnalysesHub
|
|
4
4
|
from . import Analysis, CFGFast, VtableFinder
|
|
5
5
|
|
|
6
6
|
|
angr/analyses/code_tagging.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
import pyvex
|
|
3
3
|
|
|
4
|
-
from
|
|
5
|
-
from
|
|
4
|
+
from angr.utils import looks_like_sql
|
|
5
|
+
from angr.knowledge_plugins.xrefs import XRef
|
|
6
6
|
from . import Analysis, AnalysesHub
|
|
7
7
|
|
|
8
8
|
|
|
@@ -14,8 +14,8 @@ import claripy
|
|
|
14
14
|
|
|
15
15
|
from angr.utils.graph import GraphUtils
|
|
16
16
|
from angr.simos import SimWindows
|
|
17
|
-
from
|
|
18
|
-
from
|
|
17
|
+
from angr.utils.mp import mp_context, Initializer
|
|
18
|
+
from angr.knowledge_plugins.cfg import CFGModel
|
|
19
19
|
from . import Analysis, register_analysis, VariableRecoveryFast, CallingConventionAnalysis
|
|
20
20
|
|
|
21
21
|
if TYPE_CHECKING:
|
|
@@ -185,7 +185,7 @@ class CompleteCallingConventionsAnalysis(Analysis):
|
|
|
185
185
|
if self._cc_callback is not None:
|
|
186
186
|
self._cc_callback(func_addr)
|
|
187
187
|
|
|
188
|
-
percentage = idx + 1 / total_funcs * 100.0
|
|
188
|
+
percentage = (idx + 1) / total_funcs * 100.0
|
|
189
189
|
self._update_progress(percentage, text=f"{idx + 1}/{total_funcs} - {func.demangled_name}")
|
|
190
190
|
if self._low_priority:
|
|
191
191
|
self._release_gil(idx + 1, 10, 0.000001)
|
|
@@ -6,7 +6,6 @@ import claripy
|
|
|
6
6
|
from . import Analysis
|
|
7
7
|
|
|
8
8
|
l = logging.getLogger(name=__name__)
|
|
9
|
-
# l.setLevel(logging.DEBUG)
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
class CongruencyCheck(Analysis):
|
|
@@ -373,7 +372,7 @@ class CongruencyCheck(Analysis):
|
|
|
373
372
|
return True
|
|
374
373
|
|
|
375
374
|
|
|
376
|
-
from
|
|
375
|
+
from angr.errors import AngrIncongruencyError
|
|
377
376
|
from angr.analyses import AnalysesHub
|
|
378
377
|
|
|
379
378
|
AnalysesHub.register_default("CongruencyCheck", CongruencyCheck)
|
|
@@ -1,3 +1,16 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .data_dependency_analysis import DataDependencyGraphAnalysis
|
|
3
4
|
from .dep_nodes import DepNodeTypes, BaseDepNode, VarDepNode, MemDepNode, ConstantDepNode, TmpDepNode, RegDepNode
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
__all__ = (
|
|
8
|
+
"DataDependencyGraphAnalysis",
|
|
9
|
+
"DepNodeTypes",
|
|
10
|
+
"BaseDepNode",
|
|
11
|
+
"VarDepNode",
|
|
12
|
+
"MemDepNode",
|
|
13
|
+
"ConstantDepNode",
|
|
14
|
+
"TmpDepNode",
|
|
15
|
+
"RegDepNode",
|
|
16
|
+
)
|
|
@@ -12,11 +12,11 @@ import claripy
|
|
|
12
12
|
from claripy.ast.bv import BV
|
|
13
13
|
from .dep_nodes import DepNodeTypes, ConstantDepNode, MemDepNode, VarDepNode, RegDepNode, TmpDepNode
|
|
14
14
|
from .sim_act_location import SimActLocation, DEFAULT_LOCATION, ParsedInstruction
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from
|
|
15
|
+
from angr.analyses import Analysis
|
|
16
|
+
from angr.analyses import AnalysesHub
|
|
17
|
+
from angr.errors import AngrDDGError, AngrAnalysisError, SimValueError
|
|
18
|
+
from angr.state_plugins import SimActionData
|
|
19
|
+
from angr.storage import DefaultMemory
|
|
20
20
|
|
|
21
21
|
if TYPE_CHECKING:
|
|
22
22
|
from .dep_nodes import BaseDepNode
|
angr/analyses/datagraph_meta.py
CHANGED
angr/analyses/ddg.py
CHANGED
|
@@ -6,9 +6,9 @@ import networkx
|
|
|
6
6
|
import pyvex
|
|
7
7
|
from . import Analysis
|
|
8
8
|
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
9
|
+
from angr.code_location import CodeLocation
|
|
10
|
+
from angr.errors import SimSolverModeError, SimUnsatError, AngrDDGError
|
|
11
|
+
from angr.sim_variable import (
|
|
12
12
|
SimRegisterVariable,
|
|
13
13
|
SimMemoryVariable,
|
|
14
14
|
SimTemporaryVariable,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .region_identifier import RegionIdentifier
|
|
3
4
|
from .structured_codegen import CStructuredCodeGenerator, ImportSourceCode
|
|
4
5
|
from .clinic import Clinic
|
|
@@ -10,7 +11,31 @@ from .callsite_maker import CallSiteMaker
|
|
|
10
11
|
from .ail_simplifier import AILSimplifier
|
|
11
12
|
from .ssailification import Ssailification
|
|
12
13
|
from .dephication import GraphDephication, SeqNodeDephication
|
|
14
|
+
from .presets import DECOMPILATION_PRESETS
|
|
13
15
|
from . import structuring
|
|
14
16
|
from . import optimization_passes
|
|
15
17
|
|
|
18
|
+
|
|
16
19
|
StructuredCodeGenerator = CStructuredCodeGenerator
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
__all__ = (
|
|
23
|
+
"RegionIdentifier",
|
|
24
|
+
"CStructuredCodeGenerator",
|
|
25
|
+
"ImportSourceCode",
|
|
26
|
+
"Clinic",
|
|
27
|
+
"RegionSimplifier",
|
|
28
|
+
"Decompiler",
|
|
29
|
+
"options",
|
|
30
|
+
"options_by_category",
|
|
31
|
+
"BlockSimplifier",
|
|
32
|
+
"CallSiteMaker",
|
|
33
|
+
"AILSimplifier",
|
|
34
|
+
"Ssailification",
|
|
35
|
+
"GraphDephication",
|
|
36
|
+
"SeqNodeDephication",
|
|
37
|
+
"DECOMPILATION_PRESETS",
|
|
38
|
+
"structuring",
|
|
39
|
+
"optimization_passes",
|
|
40
|
+
"StructuredCodeGenerator",
|
|
41
|
+
)
|
|
@@ -27,14 +27,14 @@ from ailment.expression import (
|
|
|
27
27
|
|
|
28
28
|
from angr.analyses.s_reaching_definitions import SRDAModel
|
|
29
29
|
from angr.utils.ail import is_phi_assignment, HasExprWalker
|
|
30
|
-
from
|
|
31
|
-
from
|
|
32
|
-
from
|
|
33
|
-
from
|
|
34
|
-
from
|
|
35
|
-
from
|
|
36
|
-
from
|
|
37
|
-
from
|
|
30
|
+
from angr.code_location import CodeLocation, ExternalCodeLocation
|
|
31
|
+
from angr.sim_variable import SimStackVariable, SimMemoryVariable, SimVariable
|
|
32
|
+
from angr.knowledge_plugins.propagations.states import Equivalence
|
|
33
|
+
from angr.knowledge_plugins.key_definitions import atoms
|
|
34
|
+
from angr.knowledge_plugins.key_definitions.definition import Definition
|
|
35
|
+
from angr.knowledge_plugins.key_definitions.constants import OP_BEFORE
|
|
36
|
+
from angr.errors import AngrRuntimeError
|
|
37
|
+
from angr.analyses import Analysis, AnalysesHub
|
|
38
38
|
from .ailgraph_walker import AILGraphWalker
|
|
39
39
|
from .expression_narrower import ExpressionNarrowingWalker
|
|
40
40
|
from .block_simplifier import BlockSimplifier
|
|
@@ -10,9 +10,9 @@ from ailment import AILBlockWalkerBase
|
|
|
10
10
|
|
|
11
11
|
from angr.code_location import ExternalCodeLocation, CodeLocation
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
13
|
+
from angr.analyses.s_propagator import SPropagatorAnalysis
|
|
14
|
+
from angr.analyses.s_reaching_definitions import SReachingDefinitionsAnalysis, SRDAModel
|
|
15
|
+
from angr.analyses import Analysis, register_analysis
|
|
16
16
|
from .peephole_optimizations import (
|
|
17
17
|
MULTI_STMT_OPTS,
|
|
18
18
|
STMT_OPTS,
|
|
@@ -11,7 +11,7 @@ from angr.sim_type import SimTypeBottom, SimTypePointer, SimTypeChar, SimTypeInt
|
|
|
11
11
|
from angr.calling_conventions import SimRegArg, SimStackArg, SimCC, SimStructArg
|
|
12
12
|
from angr.knowledge_plugins.key_definitions.constants import OP_BEFORE
|
|
13
13
|
from angr.analyses import Analysis, register_analysis
|
|
14
|
-
from angr.analyses.s_reaching_definitions
|
|
14
|
+
from angr.analyses.s_reaching_definitions import SRDAView
|
|
15
15
|
from angr import SIM_LIBRARIES, SIM_TYPE_COLLECTIONS
|
|
16
16
|
|
|
17
17
|
if TYPE_CHECKING:
|
|
@@ -284,7 +284,9 @@ class CallSiteMaker(Analysis):
|
|
|
284
284
|
|
|
285
285
|
if vvar is not None:
|
|
286
286
|
vvar_value = view.get_vvar_value(vvar)
|
|
287
|
-
|
|
287
|
+
if not isinstance(vvar_value, Expr.Phi):
|
|
288
|
+
return vvar_value, vvar
|
|
289
|
+
return None, vvar
|
|
288
290
|
|
|
289
291
|
return None
|
|
290
292
|
|
|
@@ -311,7 +313,7 @@ class CallSiteMaker(Analysis):
|
|
|
311
313
|
)
|
|
312
314
|
if vvar is not None:
|
|
313
315
|
value = view.get_vvar_value(vvar)
|
|
314
|
-
if value is not None:
|
|
316
|
+
if value is not None and not isinstance(value, Expr.Phi):
|
|
315
317
|
return None, value
|
|
316
318
|
return None, Expr.VirtualVariable(
|
|
317
319
|
self._atom_idx(),
|
|
@@ -13,13 +13,13 @@ import capstone
|
|
|
13
13
|
import ailment
|
|
14
14
|
|
|
15
15
|
from angr.errors import AngrDecompilationError
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
from
|
|
21
|
-
from
|
|
22
|
-
from
|
|
16
|
+
from angr.knowledge_base import KnowledgeBase
|
|
17
|
+
from angr.knowledge_plugins.functions import Function
|
|
18
|
+
from angr.knowledge_plugins.cfg.memory_data import MemoryDataSort
|
|
19
|
+
from angr.codenode import BlockNode
|
|
20
|
+
from angr.utils import timethis
|
|
21
|
+
from angr.calling_conventions import SimRegArg, SimStackArg, SimFunctionArgument
|
|
22
|
+
from angr.sim_type import (
|
|
23
23
|
SimTypeChar,
|
|
24
24
|
SimTypeInt,
|
|
25
25
|
SimTypeLongLong,
|
|
@@ -29,17 +29,16 @@ from ...sim_type import (
|
|
|
29
29
|
SimTypeFloat,
|
|
30
30
|
SimTypePointer,
|
|
31
31
|
)
|
|
32
|
-
from
|
|
33
|
-
from
|
|
34
|
-
from
|
|
35
|
-
from
|
|
36
|
-
from
|
|
37
|
-
from
|
|
38
|
-
from
|
|
32
|
+
from angr.analyses.stack_pointer_tracker import Register, OffsetVal
|
|
33
|
+
from angr.sim_variable import SimVariable, SimStackVariable, SimRegisterVariable, SimMemoryVariable
|
|
34
|
+
from angr.procedures.stubs.UnresolvableCallTarget import UnresolvableCallTarget
|
|
35
|
+
from angr.procedures.stubs.UnresolvableJumpTarget import UnresolvableJumpTarget
|
|
36
|
+
from angr.analyses import Analysis, register_analysis
|
|
37
|
+
from angr.analyses.cfg.cfg_base import CFGBase
|
|
38
|
+
from angr.analyses.reaching_definitions import ReachingDefinitionsAnalysis
|
|
39
39
|
from .return_maker import ReturnMaker
|
|
40
40
|
from .ailgraph_walker import AILGraphWalker, RemoveNodeNotice
|
|
41
41
|
from .optimization_passes import (
|
|
42
|
-
get_default_optimization_passes,
|
|
43
42
|
OptimizationPassStage,
|
|
44
43
|
RegisterSaveAreaSimplifier,
|
|
45
44
|
StackCanarySimplifier,
|
|
@@ -129,7 +128,7 @@ class Clinic(Analysis):
|
|
|
129
128
|
self._func_graph: networkx.DiGraph | None = None
|
|
130
129
|
self._ail_manager = None
|
|
131
130
|
self._blocks_by_addr_and_size = {}
|
|
132
|
-
self.
|
|
131
|
+
self.entry_node_addr: tuple[int, int | None] = self.function.addr, None
|
|
133
132
|
|
|
134
133
|
self._fold_callexprs_into_conditions = fold_callexprs_into_conditions
|
|
135
134
|
self._insert_labels = insert_labels
|
|
@@ -165,8 +164,7 @@ class Clinic(Analysis):
|
|
|
165
164
|
if optimization_passes is not None:
|
|
166
165
|
self._optimization_passes = optimization_passes
|
|
167
166
|
else:
|
|
168
|
-
self._optimization_passes =
|
|
169
|
-
l.debug("Get %d optimization passes for the current binary.", len(self._optimization_passes))
|
|
167
|
+
self._optimization_passes = []
|
|
170
168
|
|
|
171
169
|
if self._mode == ClinicMode.DECOMPILE:
|
|
172
170
|
self._analyze_for_decompiling()
|
|
@@ -713,11 +711,11 @@ class Clinic(Analysis):
|
|
|
713
711
|
if self._func_graph.in_degree(node) == 0 and CFGBase._is_noop_block(
|
|
714
712
|
self.project.arch, self.project.factory.block(node.addr, node.size)
|
|
715
713
|
):
|
|
716
|
-
if (node.addr, None) == self.
|
|
714
|
+
if (node.addr, None) == self.entry_node_addr:
|
|
717
715
|
# this is the entry node. after removing this node, the new entry node will be its successor
|
|
718
716
|
if self._func_graph.out_degree[node] == 1:
|
|
719
717
|
succ = next(iter(self._func_graph.successors(node)))
|
|
720
|
-
self.
|
|
718
|
+
self.entry_node_addr = succ.addr, None
|
|
721
719
|
else:
|
|
722
720
|
# we just don't remove this node...
|
|
723
721
|
continue
|
|
@@ -1219,6 +1217,7 @@ class Clinic(Analysis):
|
|
|
1219
1217
|
graph=ail_graph,
|
|
1220
1218
|
variable_kb=variable_kb,
|
|
1221
1219
|
vvar_id_start=self.vvar_id_start,
|
|
1220
|
+
entry_node_addr=self.entry_node_addr,
|
|
1222
1221
|
**kwargs,
|
|
1223
1222
|
)
|
|
1224
1223
|
if a.out_graph:
|
|
@@ -1240,7 +1239,7 @@ class Clinic(Analysis):
|
|
|
1240
1239
|
ail_graph: networkx.DiGraph,
|
|
1241
1240
|
arg_vvars: dict[int, tuple[ailment.Expr.VirtualVariable, SimVariable]],
|
|
1242
1241
|
) -> networkx.DiGraph:
|
|
1243
|
-
entrypoint = next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.
|
|
1242
|
+
entrypoint = next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.entry_node_addr))
|
|
1244
1243
|
new_stmts = []
|
|
1245
1244
|
for arg in arg_list:
|
|
1246
1245
|
if not isinstance(arg, SimRegisterVariable):
|
|
@@ -1298,7 +1297,7 @@ class Clinic(Analysis):
|
|
|
1298
1297
|
ssailification = self.project.analyses.Ssailification(
|
|
1299
1298
|
self.function,
|
|
1300
1299
|
ail_graph,
|
|
1301
|
-
entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.
|
|
1300
|
+
entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.entry_node_addr)),
|
|
1302
1301
|
ail_manager=self._ail_manager,
|
|
1303
1302
|
ssa_stackvars=False,
|
|
1304
1303
|
vvar_id_start=self.vvar_id_start,
|
|
@@ -1311,7 +1310,7 @@ class Clinic(Analysis):
|
|
|
1311
1310
|
ssailification = self.project.analyses.Ssailification(
|
|
1312
1311
|
self.function,
|
|
1313
1312
|
ail_graph,
|
|
1314
|
-
entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.
|
|
1313
|
+
entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.entry_node_addr)),
|
|
1315
1314
|
ail_manager=self._ail_manager,
|
|
1316
1315
|
ssa_stackvars=True,
|
|
1317
1316
|
vvar_id_start=self.vvar_id_start,
|
|
@@ -1324,7 +1323,7 @@ class Clinic(Analysis):
|
|
|
1324
1323
|
dephication = self.project.analyses.GraphDephicationVVarMapping(
|
|
1325
1324
|
self.function,
|
|
1326
1325
|
ail_graph,
|
|
1327
|
-
entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.
|
|
1326
|
+
entry=next(iter(bb for bb in ail_graph if (bb.addr, bb.idx) == self.entry_node_addr)),
|
|
1328
1327
|
vvar_id_start=self.vvar_id_start,
|
|
1329
1328
|
)
|
|
1330
1329
|
self.vvar_id_start = dephication.vvar_id_start + 1
|
|
@@ -1798,10 +1797,10 @@ class Clinic(Analysis):
|
|
|
1798
1797
|
|
|
1799
1798
|
graph = networkx.DiGraph()
|
|
1800
1799
|
|
|
1801
|
-
entry_node = next(iter(node for node in func_graph if node.addr == self.
|
|
1800
|
+
entry_node = next(iter(node for node in func_graph if node.addr == self.entry_node_addr[0]), None)
|
|
1802
1801
|
if entry_node is None:
|
|
1803
1802
|
raise AngrDecompilationError(
|
|
1804
|
-
f"Entry node with address {self.
|
|
1803
|
+
f"Entry node with address {self.entry_node_addr[0]:#x} not found in the function graph"
|
|
1805
1804
|
)
|
|
1806
1805
|
|
|
1807
1806
|
# add the entry node into the graph
|
|
@@ -12,11 +12,11 @@ from unique_log_filter import UniqueLogFilter
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
from angr.utils.graph import GraphUtils
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from
|
|
15
|
+
from angr.utils.lazy_import import lazy_import
|
|
16
|
+
from angr.utils import is_pyinstaller
|
|
17
|
+
from angr.utils.graph import dominates, inverted_idoms
|
|
18
|
+
from angr.block import Block, BlockNode
|
|
19
|
+
from angr.errors import AngrRuntimeError
|
|
20
20
|
from .peephole_optimizations import InvertNegatedLogicalConjunctionsAndDisjunctions
|
|
21
21
|
from .structuring.structurer_nodes import (
|
|
22
22
|
MultiNode,
|
|
@@ -158,6 +158,8 @@ _ail2claripy_op_mapping = {
|
|
|
158
158
|
"ExpCmpNE": lambda expr, _, m: _dummy_bools(expr, m),
|
|
159
159
|
"CmpORD": lambda expr, _, m: _dummy_bvs(expr, m), # in case CmpORDRewriter fails
|
|
160
160
|
"GetMSBs": lambda expr, _, m: _dummy_bvs(expr, m),
|
|
161
|
+
"InterleaveLOV": lambda expr, _, m: _dummy_bvs(expr, m),
|
|
162
|
+
"InterleaveHIV": lambda expr, _, m: _dummy_bvs(expr, m),
|
|
161
163
|
}
|
|
162
164
|
|
|
163
165
|
#
|