angr 9.2.119__py3-none-win_amd64.whl → 9.2.121__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 +3 -2
- angr/analyses/cfg/cfg_fast_soot.py +5 -5
- angr/analyses/cfg/cfg_job_base.py +3 -3
- angr/analyses/cfg/indirect_jump_resolvers/__init__.py +15 -0
- angr/analyses/cfg/indirect_jump_resolvers/amd64_pe_iat.py +1 -1
- angr/analyses/cfg/indirect_jump_resolvers/arm_elf_fast.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/const_resolver.py +4 -4
- angr/analyses/cfg/indirect_jump_resolvers/default_resolvers.py +2 -0
- angr/analyses/cfg/indirect_jump_resolvers/jumptable.py +27 -20
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_fast.py +140 -369
- angr/analyses/cfg/indirect_jump_resolvers/mips_elf_got.py +148 -0
- angr/analyses/cfg/indirect_jump_resolvers/resolver.py +2 -2
- angr/analyses/cfg/indirect_jump_resolvers/x86_pe_iat.py +1 -1
- angr/analyses/cfg_slice_to_sink/__init__.py +8 -0
- angr/analyses/class_identifier.py +2 -2
- angr/analyses/code_tagging.py +2 -2
- angr/analyses/complete_calling_conventions.py +3 -3
- angr/analyses/congruency_check.py +1 -2
- angr/analyses/data_dep/__init__.py +13 -0
- angr/analyses/data_dep/data_dependency_analysis.py +5 -5
- angr/analyses/datagraph_meta.py +1 -1
- angr/analyses/ddg.py +3 -3
- angr/analyses/decompiler/__init__.py +25 -0
- angr/analyses/decompiler/ail_simplifier.py +8 -8
- angr/analyses/decompiler/block_simplifier.py +3 -3
- angr/analyses/decompiler/callsite_maker.py +5 -3
- angr/analyses/decompiler/ccall_rewriters/amd64_ccalls.py +20 -0
- angr/analyses/decompiler/clinic.py +25 -26
- angr/analyses/decompiler/condition_processor.py +7 -5
- angr/analyses/decompiler/counters/__init__.py +11 -0
- angr/analyses/decompiler/decompiler.py +24 -10
- angr/analyses/decompiler/dephication/seqnode_dephication.py +19 -1
- angr/analyses/decompiler/optimization_passes/__init__.py +66 -54
- angr/analyses/decompiler/optimization_passes/const_derefs.py +1 -1
- angr/analyses/decompiler/optimization_passes/const_prop_reverter.py +3 -3
- angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py +1 -1
- angr/analyses/decompiler/optimization_passes/duplication_reverter/__init__.py +3 -0
- angr/analyses/decompiler/optimization_passes/duplication_reverter/duplication_reverter.py +7 -7
- angr/analyses/decompiler/optimization_passes/duplication_reverter/similarity.py +1 -1
- angr/analyses/decompiler/optimization_passes/duplication_reverter/utils.py +1 -1
- angr/analyses/decompiler/optimization_passes/engine_base.py +2 -2
- angr/analyses/decompiler/optimization_passes/expr_op_swapper.py +2 -2
- angr/analyses/decompiler/optimization_passes/flip_boolean_cmp.py +4 -4
- angr/analyses/decompiler/optimization_passes/ite_expr_converter.py +6 -6
- angr/analyses/decompiler/optimization_passes/ite_region_converter.py +2 -2
- angr/analyses/decompiler/optimization_passes/lowered_switch_simplifier.py +7 -3
- angr/analyses/decompiler/optimization_passes/optimization_pass.py +34 -28
- angr/analyses/decompiler/optimization_passes/register_save_area_simplifier.py +2 -2
- angr/analyses/decompiler/optimization_passes/ret_addr_save_simplifier.py +1 -1
- angr/analyses/decompiler/optimization_passes/ret_deduplicator.py +3 -3
- angr/analyses/decompiler/optimization_passes/return_duplicator_base.py +5 -5
- angr/analyses/decompiler/optimization_passes/return_duplicator_high.py +1 -1
- angr/analyses/decompiler/peephole_optimizations/__init__.py +61 -19
- angr/analyses/decompiler/peephole_optimizations/simplify_pc_relative_loads.py +1 -1
- angr/analyses/decompiler/presets/__init__.py +20 -0
- angr/analyses/decompiler/presets/basic.py +30 -0
- angr/analyses/decompiler/presets/fast.py +54 -0
- angr/analyses/decompiler/presets/full.py +64 -0
- angr/analyses/decompiler/presets/preset.py +37 -0
- angr/analyses/decompiler/region_identifier.py +21 -7
- angr/analyses/decompiler/region_simplifiers/__init__.py +3 -0
- angr/analyses/decompiler/region_simplifiers/cascading_cond_transformer.py +3 -3
- angr/analyses/decompiler/region_simplifiers/cascading_ifs.py +3 -3
- angr/analyses/decompiler/region_simplifiers/expr_folding.py +2 -2
- angr/analyses/decompiler/region_simplifiers/goto.py +3 -3
- angr/analyses/decompiler/region_simplifiers/if_.py +2 -2
- angr/analyses/decompiler/region_simplifiers/ifelse.py +4 -4
- angr/analyses/decompiler/region_simplifiers/loop.py +4 -4
- angr/analyses/decompiler/region_simplifiers/node_address_finder.py +1 -1
- angr/analyses/decompiler/region_simplifiers/region_simplifier.py +6 -6
- angr/analyses/decompiler/region_simplifiers/switch_cluster_simplifier.py +12 -5
- angr/analyses/decompiler/region_simplifiers/switch_expr_simplifier.py +3 -3
- angr/analyses/decompiler/sequence_walker.py +11 -12
- angr/analyses/decompiler/structured_codegen/__init__.py +14 -0
- angr/analyses/decompiler/structured_codegen/base.py +1 -1
- angr/analyses/decompiler/structured_codegen/c.py +13 -13
- angr/analyses/decompiler/structured_codegen/dwarf_import.py +2 -2
- angr/analyses/decompiler/structuring/__init__.py +11 -1
- angr/analyses/decompiler/structuring/dream.py +8 -8
- angr/analyses/decompiler/structuring/phoenix.py +6 -6
- angr/analyses/decompiler/structuring/recursive_structurer.py +7 -7
- angr/analyses/decompiler/structuring/sailr.py +2 -2
- angr/analyses/decompiler/structuring/structurer_base.py +9 -4
- angr/analyses/decompiler/structuring/structurer_nodes.py +18 -9
- angr/analyses/decompiler/utils.py +4 -2
- angr/analyses/disassembly.py +6 -6
- angr/analyses/disassembly_utils.py +1 -1
- angr/analyses/dominance_frontier.py +1 -1
- angr/analyses/find_objects_static.py +5 -5
- angr/analyses/flirt.py +3 -3
- angr/analyses/forward_analysis/__init__.py +9 -0
- angr/analyses/forward_analysis/forward_analysis.py +4 -4
- angr/analyses/forward_analysis/job_info.py +1 -1
- angr/analyses/forward_analysis/visitors/__init__.py +9 -0
- angr/analyses/forward_analysis/visitors/graph.py +2 -2
- angr/analyses/identifier/__init__.py +3 -0
- angr/analyses/identifier/custom_callable.py +2 -3
- angr/analyses/identifier/errors.py +1 -1
- angr/analyses/identifier/functions/__init__.py +4 -4
- angr/analyses/identifier/functions/atoi.py +1 -1
- angr/analyses/identifier/functions/based_atoi.py +1 -1
- angr/analyses/identifier/functions/fdprintf.py +1 -1
- angr/analyses/identifier/functions/free.py +2 -2
- angr/analyses/identifier/functions/int2str.py +1 -1
- angr/analyses/identifier/functions/malloc.py +2 -2
- angr/analyses/identifier/functions/memcmp.py +1 -1
- angr/analyses/identifier/functions/memcpy.py +3 -3
- angr/analyses/identifier/functions/memset.py +1 -1
- angr/analyses/identifier/functions/printf.py +1 -1
- angr/analyses/identifier/functions/recv_until.py +2 -2
- angr/analyses/identifier/functions/skip_calloc.py +2 -2
- angr/analyses/identifier/functions/skip_realloc.py +2 -2
- angr/analyses/identifier/functions/skip_recv_n.py +1 -1
- angr/analyses/identifier/functions/snprintf.py +1 -1
- angr/analyses/identifier/functions/sprintf.py +1 -1
- angr/analyses/identifier/functions/strcmp.py +1 -1
- angr/analyses/identifier/functions/strcpy.py +1 -1
- angr/analyses/identifier/functions/strlen.py +1 -1
- angr/analyses/identifier/functions/strncmp.py +1 -1
- angr/analyses/identifier/functions/strncpy.py +1 -1
- angr/analyses/identifier/functions/strtol.py +1 -1
- angr/analyses/identifier/identify.py +3 -3
- angr/analyses/identifier/runner.py +6 -6
- angr/analyses/init_finder.py +1 -1
- angr/analyses/loop_analysis.py +2 -2
- angr/analyses/propagator/__init__.py +3 -0
- angr/analyses/propagator/engine_ail.py +4 -4
- angr/analyses/propagator/engine_base.py +2 -2
- angr/analyses/propagator/engine_vex.py +2 -2
- angr/analyses/propagator/outdated_definition_walker.py +3 -3
- angr/analyses/propagator/propagator.py +3 -3
- angr/analyses/propagator/top_checker_mixin.py +1 -1
- angr/analyses/proximity_graph.py +3 -3
- angr/analyses/reaching_definitions/__init__.py +6 -6
- angr/analyses/reaching_definitions/dep_graph.py +5 -5
- angr/analyses/reaching_definitions/engine_ail.py +8 -8
- angr/analyses/reaching_definitions/engine_vex.py +18 -13
- angr/analyses/reaching_definitions/heap_allocator.py +3 -3
- angr/analyses/reaching_definitions/rd_state.py +4 -10
- angr/analyses/reaching_definitions/reaching_definitions.py +11 -11
- angr/analyses/reaching_definitions/subject.py +3 -3
- angr/analyses/reassembler.py +5 -5
- angr/analyses/{s_propagator/s_propagator.py → s_propagator.py} +1 -1
- angr/analyses/s_reaching_definitions/__init__.py +11 -1
- angr/analyses/s_reaching_definitions/s_rda_model.py +117 -0
- angr/analyses/s_reaching_definitions/s_rda_view.py +213 -0
- angr/analyses/s_reaching_definitions/s_reaching_definitions.py +159 -0
- angr/analyses/stack_pointer_tracker.py +5 -5
- angr/analyses/static_hooker.py +2 -2
- angr/analyses/typehoon/__init__.py +3 -0
- angr/analyses/typehoon/lifter.py +1 -1
- angr/analyses/typehoon/translator.py +2 -2
- angr/analyses/typehoon/typehoon.py +3 -3
- angr/analyses/typehoon/typevars.py +37 -16
- angr/analyses/variable_recovery/__init__.py +6 -0
- angr/analyses/variable_recovery/engine_ail.py +5 -5
- angr/analyses/variable_recovery/engine_base.py +7 -7
- angr/analyses/variable_recovery/engine_vex.py +7 -7
- angr/analyses/variable_recovery/variable_recovery.py +5 -5
- angr/analyses/variable_recovery/variable_recovery_base.py +7 -7
- angr/analyses/variable_recovery/variable_recovery_fast.py +7 -7
- angr/analyses/veritesting.py +8 -8
- angr/analyses/vfg.py +13 -13
- angr/analyses/vsa_ddg.py +3 -3
- angr/analyses/vtable.py +1 -1
- angr/analyses/xrefs.py +3 -3
- angr/angrdb/__init__.py +3 -0
- angr/angrdb/db.py +3 -3
- angr/angrdb/serializers/__init__.py +7 -0
- angr/angrdb/serializers/cfg_model.py +2 -2
- angr/angrdb/serializers/comments.py +2 -2
- angr/angrdb/serializers/funcs.py +2 -2
- angr/angrdb/serializers/kb.py +2 -2
- angr/angrdb/serializers/labels.py +2 -2
- angr/angrdb/serializers/loader.py +2 -2
- angr/angrdb/serializers/structured_code.py +4 -4
- angr/angrdb/serializers/variables.py +3 -3
- angr/angrdb/serializers/xrefs.py +2 -2
- angr/block.py +9 -1
- angr/calling_conventions.py +1 -1
- angr/concretization_strategies/__init__.py +17 -0
- angr/concretization_strategies/max.py +1 -1
- angr/concretization_strategies/norepeats_range.py +1 -1
- angr/distributed/__init__.py +6 -1
- angr/distributed/server.py +0 -1
- angr/distributed/worker.py +6 -4
- angr/engines/__init__.py +25 -0
- angr/engines/concrete.py +1 -2
- angr/engines/engine.py +8 -15
- angr/engines/failure.py +2 -2
- angr/engines/light/__init__.py +12 -0
- angr/engines/light/data.py +1 -1
- angr/engines/light/engine.py +6 -6
- angr/engines/pcode/__init__.py +7 -1
- angr/engines/pcode/behavior.py +1 -1
- angr/engines/pcode/cc.py +1 -1
- angr/engines/pcode/emulate.py +4 -4
- angr/engines/pcode/engine.py +3 -3
- angr/engines/pcode/lifter.py +15 -7
- angr/engines/procedure.py +3 -3
- angr/engines/soot/__init__.py +3 -0
- angr/engines/soot/engine.py +8 -8
- angr/engines/soot/expressions/__init__.py +33 -0
- angr/engines/soot/expressions/arrayref.py +1 -1
- angr/engines/soot/expressions/base.py +1 -1
- angr/engines/soot/expressions/cast.py +1 -1
- angr/engines/soot/expressions/condition.py +1 -1
- angr/engines/soot/expressions/constants.py +1 -1
- angr/engines/soot/expressions/invoke.py +2 -2
- angr/engines/soot/expressions/new.py +1 -1
- angr/engines/soot/expressions/newArray.py +1 -1
- angr/engines/soot/expressions/newMultiArray.py +1 -1
- angr/engines/soot/statements/__init__.py +16 -0
- angr/engines/soot/statements/assign.py +1 -1
- angr/engines/soot/statements/base.py +3 -3
- angr/engines/soot/values/__init__.py +14 -0
- angr/engines/soot/values/arrayref.py +1 -1
- angr/engines/soot/values/instancefieldref.py +1 -1
- angr/engines/soot/values/staticfieldref.py +1 -1
- angr/engines/soot/values/thisref.py +2 -2
- angr/engines/successors.py +8 -8
- angr/engines/syscall.py +1 -1
- angr/engines/unicorn.py +11 -11
- angr/engines/vex/__init__.py +18 -3
- angr/engines/vex/claripy/__init__.py +3 -0
- angr/engines/vex/claripy/ccall.py +2 -3
- angr/engines/vex/claripy/datalayer.py +9 -12
- angr/engines/vex/heavy/__init__.py +11 -1
- angr/engines/vex/heavy/actions.py +19 -24
- angr/engines/vex/heavy/heavy.py +13 -7
- angr/engines/vex/heavy/inspect.py +2 -2
- angr/engines/vex/heavy/resilience.py +2 -2
- angr/engines/vex/heavy/super_fastpath.py +3 -3
- angr/engines/vex/lifter.py +8 -6
- angr/engines/vex/light/__init__.py +7 -0
- angr/engines/vex/light/light.py +4 -4
- angr/engines/vex/light/slicing.py +1 -1
- angr/errors.py +0 -4
- angr/exploration_techniques/__init__.py +0 -1
- angr/exploration_techniques/bucketizer.py +9 -10
- angr/exploration_techniques/common.py +2 -2
- angr/exploration_techniques/director.py +4 -4
- angr/exploration_techniques/explorer.py +3 -3
- angr/exploration_techniques/loop_seer.py +3 -3
- angr/exploration_techniques/oppologist.py +3 -3
- angr/exploration_techniques/slicecutor.py +1 -1
- angr/exploration_techniques/spiller.py +1 -1
- angr/exploration_techniques/suggestions.py +4 -4
- angr/exploration_techniques/symbion.py +0 -1
- angr/exploration_techniques/threading.py +2 -2
- angr/exploration_techniques/tracer.py +3 -3
- angr/exploration_techniques/veritesting.py +1 -1
- angr/factory.py +5 -0
- angr/flirt/__init__.py +0 -1
- angr/{knowledge_base/knowledge_base.py → knowledge_base.py} +13 -15
- angr/knowledge_plugins/__init__.py +23 -1
- angr/knowledge_plugins/callsite_prototypes.py +2 -2
- angr/knowledge_plugins/cfg/cfg_manager.py +1 -1
- angr/knowledge_plugins/cfg/cfg_model.py +6 -6
- angr/knowledge_plugins/cfg/indirect_jump.py +1 -1
- angr/knowledge_plugins/cfg/memory_data.py +3 -2
- angr/knowledge_plugins/debug_variables.py +2 -2
- angr/knowledge_plugins/functions/__init__.py +6 -0
- angr/knowledge_plugins/functions/function.py +21 -16
- angr/knowledge_plugins/functions/function_manager.py +2 -2
- angr/knowledge_plugins/functions/function_parser.py +3 -3
- angr/knowledge_plugins/functions/soot_function.py +2 -2
- angr/knowledge_plugins/key_definitions/atoms.py +2 -2
- angr/knowledge_plugins/key_definitions/definition.py +3 -3
- angr/knowledge_plugins/key_definitions/key_definition_manager.py +2 -2
- angr/knowledge_plugins/key_definitions/uses.py +2 -2
- angr/knowledge_plugins/propagations/__init__.py +7 -0
- angr/knowledge_plugins/propagations/prop_value.py +1 -1
- angr/knowledge_plugins/{structured_code/manager.py → structured_code.py} +6 -3
- angr/knowledge_plugins/types.py +1 -1
- angr/knowledge_plugins/variables/__init__.py +6 -0
- angr/knowledge_plugins/variables/variable_access.py +3 -3
- angr/knowledge_plugins/variables/variable_manager.py +7 -7
- angr/knowledge_plugins/xrefs/__init__.py +9 -1
- angr/knowledge_plugins/xrefs/xref.py +5 -5
- angr/knowledge_plugins/xrefs/xref_manager.py +3 -3
- angr/lib/angr_native.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/protos/cfg_pb2.py +23 -15
- angr/protos/function_pb2.py +19 -21
- angr/protos/primitives_pb2.py +46 -112
- angr/protos/variables_pb2.py +38 -114
- angr/protos/xrefs_pb2.py +17 -18
- angr/sim_options.py +0 -4
- angr/sim_state.py +2 -78
- angr/sim_type.py +9 -18
- angr/simos/__init__.py +12 -0
- angr/simos/cgc.py +5 -5
- angr/simos/javavm.py +12 -12
- angr/simos/linux.py +5 -5
- angr/simos/simos.py +11 -15
- angr/simos/userland.py +3 -3
- angr/simos/windows.py +5 -10
- angr/state_plugins/__init__.py +84 -28
- angr/state_plugins/callstack.py +1 -1
- angr/state_plugins/concrete.py +3 -4
- angr/state_plugins/filesystem.py +3 -3
- angr/state_plugins/gdb.py +1 -1
- angr/state_plugins/heap/__init__.py +14 -5
- angr/state_plugins/heap/heap_base.py +5 -4
- angr/state_plugins/heap/heap_brk.py +1 -1
- angr/state_plugins/heap/heap_freelist.py +1 -1
- angr/state_plugins/heap/heap_ptmalloc.py +2 -20
- angr/state_plugins/heap/utils.py +1 -1
- angr/state_plugins/history.py +2 -2
- angr/state_plugins/javavm_classloader.py +3 -3
- angr/state_plugins/jni_references.py +1 -1
- angr/state_plugins/light_registers.py +3 -3
- angr/state_plugins/log.py +1 -1
- angr/state_plugins/plugin.py +3 -2
- angr/state_plugins/posix.py +3 -3
- angr/state_plugins/preconstrainer.py +4 -4
- angr/state_plugins/scratch.py +3 -3
- angr/state_plugins/sim_action_object.py +1 -1
- angr/state_plugins/solver.py +85 -32
- angr/state_plugins/symbolizer.py +2 -3
- angr/state_plugins/uc_manager.py +1 -1
- angr/state_plugins/unicorn_engine.py +4 -4
- angr/state_plugins/view.py +1 -1
- angr/storage/__init__.py +9 -4
- angr/storage/file.py +4 -4
- angr/storage/memory_mixins/__init__.py +89 -162
- angr/storage/memory_mixins/actions_mixin.py +3 -3
- angr/storage/memory_mixins/address_concretization_mixin.py +7 -7
- angr/storage/memory_mixins/bvv_conversion_mixin.py +2 -2
- angr/storage/memory_mixins/clouseau_mixin.py +3 -2
- angr/storage/memory_mixins/conditional_store_mixin.py +1 -1
- angr/storage/memory_mixins/convenient_mappings_mixin.py +3 -3
- angr/storage/memory_mixins/default_filler_mixin.py +4 -4
- angr/storage/memory_mixins/dirty_addrs_mixin.py +2 -1
- angr/storage/memory_mixins/hex_dumper_mixin.py +2 -2
- angr/storage/memory_mixins/{javavm_memory/javavm_memory_mixin.py → javavm_memory_mixin.py} +15 -12
- angr/storage/memory_mixins/{keyvalue_memory/keyvalue_memory_mixin.py → keyvalue_memory_mixin.py} +11 -6
- angr/storage/memory_mixins/label_merger_mixin.py +1 -1
- angr/storage/memory_mixins/memory_mixin.py +163 -0
- angr/storage/memory_mixins/multi_value_merger_mixin.py +1 -1
- angr/storage/memory_mixins/name_resolution_mixin.py +5 -3
- angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py +2 -2
- angr/storage/memory_mixins/paged_memory/paged_memory_multivalue_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/__init__.py +16 -1
- angr/storage/memory_mixins/paged_memory/pages/history_tracking_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/ispo_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/mv_list_page.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/permissions_mixin.py +1 -1
- angr/storage/memory_mixins/paged_memory/pages/refcount_mixin.py +2 -1
- angr/storage/memory_mixins/paged_memory/pages/ultra_page.py +2 -2
- angr/storage/memory_mixins/paged_memory/stack_allocation_mixin.py +2 -2
- angr/storage/memory_mixins/regioned_memory/__init__.py +10 -0
- angr/storage/memory_mixins/regioned_memory/abstract_merger_mixin.py +1 -2
- angr/storage/memory_mixins/regioned_memory/region_category_mixin.py +2 -1
- angr/storage/memory_mixins/regioned_memory/region_data.py +2 -2
- angr/storage/memory_mixins/regioned_memory/region_meta_mixin.py +1 -1
- angr/storage/memory_mixins/regioned_memory/regioned_address_concretization_mixin.py +4 -4
- angr/storage/memory_mixins/regioned_memory/regioned_memory_mixin.py +8 -20
- angr/storage/memory_mixins/regioned_memory/static_find_mixin.py +1 -1
- angr/storage/memory_mixins/simple_interface_mixin.py +3 -2
- angr/storage/memory_mixins/simplification_mixin.py +3 -2
- angr/storage/memory_mixins/size_resolution_mixin.py +2 -2
- angr/storage/memory_mixins/slotted_memory.py +3 -3
- angr/storage/memory_mixins/smart_find_mixin.py +2 -2
- angr/storage/memory_mixins/symbolic_merger_mixin.py +2 -1
- angr/storage/memory_mixins/top_merger_mixin.py +3 -2
- angr/storage/memory_mixins/underconstrained_mixin.py +5 -3
- angr/storage/memory_mixins/unwrapper_mixin.py +3 -2
- angr/storage/memory_object.py +1 -1
- angr/utils/__init__.py +12 -0
- angr/utils/enums_conv.py +1 -1
- angr/utils/library.py +2 -2
- angr/utils/mp.py +1 -1
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/METADATA +7 -8
- angr-9.2.121.dist-info/RECORD +1342 -0
- angr/analyses/s_liveness/__init__.py +0 -2
- angr/analyses/s_propagator/__init__.py +0 -2
- angr/analyses/s_reaching_definitions/s_rda.py +0 -479
- angr/knowledge_base/__init__.py +0 -2
- angr/knowledge_plugins/structured_code/__init__.py +0 -2
- angr/knowledge_plugins/sync/__init__.py +0 -2
- angr/knowledge_plugins/sync/sync_controller.py +0 -324
- angr/misc/range.py +0 -24
- angr/misc/weakpatch.py +0 -59
- angr/storage/memory_mixins/javavm_memory/__init__.py +0 -2
- angr/storage/memory_mixins/keyvalue_memory/__init__.py +0 -2
- angr/storage/pcap.py +0 -65
- angr/utils/typing.py +0 -18
- angr-9.2.119.dist-info/RECORD +0 -1345
- /angr/analyses/{s_liveness/s_liveness.py → s_liveness.py} +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/LICENSE +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/WHEEL +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/entry_points.txt +0 -0
- {angr-9.2.119.dist-info → angr-9.2.121.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# pylint:disable=too-many-positional-arguments
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
import logging
|
|
4
|
+
|
|
5
|
+
from capstone.mips_const import (
|
|
6
|
+
MIPS_REG_T7,
|
|
7
|
+
MIPS_REG_T8,
|
|
8
|
+
MIPS_REG_T9,
|
|
9
|
+
MIPS_REG_RA,
|
|
10
|
+
MIPS_REG_ZERO,
|
|
11
|
+
MIPS_OP_REG,
|
|
12
|
+
MIPS_OP_IMM,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
import cle
|
|
16
|
+
|
|
17
|
+
from .resolver import IndirectJumpResolver
|
|
18
|
+
|
|
19
|
+
l = logging.getLogger(name=__name__)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class MipsElfGotResolver(IndirectJumpResolver):
|
|
23
|
+
"""
|
|
24
|
+
A timeless indirect jump resolver that resolves GOT stub entries in MIPS ELF binaries.
|
|
25
|
+
|
|
26
|
+
Reference: MIPS Assembly Language Programmer's Guide, Calling Position Independent Functions
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def __init__(self, project):
|
|
30
|
+
super().__init__(project, timeless=True)
|
|
31
|
+
|
|
32
|
+
self._section_cache: dict[tuple[int, str], int] = {}
|
|
33
|
+
self._simproc_cache: dict[str, int] | None = None
|
|
34
|
+
|
|
35
|
+
def filter(self, cfg, addr, func_addr, block, jumpkind):
|
|
36
|
+
return jumpkind == "Ijk_Call" and addr == func_addr
|
|
37
|
+
|
|
38
|
+
def resolve( # pylint:disable=unused-argument
|
|
39
|
+
self, cfg, addr, func_addr, block, jumpkind, func_graph_complete: bool = True, **kwargs
|
|
40
|
+
):
|
|
41
|
+
# The stub must look like the following:
|
|
42
|
+
# 585b80 lw $t9, -0x7ff0($gp)
|
|
43
|
+
# 585b84 move $t7, $ra
|
|
44
|
+
# 585b88 jalr $t9
|
|
45
|
+
# 585b8c addiu $t8, $zero, 0x84b
|
|
46
|
+
|
|
47
|
+
obj = self.project.loader.find_object_containing(addr)
|
|
48
|
+
if obj is None:
|
|
49
|
+
return False, []
|
|
50
|
+
if not isinstance(obj, cle.ELF):
|
|
51
|
+
return False, []
|
|
52
|
+
dynsym_addr = self._find_and_cache_section_addr(obj, ".dynsym")
|
|
53
|
+
if dynsym_addr is None:
|
|
54
|
+
return None
|
|
55
|
+
|
|
56
|
+
dynstr_addr = self._find_and_cache_section_addr(obj, ".dynstr")
|
|
57
|
+
if dynstr_addr is None:
|
|
58
|
+
return None
|
|
59
|
+
|
|
60
|
+
if block.size != 16:
|
|
61
|
+
return False, []
|
|
62
|
+
the_block = self.project.factory.block(block.addr, size=block.size)
|
|
63
|
+
if len(the_block.capstone.insns) != 4:
|
|
64
|
+
return False, []
|
|
65
|
+
|
|
66
|
+
insn0 = the_block.capstone.insns[0]
|
|
67
|
+
if not (
|
|
68
|
+
insn0.insn.mnemonic == "lw"
|
|
69
|
+
and insn0.insn.operands[0].type == MIPS_OP_REG
|
|
70
|
+
and insn0.insn.operands[0].reg == MIPS_REG_T9
|
|
71
|
+
):
|
|
72
|
+
return False, []
|
|
73
|
+
|
|
74
|
+
insn1 = the_block.capstone.insns[1]
|
|
75
|
+
if not (
|
|
76
|
+
insn1.insn.mnemonic == "move"
|
|
77
|
+
and insn1.insn.operands[0].type == MIPS_OP_REG
|
|
78
|
+
and insn1.insn.operands[0].reg == MIPS_REG_T7
|
|
79
|
+
and insn1.insn.operands[1].type == MIPS_OP_REG
|
|
80
|
+
and insn1.insn.operands[1].reg == MIPS_REG_RA
|
|
81
|
+
):
|
|
82
|
+
return False, []
|
|
83
|
+
|
|
84
|
+
insn2 = the_block.capstone.insns[2]
|
|
85
|
+
if not (
|
|
86
|
+
insn2.insn.mnemonic == "jalr"
|
|
87
|
+
and insn2.insn.operands[0].type == MIPS_OP_REG
|
|
88
|
+
and insn2.insn.operands[0].reg == MIPS_REG_T9
|
|
89
|
+
):
|
|
90
|
+
return False, []
|
|
91
|
+
|
|
92
|
+
insn3 = the_block.capstone.insns[3]
|
|
93
|
+
if not (
|
|
94
|
+
insn3.insn.mnemonic == "addiu"
|
|
95
|
+
and insn3.insn.operands[0].type == MIPS_OP_REG
|
|
96
|
+
and insn3.insn.operands[0].reg == MIPS_REG_T8
|
|
97
|
+
and insn3.insn.operands[1].type == MIPS_OP_REG
|
|
98
|
+
and insn3.insn.operands[1].reg == MIPS_REG_ZERO
|
|
99
|
+
and insn3.insn.operands[2].type == MIPS_OP_IMM
|
|
100
|
+
):
|
|
101
|
+
return False, []
|
|
102
|
+
|
|
103
|
+
dynsym_index = insn3.insn.operands[2].imm
|
|
104
|
+
symbol_addr = dynsym_addr + dynsym_index * 16
|
|
105
|
+
|
|
106
|
+
symbol_name_index = self.project.loader.memory.unpack_word(symbol_addr, size=4)
|
|
107
|
+
symbol_name_addr = dynstr_addr + symbol_name_index
|
|
108
|
+
symbol_name_bytes = self.project.loader.memory.load_null_terminated_bytes(symbol_name_addr, 512)
|
|
109
|
+
|
|
110
|
+
try:
|
|
111
|
+
symbol_name = symbol_name_bytes.strip(b"\x00").decode("ascii")
|
|
112
|
+
except UnicodeDecodeError:
|
|
113
|
+
return False, []
|
|
114
|
+
|
|
115
|
+
symbol = obj.symbols_by_name.get(symbol_name, None)
|
|
116
|
+
if symbol is None:
|
|
117
|
+
return False, []
|
|
118
|
+
|
|
119
|
+
if symbol.rebased_addr != func_addr:
|
|
120
|
+
l.debug("Resolved target to %s @ %#x", symbol_name, symbol.rebased_addr)
|
|
121
|
+
return True, [symbol.rebased_addr]
|
|
122
|
+
|
|
123
|
+
# find out if there is a SimProcedure for this import symbol
|
|
124
|
+
simproc_addr = self._cache_and_find_simproc_by_name(symbol_name)
|
|
125
|
+
if simproc_addr is not None:
|
|
126
|
+
l.debug("Resolved target to %s @ %#x", symbol_name, simproc_addr)
|
|
127
|
+
return True, [simproc_addr]
|
|
128
|
+
return False, []
|
|
129
|
+
|
|
130
|
+
def _find_and_cache_section_addr(self, obj, section_name: str) -> int | None:
|
|
131
|
+
cache_key = (obj.min_addr, section_name)
|
|
132
|
+
if cache_key in self._section_cache:
|
|
133
|
+
return self._section_cache[cache_key]
|
|
134
|
+
|
|
135
|
+
for sec in obj.sections:
|
|
136
|
+
if sec.name == section_name:
|
|
137
|
+
# cache it
|
|
138
|
+
self._section_cache[cache_key] = sec.vaddr
|
|
139
|
+
return sec.vaddr
|
|
140
|
+
return None
|
|
141
|
+
|
|
142
|
+
def _cache_and_find_simproc_by_name(self, symbol_name: str) -> int | None:
|
|
143
|
+
if self._simproc_cache is None:
|
|
144
|
+
self._simproc_cache = {}
|
|
145
|
+
for addr, simproc in self.project._sim_procedures.items():
|
|
146
|
+
self._simproc_cache[simproc.display_name] = addr
|
|
147
|
+
|
|
148
|
+
return self._simproc_cache.get(symbol_name)
|
|
@@ -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(),
|
|
@@ -240,6 +240,26 @@ class AMD64CCallRewriter(CCallRewriterBase):
|
|
|
240
240
|
|
|
241
241
|
r = Expr.BinaryOp(ccall.idx, expr_op, (masked_dep, zero), False, **ccall.tags)
|
|
242
242
|
return Expr.Convert(None, r.bits, ccall.bits, False, r, **ccall.tags)
|
|
243
|
+
if op_v in {
|
|
244
|
+
AMD64_OpTypes["G_CC_OP_DECB"],
|
|
245
|
+
AMD64_OpTypes["G_CC_OP_DECW"],
|
|
246
|
+
AMD64_OpTypes["G_CC_OP_DECL"],
|
|
247
|
+
AMD64_OpTypes["G_CC_OP_DECQ"],
|
|
248
|
+
}:
|
|
249
|
+
# dep_1 == 0 or dep_1 != 0
|
|
250
|
+
dep_1 = self._fix_size(
|
|
251
|
+
dep_1,
|
|
252
|
+
op_v,
|
|
253
|
+
AMD64_OpTypes["G_CC_OP_SHRB"],
|
|
254
|
+
AMD64_OpTypes["G_CC_OP_SHRW"],
|
|
255
|
+
AMD64_OpTypes["G_CC_OP_SHRL"],
|
|
256
|
+
ccall.tags,
|
|
257
|
+
)
|
|
258
|
+
expr_op = "CmpEQ" if cond_v == AMD64_CondTypes["CondZ"] else "CmpNE"
|
|
259
|
+
|
|
260
|
+
zero = Expr.Const(None, None, 0, dep_1.bits)
|
|
261
|
+
r = Expr.BinaryOp(ccall.idx, expr_op, (dep_1, zero), False, **ccall.tags)
|
|
262
|
+
return Expr.Convert(None, r.bits, ccall.bits, False, r, **ccall.tags)
|
|
243
263
|
elif cond_v == AMD64_CondTypes["CondL"]:
|
|
244
264
|
if op_v in {
|
|
245
265
|
AMD64_OpTypes["G_CC_OP_SUBB"],
|
|
@@ -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
|
#
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from .boolean_counter import BooleanCounter
|
|
3
4
|
from .call_counter import AILBlockCallCounter
|
|
4
5
|
from .seq_cf_structure_counter import ControlFlowStructureCounter
|
|
5
6
|
from .expression_counters import SingleExpressionCounter, RegisterExpressionCounter, OperatorCounter
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = (
|
|
10
|
+
"BooleanCounter",
|
|
11
|
+
"AILBlockCallCounter",
|
|
12
|
+
"ControlFlowStructureCounter",
|
|
13
|
+
"SingleExpressionCounter",
|
|
14
|
+
"RegisterExpressionCounter",
|
|
15
|
+
"OperatorCounter",
|
|
16
|
+
)
|