angr 9.2.118__py3-none-manylinux2014_x86_64.whl → 9.2.120__py3-none-manylinux2014_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of angr might be problematic. Click here for more details.
- angr/__init__.py +217 -2
- angr/__main__.py +14 -4
- angr/analyses/__init__.py +54 -0
- angr/analyses/analysis.py +47 -5
- angr/analyses/backward_slice.py +4 -4
- angr/analyses/bindiff.py +2 -2
- angr/analyses/callee_cleanup_finder.py +1 -1
- angr/analyses/calling_convention.py +21 -15
- angr/analyses/cdg.py +1 -1
- angr/analyses/cfg/__init__.py +12 -1
- angr/analyses/cfg/cfb.py +2 -2
- angr/analyses/cfg/cfg.py +1 -1
- angr/analyses/cfg/cfg_base.py +28 -11
- angr/analyses/cfg/cfg_emulated.py +18 -18
- angr/analyses/cfg/cfg_fast.py +136 -24
- angr/analyses/cfg/cfg_fast_soot.py +5 -5
- angr/analyses/cfg/cfg_job_base.py +3 -3
- angr/analyses/cfg/indirect_jump_resolvers/__init__.py +13 -0
- angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py +1 -1
- angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py +4 -4
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +21 -18
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +5 -5
- angr/analyses/cfg/indirect_jump_resolvers/resolver.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/x86_pe_iat.py +1 -1
- angr/analyses/cfg_slice_to_sink/__init__.py +8 -0
- angr/analyses/class_identifier.py +2 -2
- angr/analyses/code_tagging.py +2 -2
- angr/analyses/complete_calling_conventions.py +3 -3
- angr/analyses/congruency_check.py +1 -2
- angr/analyses/data_dep/__init__.py +13 -0
- angr/analyses/data_dep/data_dependency_analysis.py +5 -5
- angr/analyses/datagraph_meta.py +1 -1
- angr/analyses/ddg.py +3 -3
- angr/analyses/decompiler/__init__.py +25 -0
- angr/analyses/decompiler/ail_simplifier.py +9 -9
- angr/analyses/decompiler/block_simplifier.py +3 -3
- angr/analyses/decompiler/callsite_maker.py +5 -3
- angr/analyses/decompiler/clinic.py +46 -36
- angr/analyses/decompiler/condition_processor.py +48 -21
- angr/analyses/decompiler/counters/__init__.py +11 -0
- angr/analyses/decompiler/decompiler.py +27 -10
- angr/analyses/decompiler/dephication/seqnode_dephication.py +19 -1
- angr/analyses/decompiler/jumptable_entry_condition_rewriter.py +1 -1
- angr/analyses/decompiler/optimization_passes/__init__.py +66 -54
- angr/analyses/decompiler/optimization_passes/const_derefs.py +1 -1
- angr/analyses/decompiler/optimization_passes/const_prop_reverter.py +3 -3
- angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py +1 -1
- angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py +3 -0
- angr/analyses/decompiler/optimization_passes/duplication_reverter/ail_merge_graph.py +7 -4
- angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_reverter.py +13 -9
- angr/analyses/decompiler/optimization_passes/duplication_reverter/similarity.py +1 -1
- angr/analyses/decompiler/optimization_passes/duplication_reverter/utils.py +1 -1
- angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
- angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +2 -2
- angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +4 -4
- angr/analyses/decompiler/optimization_passes/inlined_string_transformation_simplifier.py +19 -19
- angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +6 -6
- angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
- angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +7 -3
- angr/analyses/decompiler/optimization_passes/optimization_pass.py +34 -28
- angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +2 -2
- angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +1 -1
- angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +3 -3
- angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +5 -5
- angr/analyses/decompiler/optimization_passes/return_duplicator_high.py +1 -1
- angr/analyses/decompiler/peephole_optimizations/__init__.py +61 -19
- angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +1 -1
- angr/analyses/decompiler/presets/__init__.py +20 -0
- angr/analyses/decompiler/presets/basic.py +30 -0
- angr/analyses/decompiler/presets/fast.py +54 -0
- angr/analyses/decompiler/presets/full.py +64 -0
- angr/analyses/decompiler/presets/preset.py +37 -0
- angr/analyses/decompiler/region_identifier.py +21 -7
- angr/analyses/decompiler/region_simplifiers/__init__.py +3 -0
- angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +3 -3
- angr/analyses/decompiler/region_simplifiers/cascading_ifs.py +3 -3
- angr/analyses/decompiler/region_simplifiers/expr_folding.py +2 -2
- angr/analyses/decompiler/region_simplifiers/goto.py +3 -3
- angr/analyses/decompiler/region_simplifiers/if_.py +2 -2
- angr/analyses/decompiler/region_simplifiers/ifelse.py +4 -4
- angr/analyses/decompiler/region_simplifiers/loop.py +4 -4
- angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -1
- angr/analyses/decompiler/region_simplifiers/region_simplifier.py +6 -6
- angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +12 -5
- angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py +3 -3
- angr/analyses/decompiler/sequence_walker.py +11 -12
- angr/analyses/decompiler/structured_codegen/__init__.py +14 -0
- angr/analyses/decompiler/structured_codegen/base.py +1 -1
- angr/analyses/decompiler/structured_codegen/c.py +22 -15
- angr/analyses/decompiler/structured_codegen/dwarf_import.py +2 -2
- angr/analyses/decompiler/structuring/__init__.py +11 -1
- angr/analyses/decompiler/structuring/dream.py +16 -15
- angr/analyses/decompiler/structuring/phoenix.py +9 -9
- angr/analyses/decompiler/structuring/recursive_structurer.py +7 -7
- angr/analyses/decompiler/structuring/sailr.py +2 -2
- angr/analyses/decompiler/structuring/structurer_base.py +9 -4
- angr/analyses/decompiler/structuring/structurer_nodes.py +18 -9
- angr/analyses/decompiler/utils.py +4 -2
- angr/analyses/disassembly.py +6 -6
- angr/analyses/disassembly_utils.py +1 -1
- angr/analyses/dominance_frontier.py +1 -1
- angr/analyses/find_objects_static.py +5 -5
- angr/analyses/flirt.py +3 -3
- angr/analyses/forward_analysis/__init__.py +9 -0
- angr/analyses/forward_analysis/forward_analysis.py +4 -4
- angr/analyses/forward_analysis/job_info.py +1 -1
- angr/analyses/forward_analysis/visitors/__init__.py +9 -0
- angr/analyses/forward_analysis/visitors/graph.py +2 -2
- angr/analyses/identifier/__init__.py +3 -0
- angr/analyses/identifier/custom_callable.py +2 -3
- angr/analyses/identifier/errors.py +1 -1
- angr/analyses/identifier/functions/__init__.py +4 -4
- angr/analyses/identifier/functions/atoi.py +1 -1
- angr/analyses/identifier/functions/based_atoi.py +1 -1
- angr/analyses/identifier/functions/fdprintf.py +1 -1
- angr/analyses/identifier/functions/free.py +2 -2
- angr/analyses/identifier/functions/int2str.py +1 -1
- angr/analyses/identifier/functions/malloc.py +2 -2
- angr/analyses/identifier/functions/memcmp.py +1 -1
- angr/analyses/identifier/functions/memcpy.py +3 -3
- angr/analyses/identifier/functions/memset.py +1 -1
- angr/analyses/identifier/functions/printf.py +1 -1
- angr/analyses/identifier/functions/recv_until.py +2 -2
- angr/analyses/identifier/functions/skip_calloc.py +2 -2
- angr/analyses/identifier/functions/skip_realloc.py +2 -2
- angr/analyses/identifier/functions/skip_recv_n.py +1 -1
- angr/analyses/identifier/functions/snprintf.py +1 -1
- angr/analyses/identifier/functions/sprintf.py +1 -1
- angr/analyses/identifier/functions/strcmp.py +1 -1
- angr/analyses/identifier/functions/strcpy.py +1 -1
- angr/analyses/identifier/functions/strlen.py +1 -1
- angr/analyses/identifier/functions/strncmp.py +1 -1
- angr/analyses/identifier/functions/strncpy.py +1 -1
- angr/analyses/identifier/functions/strtol.py +1 -1
- angr/analyses/identifier/identify.py +3 -3
- angr/analyses/identifier/runner.py +6 -6
- angr/analyses/init_finder.py +1 -1
- angr/analyses/loop_analysis.py +2 -2
- angr/analyses/propagator/__init__.py +3 -0
- angr/analyses/propagator/engine_ail.py +6 -5
- angr/analyses/propagator/engine_base.py +2 -2
- angr/analyses/propagator/engine_vex.py +2 -2
- angr/analyses/propagator/outdated_definition_walker.py +3 -3
- angr/analyses/propagator/propagator.py +3 -3
- angr/analyses/propagator/top_checker_mixin.py +1 -1
- angr/analyses/proximity_graph.py +3 -3
- angr/analyses/reaching_definitions/__init__.py +6 -6
- angr/analyses/reaching_definitions/dep_graph.py +5 -5
- angr/analyses/reaching_definitions/engine_ail.py +8 -8
- angr/analyses/reaching_definitions/engine_vex.py +18 -13
- angr/analyses/reaching_definitions/function_handler.py +6 -2
- angr/analyses/reaching_definitions/heap_allocator.py +3 -3
- angr/analyses/reaching_definitions/rd_state.py +4 -10
- angr/analyses/reaching_definitions/reaching_definitions.py +11 -11
- angr/analyses/reaching_definitions/subject.py +3 -3
- angr/analyses/reassembler.py +5 -5
- angr/analyses/{s_propagator/s_propagator.py → s_propagator.py} +1 -1
- angr/analyses/s_reaching_definitions/__init__.py +11 -1
- angr/analyses/s_reaching_definitions/s_rda_model.py +117 -0
- angr/analyses/s_reaching_definitions/s_rda_view.py +213 -0
- angr/analyses/s_reaching_definitions/s_reaching_definitions.py +159 -0
- angr/analyses/stack_pointer_tracker.py +34 -16
- angr/analyses/static_hooker.py +2 -2
- angr/analyses/typehoon/__init__.py +3 -0
- angr/analyses/typehoon/lifter.py +1 -1
- angr/analyses/typehoon/translator.py +21 -4
- angr/analyses/typehoon/typeconsts.py +8 -0
- angr/analyses/typehoon/typehoon.py +3 -3
- angr/analyses/variable_recovery/__init__.py +6 -0
- angr/analyses/variable_recovery/engine_ail.py +5 -5
- angr/analyses/variable_recovery/engine_base.py +7 -7
- angr/analyses/variable_recovery/engine_vex.py +14 -17
- angr/analyses/variable_recovery/variable_recovery.py +5 -5
- angr/analyses/variable_recovery/variable_recovery_base.py +7 -7
- angr/analyses/variable_recovery/variable_recovery_fast.py +7 -7
- angr/analyses/veritesting.py +8 -8
- angr/analyses/vfg.py +13 -13
- angr/analyses/vsa_ddg.py +3 -3
- angr/analyses/vtable.py +1 -1
- angr/analyses/xrefs.py +3 -3
- angr/angrdb/__init__.py +3 -0
- angr/angrdb/db.py +2 -2
- angr/angrdb/serializers/__init__.py +7 -0
- angr/angrdb/serializers/cfg_model.py +2 -2
- angr/angrdb/serializers/comments.py +2 -2
- angr/angrdb/serializers/funcs.py +2 -2
- angr/angrdb/serializers/kb.py +2 -2
- angr/angrdb/serializers/labels.py +2 -2
- angr/angrdb/serializers/loader.py +2 -2
- angr/angrdb/serializers/structured_code.py +4 -4
- angr/angrdb/serializers/variables.py +3 -3
- angr/angrdb/serializers/xrefs.py +2 -2
- angr/calling_conventions.py +69 -24
- angr/concretization_strategies/__init__.py +17 -0
- angr/concretization_strategies/max.py +1 -1
- angr/concretization_strategies/norepeats.py +3 -3
- angr/concretization_strategies/norepeats_range.py +1 -1
- angr/distributed/__init__.py +6 -1
- angr/distributed/server.py +0 -1
- angr/distributed/worker.py +6 -4
- angr/engines/__init__.py +25 -0
- angr/engines/concrete.py +2 -3
- angr/engines/engine.py +3 -3
- angr/engines/failure.py +2 -2
- angr/engines/light/__init__.py +12 -0
- angr/engines/light/data.py +1 -1
- angr/engines/light/engine.py +12 -17
- angr/engines/pcode/__init__.py +7 -1
- angr/engines/pcode/behavior.py +1 -1
- angr/engines/pcode/cc.py +1 -1
- angr/engines/pcode/emulate.py +4 -4
- angr/engines/pcode/engine.py +5 -5
- angr/engines/pcode/lifter.py +7 -7
- angr/engines/procedure.py +3 -3
- angr/engines/soot/__init__.py +3 -0
- angr/engines/soot/engine.py +13 -13
- angr/engines/soot/expressions/__init__.py +33 -0
- angr/engines/soot/expressions/arrayref.py +1 -1
- angr/engines/soot/expressions/base.py +1 -1
- angr/engines/soot/expressions/cast.py +1 -1
- angr/engines/soot/expressions/condition.py +2 -2
- angr/engines/soot/expressions/constants.py +1 -1
- angr/engines/soot/expressions/invoke.py +2 -2
- angr/engines/soot/expressions/new.py +1 -1
- angr/engines/soot/expressions/newArray.py +1 -1
- angr/engines/soot/expressions/newMultiArray.py +1 -1
- angr/engines/soot/statements/__init__.py +16 -0
- angr/engines/soot/statements/assign.py +1 -1
- angr/engines/soot/statements/base.py +3 -3
- angr/engines/soot/statements/goto.py +1 -1
- angr/engines/soot/statements/if_.py +1 -1
- angr/engines/soot/statements/throw.py +1 -1
- angr/engines/soot/values/__init__.py +14 -0
- angr/engines/soot/values/arrayref.py +1 -1
- angr/engines/soot/values/instancefieldref.py +1 -1
- angr/engines/soot/values/staticfieldref.py +1 -1
- angr/engines/soot/values/thisref.py +2 -2
- angr/engines/successors.py +8 -8
- angr/engines/syscall.py +1 -1
- angr/engines/unicorn.py +13 -13
- angr/engines/vex/__init__.py +18 -3
- angr/engines/vex/claripy/__init__.py +3 -0
- angr/engines/vex/claripy/ccall.py +1 -2
- angr/engines/vex/claripy/datalayer.py +3 -3
- angr/engines/vex/heavy/__init__.py +11 -1
- angr/engines/vex/heavy/heavy.py +8 -8
- angr/engines/vex/heavy/inspect.py +2 -2
- angr/engines/vex/heavy/resilience.py +2 -2
- angr/engines/vex/heavy/super_fastpath.py +3 -3
- angr/engines/vex/lifter.py +5 -5
- angr/engines/vex/light/__init__.py +7 -0
- angr/engines/vex/light/light.py +2 -2
- angr/engines/vex/light/slicing.py +1 -1
- angr/errors.py +4 -4
- angr/exploration_techniques/__init__.py +0 -1
- angr/exploration_techniques/bucketizer.py +9 -10
- angr/exploration_techniques/common.py +2 -2
- angr/exploration_techniques/director.py +4 -4
- angr/exploration_techniques/driller_core.py +2 -3
- angr/exploration_techniques/explorer.py +3 -3
- angr/exploration_techniques/loop_seer.py +3 -3
- angr/exploration_techniques/oppologist.py +3 -3
- angr/exploration_techniques/slicecutor.py +1 -1
- angr/exploration_techniques/spiller.py +1 -1
- angr/exploration_techniques/suggestions.py +6 -6
- angr/exploration_techniques/symbion.py +0 -1
- angr/exploration_techniques/threading.py +2 -2
- angr/exploration_techniques/tracer.py +3 -3
- angr/exploration_techniques/veritesting.py +1 -1
- angr/flirt/__init__.py +0 -1
- angr/{knowledge_base/knowledge_base.py → knowledge_base.py} +13 -15
- angr/knowledge_plugins/__init__.py +23 -1
- angr/knowledge_plugins/callsite_prototypes.py +2 -2
- angr/knowledge_plugins/cfg/cfg_manager.py +1 -1
- angr/knowledge_plugins/cfg/cfg_model.py +8 -7
- angr/knowledge_plugins/cfg/indirect_jump.py +1 -1
- angr/knowledge_plugins/cfg/memory_data.py +3 -2
- angr/knowledge_plugins/debug_variables.py +2 -2
- angr/knowledge_plugins/functions/__init__.py +6 -0
- angr/knowledge_plugins/functions/function.py +21 -16
- angr/knowledge_plugins/functions/function_manager.py +2 -2
- angr/knowledge_plugins/functions/function_parser.py +3 -3
- angr/knowledge_plugins/functions/soot_function.py +2 -2
- angr/knowledge_plugins/key_definitions/atoms.py +2 -2
- angr/knowledge_plugins/key_definitions/definition.py +3 -3
- angr/knowledge_plugins/key_definitions/key_definition_manager.py +2 -2
- angr/knowledge_plugins/key_definitions/uses.py +2 -2
- angr/knowledge_plugins/propagations/__init__.py +7 -0
- angr/knowledge_plugins/propagations/prop_value.py +1 -1
- angr/knowledge_plugins/{structured_code/manager.py → structured_code.py} +6 -3
- angr/knowledge_plugins/types.py +1 -1
- angr/knowledge_plugins/variables/__init__.py +6 -0
- angr/knowledge_plugins/variables/variable_access.py +3 -3
- angr/knowledge_plugins/variables/variable_manager.py +7 -7
- angr/knowledge_plugins/xrefs/__init__.py +9 -1
- angr/knowledge_plugins/xrefs/xref.py +5 -5
- angr/knowledge_plugins/xrefs/xref_manager.py +3 -3
- angr/misc/__init__.py +12 -2
- angr/misc/loggers.py +2 -2
- angr/misc/telemetry.py +54 -0
- angr/procedures/__init__.py +9 -0
- angr/procedures/cgc/receive.py +2 -2
- angr/procedures/cgc/transmit.py +1 -1
- angr/procedures/definitions/__init__.py +8 -8
- angr/procedures/definitions/cgc.py +1 -1
- angr/procedures/definitions/glibc.py +2 -15
- angr/procedures/definitions/gnulib.py +2 -6
- angr/procedures/definitions/libstdcpp.py +2 -2
- angr/procedures/definitions/linux_kernel.py +2 -3
- angr/procedures/definitions/linux_loader.py +1 -1
- angr/procedures/definitions/msvcr.py +2 -2
- angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-4.py +3 -18
- angr/procedures/definitions/wdk_api-ms-win-dx-d3dkmt-l1-1-6.py +3 -18
- angr/procedures/definitions/wdk_clfs.py +3 -18
- angr/procedures/definitions/wdk_fltmgr.py +3 -18
- angr/procedures/definitions/wdk_fwpkclnt.py +3 -18
- angr/procedures/definitions/wdk_fwpuclnt.py +3 -18
- angr/procedures/definitions/wdk_gdi32.py +3 -18
- angr/procedures/definitions/wdk_hal.py +3 -18
- angr/procedures/definitions/wdk_ksecdd.py +3 -18
- angr/procedures/definitions/wdk_ndis.py +3 -18
- angr/procedures/definitions/wdk_ntoskrnl.py +3 -18
- angr/procedures/definitions/wdk_offreg.py +3 -18
- angr/procedures/definitions/wdk_pshed.py +3 -18
- angr/procedures/definitions/wdk_secur32.py +3 -18
- angr/procedures/definitions/wdk_vhfum.py +3 -18
- angr/procedures/definitions/win32_aclui.py +3 -18
- angr/procedures/definitions/win32_activeds.py +3 -18
- angr/procedures/definitions/win32_advapi32.py +3 -18
- angr/procedures/definitions/win32_advpack.py +3 -18
- angr/procedures/definitions/win32_amsi.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-appmodel-runtime-l1-1-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-apiquery-l2-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-backgroundtask-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-comm-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-enclave-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-errorhandling-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-featurestaging-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-file-fromapp-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-handle-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-ioring-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-marshal-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-5.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-7.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-memory-l1-1-8.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-path-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-psm-appnotify-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-realtime-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-slapi-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-state-helpers-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-synch-l1-2-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-sysinfo-l1-2-6.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-util-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-error-l1-1-1.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-registration-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-robuffer-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-roparameterizediid-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-winrt-string-l1-1-1.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-core-wow64-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-devices-query-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-dx-d3dkmt-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-deviceinformation-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-expandedresources-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-gaming-tcui-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-mm-misc-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-net-isolation-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-base-l1-2-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-security-isolatedcontainer-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-3.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-4.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-service-core-l1-1-5.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-1.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-scaling-l1-1-2.py +3 -18
- angr/procedures/definitions/win32_api-ms-win-shcore-stream-winrt-l1-1-0.py +3 -3
- angr/procedures/definitions/win32_api-ms-win-wsl-api-l1-1-0.py +3 -18
- angr/procedures/definitions/win32_apphelp.py +3 -18
- angr/procedures/definitions/win32_authz.py +3 -18
- angr/procedures/definitions/win32_avicap32.py +3 -18
- angr/procedures/definitions/win32_avifil32.py +3 -18
- angr/procedures/definitions/win32_avrt.py +3 -18
- angr/procedures/definitions/win32_bcp47mrm.py +3 -18
- angr/procedures/definitions/win32_bcrypt.py +3 -18
- angr/procedures/definitions/win32_bcryptprimitives.py +3 -18
- angr/procedures/definitions/win32_bluetoothapis.py +3 -18
- angr/procedures/definitions/win32_bthprops.py +3 -3
- angr/procedures/definitions/win32_bthprops_cpl.py +3 -18
- angr/procedures/definitions/win32_cabinet.py +3 -18
- angr/procedures/definitions/win32_certadm.py +3 -18
- angr/procedures/definitions/win32_certpoleng.py +3 -18
- angr/procedures/definitions/win32_cfgmgr32.py +3 -18
- angr/procedures/definitions/win32_chakra.py +3 -18
- angr/procedures/definitions/win32_cldapi.py +3 -18
- angr/procedures/definitions/win32_clfsw32.py +3 -18
- angr/procedures/definitions/win32_clusapi.py +3 -18
- angr/procedures/definitions/win32_comctl32.py +3 -18
- angr/procedures/definitions/win32_comdlg32.py +3 -18
- angr/procedures/definitions/win32_compstui.py +3 -18
- angr/procedures/definitions/win32_computecore.py +3 -18
- angr/procedures/definitions/win32_computenetwork.py +3 -18
- angr/procedures/definitions/win32_computestorage.py +3 -18
- angr/procedures/definitions/win32_comsvcs.py +3 -18
- angr/procedures/definitions/win32_coremessaging.py +3 -3
- angr/procedures/definitions/win32_credui.py +3 -18
- angr/procedures/definitions/win32_crypt32.py +3 -18
- angr/procedures/definitions/win32_cryptnet.py +3 -18
- angr/procedures/definitions/win32_cryptui.py +3 -18
- angr/procedures/definitions/win32_cryptxml.py +3 -18
- angr/procedures/definitions/win32_cscapi.py +3 -18
- angr/procedures/definitions/win32_d2d1.py +3 -18
- angr/procedures/definitions/win32_d3d10.py +3 -18
- angr/procedures/definitions/win32_d3d10_1.py +3 -18
- angr/procedures/definitions/win32_d3d11.py +3 -18
- angr/procedures/definitions/win32_d3d12.py +3 -18
- angr/procedures/definitions/win32_d3d9.py +3 -18
- angr/procedures/definitions/win32_d3dcompiler_47.py +3 -18
- angr/procedures/definitions/win32_d3dcsx.py +3 -18
- angr/procedures/definitions/win32_davclnt.py +3 -18
- angr/procedures/definitions/win32_dbgeng.py +3 -18
- angr/procedures/definitions/win32_dbghelp.py +3 -18
- angr/procedures/definitions/win32_dbgmodel.py +3 -18
- angr/procedures/definitions/win32_dciman32.py +3 -18
- angr/procedures/definitions/win32_dcomp.py +3 -18
- angr/procedures/definitions/win32_ddraw.py +3 -18
- angr/procedures/definitions/win32_deviceaccess.py +3 -18
- angr/procedures/definitions/win32_dflayout.py +3 -18
- angr/procedures/definitions/win32_dhcpcsvc.py +3 -18
- angr/procedures/definitions/win32_dhcpcsvc6.py +3 -18
- angr/procedures/definitions/win32_dhcpsapi.py +3 -18
- angr/procedures/definitions/win32_diagnosticdataquery.py +3 -18
- angr/procedures/definitions/win32_dinput8.py +3 -18
- angr/procedures/definitions/win32_directml.py +3 -18
- angr/procedures/definitions/win32_dmprocessxmlfiltered.py +3 -18
- angr/procedures/definitions/win32_dnsapi.py +3 -18
- angr/procedures/definitions/win32_drt.py +3 -18
- angr/procedures/definitions/win32_drtprov.py +3 -18
- angr/procedures/definitions/win32_drttransport.py +3 -18
- angr/procedures/definitions/win32_dsound.py +3 -18
- angr/procedures/definitions/win32_dsparse.py +3 -18
- angr/procedures/definitions/win32_dsprop.py +3 -18
- angr/procedures/definitions/win32_dssec.py +3 -18
- angr/procedures/definitions/win32_dsuiext.py +3 -18
- angr/procedures/definitions/win32_dwmapi.py +3 -18
- angr/procedures/definitions/win32_dwrite.py +3 -18
- angr/procedures/definitions/win32_dxcompiler.py +3 -18
- angr/procedures/definitions/win32_dxcore.py +3 -18
- angr/procedures/definitions/win32_dxgi.py +3 -18
- angr/procedures/definitions/win32_dxva2.py +3 -18
- angr/procedures/definitions/win32_eappcfg.py +3 -18
- angr/procedures/definitions/win32_eappprxy.py +3 -18
- angr/procedures/definitions/win32_efswrt.py +3 -18
- angr/procedures/definitions/win32_elscore.py +3 -18
- angr/procedures/definitions/win32_esent.py +3 -18
- angr/procedures/definitions/win32_evr.py +3 -18
- angr/procedures/definitions/win32_faultrep.py +3 -18
- angr/procedures/definitions/win32_fhsvcctl.py +3 -18
- angr/procedures/definitions/win32_firewallapi.py +3 -18
- angr/procedures/definitions/win32_fltlib.py +3 -18
- angr/procedures/definitions/win32_fontsub.py +3 -18
- angr/procedures/definitions/win32_forceinline.py +3 -18
- angr/procedures/definitions/win32_fwpuclnt.py +3 -18
- angr/procedures/definitions/win32_fxsutility.py +3 -18
- angr/procedures/definitions/win32_gdi32.py +3 -18
- angr/procedures/definitions/win32_gdiplus.py +3 -18
- angr/procedures/definitions/win32_glu32.py +3 -18
- angr/procedures/definitions/win32_gpedit.py +3 -18
- angr/procedures/definitions/win32_hhctrl_ocx.py +3 -18
- angr/procedures/definitions/win32_hid.py +3 -18
- angr/procedures/definitions/win32_hlink.py +3 -18
- angr/procedures/definitions/win32_hrtfapo.py +3 -18
- angr/procedures/definitions/win32_httpapi.py +3 -18
- angr/procedures/definitions/win32_icm32.py +3 -18
- angr/procedures/definitions/win32_icmui.py +3 -18
- angr/procedures/definitions/win32_icu.py +3 -18
- angr/procedures/definitions/win32_ieframe.py +3 -18
- angr/procedures/definitions/win32_imagehlp.py +3 -18
- angr/procedures/definitions/win32_imgutil.py +3 -18
- angr/procedures/definitions/win32_imm32.py +3 -18
- angr/procedures/definitions/win32_infocardapi.py +3 -18
- angr/procedures/definitions/win32_inkobjcore.py +3 -18
- angr/procedures/definitions/win32_iphlpapi.py +3 -18
- angr/procedures/definitions/win32_iscsidsc.py +3 -18
- angr/procedures/definitions/win32_isolatedwindowsenvironmentutils.py +3 -18
- angr/procedures/definitions/win32_kernel32.py +3 -18
- angr/procedures/definitions/win32_kernelbase.py +3 -18
- angr/procedures/definitions/win32_keycredmgr.py +3 -18
- angr/procedures/definitions/win32_ksproxy_ax.py +3 -18
- angr/procedures/definitions/win32_ksuser.py +3 -18
- angr/procedures/definitions/win32_ktmw32.py +3 -18
- angr/procedures/definitions/win32_licenseprotection.py +3 -18
- angr/procedures/definitions/win32_loadperf.py +3 -18
- angr/procedures/definitions/win32_magnification.py +3 -18
- angr/procedures/definitions/win32_mapi32.py +3 -18
- angr/procedures/definitions/win32_mdmlocalmanagement.py +3 -18
- angr/procedures/definitions/win32_mdmregistration.py +3 -18
- angr/procedures/definitions/win32_mf.py +3 -18
- angr/procedures/definitions/win32_mfcore.py +3 -18
- angr/procedures/definitions/win32_mfplat.py +3 -18
- angr/procedures/definitions/win32_mfplay.py +3 -18
- angr/procedures/definitions/win32_mfreadwrite.py +3 -18
- angr/procedures/definitions/win32_mfsensorgroup.py +3 -18
- angr/procedures/definitions/win32_mfsrcsnk.py +3 -18
- angr/procedures/definitions/win32_mgmtapi.py +3 -18
- angr/procedures/definitions/win32_mi.py +3 -18
- angr/procedures/definitions/win32_mmdevapi.py +3 -18
- angr/procedures/definitions/win32_mpr.py +3 -18
- angr/procedures/definitions/win32_mprapi.py +3 -18
- angr/procedures/definitions/win32_mqrt.py +3 -18
- angr/procedures/definitions/win32_mrmsupport.py +3 -18
- angr/procedures/definitions/win32_msacm32.py +3 -18
- angr/procedures/definitions/win32_msajapi.py +3 -18
- angr/procedures/definitions/win32_mscms.py +3 -18
- angr/procedures/definitions/win32_mscoree.py +3 -18
- angr/procedures/definitions/win32_msctfmonitor.py +3 -18
- angr/procedures/definitions/win32_msdelta.py +3 -18
- angr/procedures/definitions/win32_msdmo.py +3 -18
- angr/procedures/definitions/win32_msdrm.py +3 -18
- angr/procedures/definitions/win32_msi.py +3 -18
- angr/procedures/definitions/win32_msimg32.py +3 -18
- angr/procedures/definitions/win32_mspatcha.py +3 -18
- angr/procedures/definitions/win32_mspatchc.py +3 -18
- angr/procedures/definitions/win32_msports.py +3 -18
- angr/procedures/definitions/win32_msrating.py +3 -18
- angr/procedures/definitions/win32_mssign32.py +3 -18
- angr/procedures/definitions/win32_mstask.py +3 -18
- angr/procedures/definitions/win32_msvfw32.py +3 -18
- angr/procedures/definitions/win32_mswsock.py +3 -18
- angr/procedures/definitions/win32_mtxdm.py +3 -18
- angr/procedures/definitions/win32_ncrypt.py +3 -18
- angr/procedures/definitions/win32_ndfapi.py +3 -18
- angr/procedures/definitions/win32_netapi32.py +3 -18
- angr/procedures/definitions/win32_netsh.py +3 -18
- angr/procedures/definitions/win32_netshell.py +3 -18
- angr/procedures/definitions/win32_newdev.py +3 -18
- angr/procedures/definitions/win32_ninput.py +3 -18
- angr/procedures/definitions/win32_normaliz.py +3 -18
- angr/procedures/definitions/win32_ntdll.py +3 -18
- angr/procedures/definitions/win32_ntdllk.py +3 -18
- angr/procedures/definitions/win32_ntdsapi.py +3 -18
- angr/procedures/definitions/win32_ntlanman.py +3 -18
- angr/procedures/definitions/win32_odbc32.py +3 -18
- angr/procedures/definitions/win32_odbcbcp.py +3 -18
- angr/procedures/definitions/win32_ole32.py +3 -18
- angr/procedures/definitions/win32_oleacc.py +3 -18
- angr/procedures/definitions/win32_oleaut32.py +3 -18
- angr/procedures/definitions/win32_oledlg.py +3 -18
- angr/procedures/definitions/win32_ondemandconnroutehelper.py +3 -18
- angr/procedures/definitions/win32_opengl32.py +3 -18
- angr/procedures/definitions/win32_opmxbox.py +3 -18
- angr/procedures/definitions/win32_p2p.py +3 -18
- angr/procedures/definitions/win32_p2pgraph.py +3 -18
- angr/procedures/definitions/win32_pdh.py +3 -18
- angr/procedures/definitions/win32_peerdist.py +3 -18
- angr/procedures/definitions/win32_powrprof.py +3 -18
- angr/procedures/definitions/win32_prntvpt.py +3 -18
- angr/procedures/definitions/win32_projectedfslib.py +3 -18
- angr/procedures/definitions/win32_propsys.py +3 -18
- angr/procedures/definitions/win32_psapi.py +3 -18
- angr/procedures/definitions/win32_quartz.py +3 -18
- angr/procedures/definitions/win32_query.py +3 -18
- angr/procedures/definitions/win32_qwave.py +3 -18
- angr/procedures/definitions/win32_rasapi32.py +3 -18
- angr/procedures/definitions/win32_rasdlg.py +3 -18
- angr/procedures/definitions/win32_resutils.py +3 -18
- angr/procedures/definitions/win32_rometadata.py +3 -3
- angr/procedures/definitions/win32_rpcns4.py +3 -18
- angr/procedures/definitions/win32_rpcproxy.py +3 -18
- angr/procedures/definitions/win32_rpcrt4.py +3 -18
- angr/procedures/definitions/win32_rstrtmgr.py +3 -18
- angr/procedures/definitions/win32_rtm.py +3 -18
- angr/procedures/definitions/win32_rtutils.py +3 -18
- angr/procedures/definitions/win32_rtworkq.py +3 -18
- angr/procedures/definitions/win32_sas.py +3 -18
- angr/procedures/definitions/win32_scarddlg.py +3 -18
- angr/procedures/definitions/win32_schannel.py +3 -18
- angr/procedures/definitions/win32_sechost.py +3 -18
- angr/procedures/definitions/win32_secur32.py +3 -18
- angr/procedures/definitions/win32_sensapi.py +3 -18
- angr/procedures/definitions/win32_sensorsutilsv2.py +3 -18
- angr/procedures/definitions/win32_setupapi.py +3 -18
- angr/procedures/definitions/win32_sfc.py +3 -18
- angr/procedures/definitions/win32_shdocvw.py +3 -18
- angr/procedures/definitions/win32_shell32.py +3 -18
- angr/procedures/definitions/win32_shlwapi.py +3 -18
- angr/procedures/definitions/win32_slc.py +3 -18
- angr/procedures/definitions/win32_slcext.py +3 -18
- angr/procedures/definitions/win32_slwga.py +3 -18
- angr/procedures/definitions/win32_snmpapi.py +3 -18
- angr/procedures/definitions/win32_spoolss.py +3 -18
- angr/procedures/definitions/win32_srclient.py +3 -18
- angr/procedures/definitions/win32_srpapi.py +3 -18
- angr/procedures/definitions/win32_sspicli.py +3 -18
- angr/procedures/definitions/win32_sti.py +3 -18
- angr/procedures/definitions/win32_t2embed.py +3 -18
- angr/procedures/definitions/win32_tapi32.py +3 -18
- angr/procedures/definitions/win32_tbs.py +3 -18
- angr/procedures/definitions/win32_tdh.py +3 -18
- angr/procedures/definitions/win32_tokenbinding.py +3 -18
- angr/procedures/definitions/win32_traffic.py +3 -18
- angr/procedures/definitions/win32_txfw32.py +3 -18
- angr/procedures/definitions/win32_ualapi.py +3 -18
- angr/procedures/definitions/win32_uiautomationcore.py +3 -18
- angr/procedures/definitions/win32_urlmon.py +3 -18
- angr/procedures/definitions/win32_user32.py +4 -19
- angr/procedures/definitions/win32_userenv.py +3 -18
- angr/procedures/definitions/win32_usp10.py +3 -18
- angr/procedures/definitions/win32_uxtheme.py +3 -18
- angr/procedures/definitions/win32_verifier.py +3 -18
- angr/procedures/definitions/win32_version.py +3 -18
- angr/procedures/definitions/win32_vertdll.py +3 -18
- angr/procedures/definitions/win32_virtdisk.py +3 -18
- angr/procedures/definitions/win32_vmdevicehost.py +3 -18
- angr/procedures/definitions/win32_vmsavedstatedumpprovider.py +3 -18
- angr/procedures/definitions/win32_vssapi.py +3 -18
- angr/procedures/definitions/win32_wcmapi.py +3 -18
- angr/procedures/definitions/win32_wdsbp.py +3 -18
- angr/procedures/definitions/win32_wdsclientapi.py +3 -18
- angr/procedures/definitions/win32_wdsmc.py +3 -18
- angr/procedures/definitions/win32_wdspxe.py +3 -18
- angr/procedures/definitions/win32_wdstptc.py +3 -18
- angr/procedures/definitions/win32_webauthn.py +3 -18
- angr/procedures/definitions/win32_webservices.py +3 -18
- angr/procedures/definitions/win32_websocket.py +3 -18
- angr/procedures/definitions/win32_wecapi.py +3 -18
- angr/procedures/definitions/win32_wer.py +3 -18
- angr/procedures/definitions/win32_wevtapi.py +3 -18
- angr/procedures/definitions/win32_winbio.py +3 -18
- angr/procedures/definitions/win32_windows_ai_machinelearning.py +3 -18
- angr/procedures/definitions/win32_windows_data_pdf.py +3 -3
- angr/procedures/definitions/win32_windows_media_mediacontrol.py +3 -18
- angr/procedures/definitions/win32_windows_networking.py +3 -18
- angr/procedures/definitions/win32_windows_ui_xaml.py +3 -18
- angr/procedures/definitions/win32_windowscodecs.py +3 -18
- angr/procedures/definitions/win32_winfax.py +3 -18
- angr/procedures/definitions/win32_winhttp.py +3 -18
- angr/procedures/definitions/win32_winhvemulation.py +3 -18
- angr/procedures/definitions/win32_winhvplatform.py +3 -18
- angr/procedures/definitions/win32_wininet.py +3 -18
- angr/procedures/definitions/win32_winml.py +3 -18
- angr/procedures/definitions/win32_winmm.py +3 -18
- angr/procedures/definitions/win32_winscard.py +3 -18
- angr/procedures/definitions/win32_winspool.py +3 -3
- angr/procedures/definitions/win32_winspool_drv.py +3 -18
- angr/procedures/definitions/win32_wintrust.py +3 -18
- angr/procedures/definitions/win32_winusb.py +3 -18
- angr/procedures/definitions/win32_wlanapi.py +3 -18
- angr/procedures/definitions/win32_wlanui.py +3 -18
- angr/procedures/definitions/win32_wldap32.py +3 -18
- angr/procedures/definitions/win32_wldp.py +3 -18
- angr/procedures/definitions/win32_wmvcore.py +3 -18
- angr/procedures/definitions/win32_wnvapi.py +3 -18
- angr/procedures/definitions/win32_wofutil.py +3 -18
- angr/procedures/definitions/win32_ws2_32.py +3 -18
- angr/procedures/definitions/win32_wscapi.py +3 -18
- angr/procedures/definitions/win32_wsclient.py +3 -18
- angr/procedures/definitions/win32_wsdapi.py +3 -18
- angr/procedures/definitions/win32_wsmsvc.py +3 -18
- angr/procedures/definitions/win32_wsnmp32.py +3 -18
- angr/procedures/definitions/win32_wtsapi32.py +3 -18
- angr/procedures/definitions/win32_xaudio2_8.py +3 -18
- angr/procedures/definitions/win32_xinput1_4.py +3 -18
- angr/procedures/definitions/win32_xinputuap.py +3 -3
- angr/procedures/definitions/win32_xmllite.py +3 -18
- angr/procedures/definitions/win32_xolehlp.py +3 -18
- angr/procedures/definitions/win32_xpsprint.py +3 -18
- angr/procedures/glibc/scanf.py +2 -2
- angr/procedures/glibc/sscanf.py +1 -1
- angr/procedures/java/__init__.py +6 -3
- angr/procedures/java/unconstrained.py +4 -4
- angr/procedures/java_io/read.py +1 -1
- angr/procedures/java_io/write.py +1 -1
- angr/procedures/java_jni/__init__.py +25 -17
- angr/procedures/java_jni/array_operations.py +2 -2
- angr/procedures/java_jni/field_access.py +3 -3
- angr/procedures/java_jni/method_calls.py +2 -2
- angr/procedures/java_jni/object_operations.py +1 -1
- angr/procedures/java_jni/string_operations.py +2 -2
- angr/procedures/java_lang/character.py +1 -1
- angr/procedures/java_lang/double.py +2 -2
- angr/procedures/java_lang/exit.py +1 -1
- angr/procedures/java_lang/getsimplename.py +1 -1
- angr/procedures/java_lang/integer.py +2 -2
- angr/procedures/java_lang/load_library.py +1 -1
- angr/procedures/java_lang/math.py +1 -1
- angr/procedures/java_lang/string.py +4 -4
- angr/procedures/java_lang/stringbuilder.py +2 -2
- angr/procedures/java_lang/system.py +1 -1
- angr/procedures/java_util/collection.py +2 -2
- angr/procedures/java_util/iterator.py +2 -2
- angr/procedures/java_util/list.py +3 -3
- angr/procedures/java_util/map.py +3 -3
- angr/procedures/java_util/random.py +1 -1
- angr/procedures/java_util/scanner_nextline.py +3 -3
- angr/procedures/libc/fseek.py +1 -1
- angr/procedures/libc/memcpy.py +1 -1
- angr/procedures/libc/strlen.py +12 -4
- angr/procedures/libc/strncmp.py +9 -4
- angr/procedures/linux_kernel/iovec.py +3 -3
- angr/procedures/linux_kernel/mmap.py +1 -1
- angr/procedures/linux_kernel/stat.py +1 -1
- angr/procedures/linux_kernel/sysinfo.py +1 -1
- angr/procedures/linux_kernel/vsyscall.py +1 -1
- angr/procedures/posix/bzero.py +1 -1
- angr/procedures/posix/mmap.py +1 -1
- angr/procedures/posix/send.py +1 -1
- angr/procedures/posix/syslog.py +2 -3
- angr/procedures/procedure_dict.py +2 -2
- angr/procedures/stubs/Redirect.py +1 -1
- angr/procedures/stubs/UserHook.py +1 -1
- angr/procedures/stubs/format_parser.py +6 -6
- angr/procedures/tracer/random.py +1 -1
- angr/procedures/tracer/receive.py +1 -1
- angr/procedures/tracer/transmit.py +1 -1
- angr/procedures/uclibc/__uClibc_main.py +1 -1
- angr/protos/__init__.py +8 -0
- angr/sim_options.py +0 -4
- angr/sim_procedure.py +5 -5
- angr/sim_state.py +21 -34
- angr/sim_type.py +51 -18
- angr/simos/__init__.py +12 -0
- angr/simos/cgc.py +5 -5
- angr/simos/javavm.py +18 -23
- angr/simos/linux.py +6 -6
- angr/simos/simos.py +12 -16
- angr/simos/userland.py +3 -3
- angr/simos/windows.py +6 -11
- angr/state_hierarchy.py +1 -1
- angr/state_plugins/__init__.py +84 -28
- angr/state_plugins/callstack.py +1 -1
- angr/state_plugins/concrete.py +3 -4
- angr/state_plugins/filesystem.py +3 -3
- angr/state_plugins/gdb.py +1 -1
- angr/state_plugins/heap/__init__.py +14 -5
- angr/state_plugins/heap/heap_base.py +5 -4
- angr/state_plugins/heap/heap_brk.py +1 -1
- angr/state_plugins/heap/heap_freelist.py +1 -1
- angr/state_plugins/heap/heap_ptmalloc.py +2 -20
- angr/state_plugins/heap/utils.py +1 -1
- angr/state_plugins/history.py +2 -2
- angr/state_plugins/javavm_classloader.py +3 -3
- angr/state_plugins/jni_references.py +1 -1
- angr/state_plugins/light_registers.py +3 -3
- angr/state_plugins/log.py +1 -1
- angr/state_plugins/plugin.py +3 -2
- angr/state_plugins/posix.py +3 -3
- angr/state_plugins/preconstrainer.py +6 -6
- angr/state_plugins/scratch.py +4 -4
- angr/state_plugins/sim_action_object.py +1 -1
- angr/state_plugins/solver.py +15 -19
- angr/state_plugins/symbolizer.py +2 -3
- angr/state_plugins/trace_additions.py +8 -8
- angr/state_plugins/uc_manager.py +1 -1
- angr/state_plugins/unicorn_engine.py +4 -4
- angr/state_plugins/view.py +1 -1
- angr/storage/__init__.py +9 -3
- angr/storage/file.py +16 -16
- angr/storage/memory_mixins/__init__.py +88 -6
- angr/storage/memory_mixins/actions_mixin.py +3 -3
- angr/storage/memory_mixins/address_concretization_mixin.py +6 -6
- angr/storage/memory_mixins/bvv_conversion_mixin.py +1 -1
- angr/storage/memory_mixins/clouseau_mixin.py +1 -1
- angr/storage/memory_mixins/convenient_mappings_mixin.py +8 -10
- angr/storage/memory_mixins/default_filler_mixin.py +3 -3
- angr/storage/memory_mixins/hex_dumper_mixin.py +1 -1
- angr/storage/memory_mixins/{javavm_memory/javavm_memory_mixin.py → javavm_memory_mixin.py} +15 -12
- angr/storage/memory_mixins/{keyvalue_memory/keyvalue_memory_mixin.py → keyvalue_memory_mixin.py} +11 -6
- angr/storage/memory_mixins/multi_value_merger_mixin.py +5 -5
- angr/storage/memory_mixins/name_resolution_mixin.py +2 -2
- angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/__init__.py +15 -0
- angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +2 -2
- angr/storage/memory_mixins/paged_memory/stack_allocation_mixin.py +2 -2
- angr/storage/memory_mixins/regioned_memory/__init__.py +10 -0
- angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +1 -1
- angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +1 -1
- angr/storage/memory_mixins/regioned_memory/region_data.py +2 -2
- angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +1 -1
- angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +4 -4
- angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +7 -19
- angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
- angr/storage/memory_mixins/simple_interface_mixin.py +1 -1
- angr/storage/memory_mixins/simplification_mixin.py +1 -1
- angr/storage/memory_mixins/size_resolution_mixin.py +2 -2
- angr/storage/memory_mixins/slotted_memory.py +1 -1
- angr/storage/memory_mixins/smart_find_mixin.py +3 -3
- angr/storage/memory_mixins/underconstrained_mixin.py +1 -1
- angr/storage/memory_mixins/unwrapper_mixin.py +1 -1
- angr/storage/memory_object.py +8 -10
- angr/utils/__init__.py +12 -0
- angr/utils/enums_conv.py +1 -1
- angr/utils/library.py +2 -2
- angr/utils/mp.py +1 -1
- angr/utils/timing.py +30 -18
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/METADATA +8 -7
- angr-9.2.120.dist-info/RECORD +1340 -0
- angr/analyses/s_liveness/__init__.py +0 -2
- angr/analyses/s_propagator/__init__.py +0 -2
- angr/analyses/s_reaching_definitions/s_rda.py +0 -479
- angr/knowledge_base/__init__.py +0 -2
- angr/knowledge_plugins/structured_code/__init__.py +0 -2
- angr/knowledge_plugins/sync/__init__.py +0 -2
- angr/knowledge_plugins/sync/sync_controller.py +0 -324
- angr/misc/range.py +0 -24
- angr/misc/weakpatch.py +0 -59
- angr/storage/memory_mixins/javavm_memory/__init__.py +0 -2
- angr/storage/memory_mixins/keyvalue_memory/__init__.py +0 -2
- angr/storage/pcap.py +0 -65
- angr/utils/typing.py +0 -18
- angr-9.2.118.dist-info/RECORD +0 -1344
- /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/LICENSE +0 -0
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/WHEEL +0 -0
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/entry_points.txt +0 -0
- {angr-9.2.118.dist-info → angr-9.2.120.dist-info}/top_level.txt +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
import ailment
|
|
3
3
|
|
|
4
|
-
from
|
|
5
|
-
from
|
|
6
|
-
from
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
4
|
+
from angr.analyses.decompiler.goto_manager import GotoManager
|
|
5
|
+
from angr.analyses import AnalysesHub
|
|
6
|
+
from angr.analyses.analysis import Analysis
|
|
7
|
+
from angr.analyses.decompiler.empty_node_remover import EmptyNodeRemover
|
|
8
|
+
from angr.analyses.decompiler.jump_target_collector import JumpTargetCollector
|
|
9
|
+
from angr.analyses.decompiler.redundant_label_remover import RedundantLabelRemover
|
|
10
10
|
from .goto import GotoSimplifier
|
|
11
11
|
from .if_ import IfSimplifier
|
|
12
12
|
from .cascading_ifs import CascadingIfsRemover
|
|
@@ -8,11 +8,18 @@ import ailment
|
|
|
8
8
|
from ailment import UnaryOp
|
|
9
9
|
from ailment.expression import negate
|
|
10
10
|
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
from angr.utils.constants import SWITCH_MISSING_DEFAULT_NODE_ADDR
|
|
12
|
+
from angr.analyses.decompiler.structuring.structurer_nodes import (
|
|
13
|
+
SwitchCaseNode,
|
|
14
|
+
ConditionNode,
|
|
15
|
+
SequenceNode,
|
|
16
|
+
MultiNode,
|
|
17
|
+
BaseNode,
|
|
18
|
+
BreakNode,
|
|
19
|
+
)
|
|
20
|
+
from angr.analyses.decompiler.sequence_walker import SequenceWalker
|
|
21
|
+
from angr.analyses.decompiler.condition_processor import ConditionProcessor, EmptyBlockNotice
|
|
22
|
+
from angr.analyses.decompiler.utils import is_statement_terminating
|
|
16
23
|
|
|
17
24
|
|
|
18
25
|
class CmpOp(enum.Enum):
|
|
@@ -4,8 +4,8 @@ from collections import OrderedDict
|
|
|
4
4
|
|
|
5
5
|
import ailment
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from angr.analyses.decompiler.structuring.structurer_nodes import SwitchCaseNode
|
|
8
|
+
from angr.analyses.decompiler.sequence_walker import SequenceWalker
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class SwitchExpressionSimplifier(SequenceWalker):
|
|
@@ -29,7 +29,7 @@ class SwitchExpressionSimplifier(SequenceWalker):
|
|
|
29
29
|
convert = None
|
|
30
30
|
|
|
31
31
|
# pylint: disable=import-outside-toplevel
|
|
32
|
-
from
|
|
32
|
+
from angr.analyses.decompiler.peephole_optimizations.remove_noop_conversions import RemoveNoopConversions
|
|
33
33
|
|
|
34
34
|
while isinstance(switch_expr, ailment.Expr.Convert):
|
|
35
35
|
optimized = RemoveNoopConversions(None, None).optimize(switch_expr)
|
|
@@ -4,7 +4,7 @@ from collections import OrderedDict
|
|
|
4
4
|
|
|
5
5
|
import ailment
|
|
6
6
|
|
|
7
|
-
from
|
|
7
|
+
from angr.errors import UnsupportedNodeTypeError
|
|
8
8
|
from .structuring.structurer_nodes import (
|
|
9
9
|
MultiNode,
|
|
10
10
|
CodeNode,
|
|
@@ -181,22 +181,21 @@ class SequenceWalker:
|
|
|
181
181
|
return None
|
|
182
182
|
|
|
183
183
|
def _handle_Loop(self, node: LoopNode, **kwargs):
|
|
184
|
-
if node.initializer is not None
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
self._handle(node.
|
|
188
|
-
|
|
189
|
-
self._handle(node.condition, parent=node, label="condition")
|
|
184
|
+
new_initializer = self._handle(node.initializer) if node.initializer is not None else None
|
|
185
|
+
new_iterator = self._handle(node.iterator) if node.iterator is not None else None
|
|
186
|
+
new_condition = (
|
|
187
|
+
self._handle(node.condition, parent=node, label="condition") if node.condition is not None else None
|
|
188
|
+
)
|
|
190
189
|
seq_node = self._handle(node.sequence_node, parent=node, label="body", index=0)
|
|
191
|
-
if seq_node is not None:
|
|
190
|
+
if seq_node is not None or new_initializer is not None or new_iterator is not None or new_condition is not None:
|
|
192
191
|
return LoopNode(
|
|
193
192
|
node.sort,
|
|
194
|
-
node.condition,
|
|
195
|
-
seq_node,
|
|
193
|
+
new_condition if new_condition is not None else node.condition,
|
|
194
|
+
seq_node if seq_node is not None else node.sequence_node,
|
|
196
195
|
addr=node.addr,
|
|
197
196
|
continue_addr=node.continue_addr,
|
|
198
|
-
initializer=node.initializer,
|
|
199
|
-
iterator=node.iterator,
|
|
197
|
+
initializer=new_initializer if new_initializer is not None else node.initializer,
|
|
198
|
+
iterator=new_iterator if new_iterator is not None else node.iterator,
|
|
200
199
|
)
|
|
201
200
|
return None
|
|
202
201
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .base import (
|
|
3
4
|
BaseStructuredCodeGenerator,
|
|
4
5
|
InstructionMapping,
|
|
@@ -9,3 +10,16 @@ from .base import (
|
|
|
9
10
|
from .c import CStructuredCodeGenerator, CStructuredCodeWalker
|
|
10
11
|
from .dwarf_import import ImportSourceCode
|
|
11
12
|
from .dummy import DummyStructuredCodeGenerator
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
__all__ = (
|
|
16
|
+
"BaseStructuredCodeGenerator",
|
|
17
|
+
"InstructionMapping",
|
|
18
|
+
"InstructionMappingElement",
|
|
19
|
+
"PositionMappingElement",
|
|
20
|
+
"PositionMapping",
|
|
21
|
+
"CStructuredCodeGenerator",
|
|
22
|
+
"CStructuredCodeWalker",
|
|
23
|
+
"ImportSourceCode",
|
|
24
|
+
"DummyStructuredCodeGenerator",
|
|
25
|
+
)
|
|
@@ -10,8 +10,8 @@ from ailment import Block, Expr, Stmt, Tmp
|
|
|
10
10
|
from ailment.expression import StackBaseOffset, BinaryOp
|
|
11
11
|
from unique_log_filter import UniqueLogFilter
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
from
|
|
13
|
+
from angr.procedures import SIM_LIBRARIES, SIM_TYPE_COLLECTIONS
|
|
14
|
+
from angr.sim_type import (
|
|
15
15
|
SimTypeLongLong,
|
|
16
16
|
SimTypeInt,
|
|
17
17
|
SimTypeShort,
|
|
@@ -31,18 +31,20 @@ from ....sim_type import (
|
|
|
31
31
|
SimTypeLength,
|
|
32
32
|
SimTypeReg,
|
|
33
33
|
dereference_simtype,
|
|
34
|
+
SimTypeInt128,
|
|
35
|
+
SimTypeInt256,
|
|
34
36
|
)
|
|
35
|
-
from
|
|
36
|
-
from
|
|
37
|
-
from
|
|
38
|
-
from
|
|
39
|
-
from
|
|
40
|
-
from
|
|
41
|
-
from
|
|
42
|
-
from
|
|
43
|
-
from
|
|
44
|
-
from
|
|
45
|
-
from
|
|
37
|
+
from angr.knowledge_plugins.functions import Function
|
|
38
|
+
from angr.sim_variable import SimVariable, SimTemporaryVariable, SimStackVariable, SimMemoryVariable
|
|
39
|
+
from angr.utils.constants import is_alignment_mask
|
|
40
|
+
from angr.utils.library import get_cpp_function_name
|
|
41
|
+
from angr.utils.loader import is_in_readonly_segment, is_in_readonly_section
|
|
42
|
+
from angr.analyses.decompiler.utils import structured_node_is_simple_return
|
|
43
|
+
from angr.errors import UnsupportedNodeTypeError, AngrRuntimeError
|
|
44
|
+
from angr.knowledge_plugins.cfg.memory_data import MemoryData, MemoryDataSort
|
|
45
|
+
from angr.analyses import Analysis, register_analysis
|
|
46
|
+
from angr.analyses.decompiler.region_identifier import MultiNode
|
|
47
|
+
from angr.analyses.decompiler.structuring.structurer_nodes import (
|
|
46
48
|
SequenceNode,
|
|
47
49
|
CodeNode,
|
|
48
50
|
ConditionNode,
|
|
@@ -3479,8 +3481,13 @@ class CStructuredCodeGenerator(BaseStructuredCodeGenerator, Analysis):
|
|
|
3479
3481
|
|
|
3480
3482
|
def _handle_Expr_Convert(self, expr: Expr.Convert, **kwargs):
|
|
3481
3483
|
# width of converted type is easy
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
+
dst_type: SimTypeInt | SimTypeChar
|
|
3485
|
+
if 258 >= expr.to_bits > 128:
|
|
3486
|
+
dst_type = SimTypeInt256()
|
|
3487
|
+
elif 128 >= expr.to_bits > 64:
|
|
3488
|
+
dst_type = SimTypeInt128()
|
|
3489
|
+
elif 64 >= expr.to_bits > 32:
|
|
3490
|
+
dst_type = SimTypeLongLong()
|
|
3484
3491
|
elif 32 >= expr.to_bits > 16:
|
|
3485
3492
|
dst_type = SimTypeInt()
|
|
3486
3493
|
elif 16 >= expr.to_bits > 8:
|
|
@@ -4,9 +4,9 @@ import re
|
|
|
4
4
|
import logging
|
|
5
5
|
from sortedcontainers import SortedList
|
|
6
6
|
|
|
7
|
-
from
|
|
7
|
+
from angr.analyses import Analysis, register_analysis
|
|
8
8
|
from .base import BaseStructuredCodeGenerator, InstructionMapping, PositionMapping
|
|
9
|
-
from
|
|
9
|
+
from angr.knowledge_plugins.functions.function import Function
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
l = logging.getLogger(__name__)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from typing import Optional, Type
|
|
3
2
|
|
|
4
3
|
from .dream import DreamStructurer
|
|
5
4
|
from .phoenix import PhoenixStructurer
|
|
@@ -18,3 +17,14 @@ DEFAULT_STRUCTURER = SAILRStructurer
|
|
|
18
17
|
|
|
19
18
|
def structurer_class_from_name(name: str) -> type | None:
|
|
20
19
|
return STRUCTURER_CLASSES.get(name.lower(), None)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
__all__ = (
|
|
23
|
+
"DreamStructurer",
|
|
24
|
+
"PhoenixStructurer",
|
|
25
|
+
"SAILRStructurer",
|
|
26
|
+
"RecursiveStructurer",
|
|
27
|
+
"STRUCTURER_CLASSES",
|
|
28
|
+
"DEFAULT_STRUCTURER",
|
|
29
|
+
"structurer_class_from_name",
|
|
30
|
+
)
|
|
@@ -10,13 +10,13 @@ import claripy
|
|
|
10
10
|
import ailment
|
|
11
11
|
|
|
12
12
|
from angr.utils.graph import GraphUtils
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from
|
|
13
|
+
from angr.knowledge_plugins.cfg import IndirectJump, IndirectJumpType
|
|
14
|
+
from angr.analyses.decompiler.graph_region import GraphRegion
|
|
15
|
+
from angr.analyses.decompiler.empty_node_remover import EmptyNodeRemover
|
|
16
|
+
from angr.analyses.decompiler.jumptable_entry_condition_rewriter import JumpTableEntryConditionRewriter
|
|
17
|
+
from angr.analyses.decompiler.condition_processor import ConditionProcessor
|
|
18
|
+
from angr.analyses.decompiler.region_simplifiers.cascading_cond_transformer import CascadingConditionTransformer
|
|
19
|
+
from angr.analyses.decompiler.utils import (
|
|
20
20
|
extract_jump_targets,
|
|
21
21
|
get_ast_subexprs,
|
|
22
22
|
switch_extract_cmp_bounds,
|
|
@@ -767,7 +767,7 @@ class DreamStructurer(StructurerBase):
|
|
|
767
767
|
if (
|
|
768
768
|
arg.op == "__eq__"
|
|
769
769
|
and arg.args[0] is jumptable_var
|
|
770
|
-
and isinstance(arg.args[1], claripy.Bits)
|
|
770
|
+
and isinstance(arg.args[1], claripy.ast.Bits)
|
|
771
771
|
and arg.args[1].concrete
|
|
772
772
|
):
|
|
773
773
|
# found it
|
|
@@ -780,7 +780,7 @@ class DreamStructurer(StructurerBase):
|
|
|
780
780
|
# unsupported
|
|
781
781
|
return None
|
|
782
782
|
elif cond.op == "__eq__":
|
|
783
|
-
if cond.args[0] is jumptable_var and isinstance(cond.args[1], claripy.Bits) and cond.args[1].concrete:
|
|
783
|
+
if cond.args[0] is jumptable_var and isinstance(cond.args[1], claripy.ast.Bits) and cond.args[1].concrete:
|
|
784
784
|
# found it
|
|
785
785
|
eq_condition = cond
|
|
786
786
|
true_node = cond_node.true_node
|
|
@@ -800,7 +800,8 @@ class DreamStructurer(StructurerBase):
|
|
|
800
800
|
return None
|
|
801
801
|
|
|
802
802
|
return CodeNode(
|
|
803
|
-
ConditionNode(cond_node.addr, claripy.true, remaining_cond, true_node, false_node=false_node),
|
|
803
|
+
ConditionNode(cond_node.addr, claripy.true(), remaining_cond, true_node, false_node=false_node),
|
|
804
|
+
eq_condition,
|
|
804
805
|
)
|
|
805
806
|
|
|
806
807
|
def _switch_check_existence_of_jumptable_entries(
|
|
@@ -942,11 +943,11 @@ class DreamStructurer(StructurerBase):
|
|
|
942
943
|
)
|
|
943
944
|
],
|
|
944
945
|
)
|
|
945
|
-
case_node = SequenceNode(0, nodes=[CodeNode(case_inner_node, claripy.true)])
|
|
946
|
+
case_node = SequenceNode(0, nodes=[CodeNode(case_inner_node, claripy.true())])
|
|
946
947
|
converted_nodes[entry_addr] = case_node
|
|
947
948
|
continue
|
|
948
949
|
|
|
949
|
-
case_node = SequenceNode(entry_node.addr, nodes=[CodeNode(entry_node.node, claripy.true)])
|
|
950
|
+
case_node = SequenceNode(entry_node.addr, nodes=[CodeNode(entry_node.node, claripy.true())])
|
|
950
951
|
to_remove.add(entry_node)
|
|
951
952
|
entry_node_idx = seq.nodes.index(entry_node)
|
|
952
953
|
|
|
@@ -966,7 +967,7 @@ class DreamStructurer(StructurerBase):
|
|
|
966
967
|
)
|
|
967
968
|
],
|
|
968
969
|
)
|
|
969
|
-
case_node = SequenceNode(0, nodes=[CodeNode(case_inner_node, claripy.true)])
|
|
970
|
+
case_node = SequenceNode(0, nodes=[CodeNode(case_inner_node, claripy.true())])
|
|
970
971
|
converted_nodes[entry_addr] = case_node
|
|
971
972
|
continue
|
|
972
973
|
|
|
@@ -1097,7 +1098,7 @@ class DreamStructurer(StructurerBase):
|
|
|
1097
1098
|
def _nodes_guarded_by_common_subexpr(seq, common_subexpr, starting_idx):
|
|
1098
1099
|
candidates = []
|
|
1099
1100
|
|
|
1100
|
-
if common_subexpr is claripy.true:
|
|
1101
|
+
if common_subexpr is claripy.true():
|
|
1101
1102
|
return []
|
|
1102
1103
|
for j, node_1 in enumerate(seq.nodes[starting_idx:]):
|
|
1103
1104
|
rcond_1 = getattr(node_1, "reaching_condition", None)
|
|
@@ -1204,4 +1205,4 @@ class DreamStructurer(StructurerBase):
|
|
|
1204
1205
|
|
|
1205
1206
|
|
|
1206
1207
|
# delayed import
|
|
1207
|
-
from
|
|
1208
|
+
from angr.analyses.decompiler.sequence_walker import SequenceWalker # pylint:disable=wrong-import-position
|
|
@@ -14,11 +14,11 @@ from ailment.expression import Const, UnaryOp, MultiStatementExpression
|
|
|
14
14
|
|
|
15
15
|
from angr.utils.graph import GraphUtils
|
|
16
16
|
from angr.utils.ail import is_phi_assignment
|
|
17
|
-
from
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
from
|
|
21
|
-
from
|
|
17
|
+
from angr.knowledge_plugins.cfg import IndirectJumpType
|
|
18
|
+
from angr.utils.constants import SWITCH_MISSING_DEFAULT_NODE_ADDR
|
|
19
|
+
from angr.utils.graph import dominates, to_acyclic_graph, dfs_back_edges
|
|
20
|
+
from angr.analyses.decompiler.sequence_walker import SequenceWalker
|
|
21
|
+
from angr.analyses.decompiler.utils import (
|
|
22
22
|
remove_last_statement,
|
|
23
23
|
extract_jump_targets,
|
|
24
24
|
switch_extract_cmp_bounds,
|
|
@@ -26,7 +26,7 @@ from ..utils import (
|
|
|
26
26
|
has_nonlabel_nonphi_statements,
|
|
27
27
|
first_nonlabel_nonphi_statement,
|
|
28
28
|
)
|
|
29
|
-
from
|
|
29
|
+
from angr.analyses.decompiler.counters.call_counter import AILCallCounter
|
|
30
30
|
from .structurer_nodes import (
|
|
31
31
|
ConditionNode,
|
|
32
32
|
SequenceNode,
|
|
@@ -368,7 +368,7 @@ class PhoenixStructurer(StructurerBase):
|
|
|
368
368
|
jump_node = Block(last_stmt.ins_addr, None, statements=[cond_jump])
|
|
369
369
|
cond_jump_node = ConditionNode(last_stmt.ins_addr, None, edge_cond_right, jump_node)
|
|
370
370
|
new_node = SequenceNode(node.addr, nodes=[node, cond_jump_node, left])
|
|
371
|
-
loop_node = LoopNode("while", claripy.true, new_node, addr=node.addr)
|
|
371
|
+
loop_node = LoopNode("while", claripy.true(), new_node, addr=node.addr)
|
|
372
372
|
|
|
373
373
|
# on the original graph
|
|
374
374
|
self.replace_nodes(graph, node, loop_node, old_node_1=left, self_loop=False)
|
|
@@ -392,7 +392,7 @@ class PhoenixStructurer(StructurerBase):
|
|
|
392
392
|
self._remove_last_statement_if_jump(head_block)
|
|
393
393
|
cond_break = ConditionalBreakNode(node.addr, edge_cond_right, right.addr)
|
|
394
394
|
new_node = SequenceNode(node.addr, nodes=[node, cond_break, left])
|
|
395
|
-
loop_node = LoopNode("while", claripy.true, new_node, addr=node.addr)
|
|
395
|
+
loop_node = LoopNode("while", claripy.true(), new_node, addr=node.addr)
|
|
396
396
|
|
|
397
397
|
# on the original graph
|
|
398
398
|
self.replace_nodes(graph, node, loop_node, old_node_1=left, self_loop=False)
|
|
@@ -572,7 +572,7 @@ class PhoenixStructurer(StructurerBase):
|
|
|
572
572
|
seen_nodes.add(next_node)
|
|
573
573
|
seq_node.nodes.append(next_node)
|
|
574
574
|
|
|
575
|
-
loop_node = LoopNode("while", claripy.true, seq_node, addr=node.addr)
|
|
575
|
+
loop_node = LoopNode("while", claripy.true(), seq_node, addr=node.addr)
|
|
576
576
|
|
|
577
577
|
# on the original graph
|
|
578
578
|
for node_ in seq_node.nodes:
|
|
@@ -5,13 +5,13 @@ import logging
|
|
|
5
5
|
|
|
6
6
|
import networkx
|
|
7
7
|
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
8
|
+
from angr.analyses import Analysis, register_analysis
|
|
9
|
+
from angr.analyses.decompiler.condition_processor import ConditionProcessor
|
|
10
|
+
from angr.analyses.decompiler.graph_region import GraphRegion
|
|
11
|
+
from angr.analyses.decompiler.jumptable_entry_condition_rewriter import JumpTableEntryConditionRewriter
|
|
12
|
+
from angr.analyses.decompiler.empty_node_remover import EmptyNodeRemover
|
|
13
|
+
from angr.analyses.decompiler.jump_target_collector import JumpTargetCollector
|
|
14
|
+
from angr.analyses.decompiler.redundant_label_remover import RedundantLabelRemover
|
|
15
15
|
from .structurer_nodes import BaseNode
|
|
16
16
|
from .structurer_base import StructurerBase
|
|
17
17
|
from .dream import DreamStructurer
|
|
@@ -3,8 +3,8 @@ from typing import Any
|
|
|
3
3
|
|
|
4
4
|
import networkx
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
6
|
+
from angr.analyses.decompiler.utils import structured_node_is_simple_return
|
|
7
|
+
from angr.utils.graph import PostDominators, TemporaryNode
|
|
8
8
|
from .phoenix import PhoenixStructurer
|
|
9
9
|
|
|
10
10
|
|
|
@@ -9,10 +9,15 @@ import networkx
|
|
|
9
9
|
import ailment
|
|
10
10
|
import claripy
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
12
|
+
from angr.analyses import Analysis
|
|
13
|
+
from angr.analyses.decompiler.condition_processor import ConditionProcessor
|
|
14
|
+
from angr.analyses.decompiler.sequence_walker import SequenceWalker
|
|
15
|
+
from angr.analyses.decompiler.utils import (
|
|
16
|
+
extract_jump_targets,
|
|
17
|
+
insert_node,
|
|
18
|
+
remove_last_statement,
|
|
19
|
+
has_nonlabel_nonphi_statements,
|
|
20
|
+
)
|
|
16
21
|
from .structurer_nodes import (
|
|
17
22
|
MultiNode,
|
|
18
23
|
SequenceNode,
|
|
@@ -24,7 +24,7 @@ class MultiNode:
|
|
|
24
24
|
|
|
25
25
|
def __init__(self, nodes, addr=None, idx=None):
|
|
26
26
|
# delayed import
|
|
27
|
-
from
|
|
27
|
+
from angr.analyses.decompiler.graph_region import GraphRegion # pylint:disable=import-outside-toplevel
|
|
28
28
|
|
|
29
29
|
self.nodes = []
|
|
30
30
|
|
|
@@ -247,14 +247,23 @@ class LoopNode(BaseNode):
|
|
|
247
247
|
"_continue_addr",
|
|
248
248
|
)
|
|
249
249
|
|
|
250
|
-
def __init__(
|
|
251
|
-
self
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
250
|
+
def __init__(
|
|
251
|
+
self,
|
|
252
|
+
sort: str,
|
|
253
|
+
condition: ailment.Expr.Expression | None,
|
|
254
|
+
sequence_node: SequenceNode,
|
|
255
|
+
addr: int | None = None,
|
|
256
|
+
continue_addr: int | None = None,
|
|
257
|
+
initializer: ailment.Stmt.Assignment | None = None,
|
|
258
|
+
iterator: ailment.Stmt.Assignment | None = None,
|
|
259
|
+
):
|
|
260
|
+
self.sort: str = sort
|
|
261
|
+
self.condition: ailment.Expr.Expression | None = condition
|
|
262
|
+
self.sequence_node: SequenceNode = sequence_node
|
|
263
|
+
self.initializer: ailment.Stmt.Assignment | None = initializer
|
|
264
|
+
self.iterator: ailment.Stmt.Assignment | None = iterator
|
|
265
|
+
self._addr: int | None = addr
|
|
266
|
+
self._continue_addr: int | None = continue_addr
|
|
258
267
|
|
|
259
268
|
def copy(self):
|
|
260
269
|
return LoopNode(
|
|
@@ -694,6 +694,7 @@ def decompile_functions(
|
|
|
694
694
|
catch_errors: bool = False,
|
|
695
695
|
show_casts: bool = True,
|
|
696
696
|
base_address: int | None = None,
|
|
697
|
+
preset: str | None = None,
|
|
697
698
|
) -> str | None:
|
|
698
699
|
"""
|
|
699
700
|
Decompile a binary into a set of functions.
|
|
@@ -704,6 +705,7 @@ def decompile_functions(
|
|
|
704
705
|
:param catch_errors: The structuring algorithms to use.
|
|
705
706
|
:param show_casts: Whether to show casts in the decompiled output.
|
|
706
707
|
:param base_address: The base address of the binary.
|
|
708
|
+
:param preset: The configuration preset to use during decompilation.
|
|
707
709
|
:return: The decompilation of all functions appended in order.
|
|
708
710
|
"""
|
|
709
711
|
# delayed imports to avoid circular imports
|
|
@@ -757,11 +759,11 @@ def decompile_functions(
|
|
|
757
759
|
|
|
758
760
|
exception_string = ""
|
|
759
761
|
if not catch_errors:
|
|
760
|
-
dec = proj.analyses.Decompiler(f, cfg=cfg, options=dec_options)
|
|
762
|
+
dec = proj.analyses.Decompiler(f, cfg=cfg, options=dec_options, preset=preset)
|
|
761
763
|
else:
|
|
762
764
|
try:
|
|
763
765
|
# TODO: add a timeout
|
|
764
|
-
dec = proj.analyses.Decompiler(f, cfg=cfg, options=dec_options)
|
|
766
|
+
dec = proj.analyses.Decompiler(f, cfg=cfg, options=dec_options, preset=preset)
|
|
765
767
|
except Exception as e:
|
|
766
768
|
exception_string = str(e).replace("\n", " ")
|
|
767
769
|
dec = None
|
angr/analyses/disassembly.py
CHANGED
|
@@ -10,16 +10,16 @@ from angr.knowledge_plugins import Function
|
|
|
10
10
|
|
|
11
11
|
from . import Analysis
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
13
|
+
from angr.errors import AngrTypeError
|
|
14
|
+
from angr.utils.library import get_cpp_function_name
|
|
15
|
+
from angr.utils.formatting import ansi_color_enabled, ansi_color, add_edge_to_buffer
|
|
16
|
+
from angr.block import DisassemblerInsn, CapstoneInsn, SootBlockNode
|
|
17
|
+
from angr.codenode import BlockNode
|
|
18
18
|
from .disassembly_utils import decode_instruction
|
|
19
19
|
import contextlib
|
|
20
20
|
|
|
21
21
|
try:
|
|
22
|
-
from
|
|
22
|
+
from angr.engines import pcode
|
|
23
23
|
import pypcode
|
|
24
24
|
|
|
25
25
|
IRSBType = Union[pyvex.IRSB, pcode.lifter.IRSB]
|
|
@@ -4,11 +4,11 @@ from collections import defaultdict
|
|
|
4
4
|
|
|
5
5
|
import claripy
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
7
|
+
from angr.analyses import AnalysesHub
|
|
8
|
+
from angr.analyses.reaching_definitions.function_handler import FunctionHandler
|
|
9
|
+
from angr.knowledge_plugins.key_definitions.atoms import Register, MemoryLocation
|
|
10
|
+
from angr.storage.memory_mixins.paged_memory.pages.multi_values import MultiValues
|
|
11
|
+
from angr.knowledge_plugins.key_definitions.constants import OP_BEFORE, OP_AFTER
|
|
12
12
|
from . import Analysis, VtableFinder, CFGFast, ReachingDefinitionsAnalysis
|
|
13
13
|
|
|
14
14
|
if TYPE_CHECKING:
|
angr/analyses/flirt.py
CHANGED
|
@@ -7,9 +7,9 @@ import logging
|
|
|
7
7
|
import nampa
|
|
8
8
|
from archinfo.arch_arm import is_arm_arch
|
|
9
9
|
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from
|
|
10
|
+
from angr.analyses import AnalysesHub
|
|
11
|
+
from angr.errors import AngrRuntimeError
|
|
12
|
+
from angr.flirt import FlirtSignature, STRING_TO_LIBRARIES, LIBRARY_TO_SIGNATURES, FLIRT_SIGNATURES_BY_ARCH
|
|
13
13
|
from .analysis import Analysis
|
|
14
14
|
import contextlib
|
|
15
15
|
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .forward_analysis import ForwardAnalysis
|
|
3
4
|
from .visitors import CallGraphVisitor, FunctionGraphVisitor, LoopVisitor, SingleNodeGraphVisitor
|
|
5
|
+
|
|
6
|
+
__all__ = (
|
|
7
|
+
"ForwardAnalysis",
|
|
8
|
+
"CallGraphVisitor",
|
|
9
|
+
"FunctionGraphVisitor",
|
|
10
|
+
"LoopVisitor",
|
|
11
|
+
"SingleNodeGraphVisitor",
|
|
12
|
+
)
|
|
@@ -6,10 +6,10 @@ from collections.abc import Callable
|
|
|
6
6
|
import networkx
|
|
7
7
|
|
|
8
8
|
from .visitors.graph import NodeType
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
12
|
-
from
|
|
9
|
+
from angr.sim_state import SimState
|
|
10
|
+
from angr.errors import AngrForwardAnalysisError
|
|
11
|
+
from angr.errors import AngrSkipJobNotice, AngrDelayJobNotice, AngrJobMergingFailureNotice, AngrJobWideningFailureNotice
|
|
12
|
+
from angr.utils.algo import binary_insert
|
|
13
13
|
from .job_info import JobInfo, JobType, JobKey
|
|
14
14
|
|
|
15
15
|
if TYPE_CHECKING:
|
|
@@ -20,7 +20,7 @@ class JobInfo(Generic[JobType, JobKey]):
|
|
|
20
20
|
return hash((self.key, *tuple(self.jobs)))
|
|
21
21
|
|
|
22
22
|
def __eq__(self, o):
|
|
23
|
-
return type(self)
|
|
23
|
+
return type(self) is type(o) and self.key == o.key and self.job == o.job
|
|
24
24
|
|
|
25
25
|
def __repr__(self):
|
|
26
26
|
return f"<JobInfo {self.key!s}>"
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .call_graph import CallGraphVisitor
|
|
3
4
|
from .function_graph import FunctionGraphVisitor
|
|
4
5
|
from .loop import LoopVisitor
|
|
5
6
|
from .single_node_graph import SingleNodeGraphVisitor
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = (
|
|
10
|
+
"CallGraphVisitor",
|
|
11
|
+
"FunctionGraphVisitor",
|
|
12
|
+
"LoopVisitor",
|
|
13
|
+
"SingleNodeGraphVisitor",
|
|
14
|
+
)
|
|
@@ -3,8 +3,8 @@ from typing import TypeVar, Generic
|
|
|
3
3
|
from collections.abc import Collection, Iterator
|
|
4
4
|
from collections import defaultdict
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from
|
|
6
|
+
from angr.misc.ux import deprecated
|
|
7
|
+
from angr.utils.algo import binary_insert
|
|
8
8
|
|
|
9
9
|
NodeType = TypeVar("NodeType")
|
|
10
10
|
|