Skip to content

bug:placeholder if-count exceeded threshold #71

@KawaiiSparkle

Description

@KawaiiSparkle

Environment

  • OS: Debian GNU/Linux 11 (bullseye) x86_64 on Github CodeSpaces
  • Input type: libapp.so
  • Command: flutterdec decompile libapp.so -o ./out --emit-ida-script --emit-ir
  • flutterdec commit/tag: main/08b8ea33cc5b997d933f2da0ec7081d0ee3cd28d)3cc5b997d933f2da0ec7081d0ee3cd28d

What Happened

The Terminal Output "Error: quality gate failed. see ./out/quality.json"
quality.json

{
  "mode": "strict",
  "passed": false,
  "failures": [
    "placeholder if-count exceeded threshold"
  ],
  "function_count": 5394,
  "disassembled_function_count": 5394,
  "disassembly_ratio": 1.0,
  "total_calls": 77037,
  "indirect_calls": 9674,
  "indirect_call_ratio": 0.12557602191154899,
  "placeholder_ifs": 1691,
  "unresolved_cf": 0,
  "raw_register_calls": 9674,
  "semantic_direct_calls": 37,
  "semantic_indirect_calls": 10,
  "dispatch_selector_calls": 1132,
  "target_va_symbol_calls": 0,
  "block_helper_refs": 0,
  "raw_arg_name_refs": 0,
  "raw_register_name_refs": 0,
  "placeholder_cond_markers": 1618,
  "omitted_path_markers": 827,
  "loop_backedge_markers": 1
}

report.json

{
  "adapter_kind": "dynamic_snapshot_string_model_v1",
  "adapter_schema": {
    "compatibility_mode": "native_v3",
    "function_name_kind_breakdown": {
      "exact": 0,
      "external": 0,
      "heuristic": 0,
      "placeholder": 5394,
      "unknown": 0,
      "unspecified": 0
    },
    "function_name_kind_count": 5394,
    "pool_confidence_count": 17639,
    "pool_source_count": 17639,
    "schema_version": 3
  },
  "adapter_selection": {
    "adapter_exec_path": "/workspaces/156587835/adapters/installed/dart_adapter_adf563436d12ba0d50ea5beb7f3be1bb",
    "backend_mismatch": false,
    "manifest_entry_adapter": "dart_adapter_adf563436d12ba0d50ea5beb7f3be1bb",
    "manifest_entry_version": "unknown",
    "requested_backend": "auto",
    "require_snapshot_hash_match": false,
    "resolved_backend": "internal",
    "resolved_from_adapter_kind": "dynamic_snapshot_string_model_v1",
    "snapshot_hash": {
      "adapter_model": "adf563436d12ba0d50ea5beb7f3be1bb",
      "bundle": "adf563436d12ba0d50ea5beb7f3be1bb",
      "match": true
    }
  },
  "analysis": {
    "engine": {
      "apk_startup_analysis": true,
      "bootflow_category_seeds": true,
      "canonical_model_symbols": true,
      "pool_semantic_hints": true,
      "pool_value_hints": true,
      "semantic_reporting": true
    },
    "profile": "balanced"
  },
  "android_manifest": {
    "activities": [],
    "activity_count": 0,
    "application_name": null,
    "confidence": {
      "activities": "none",
      "deeplink": "none",
      "launcher": "none",
      "package_name": "none"
    },
    "deeplink_activities": [],
    "deeplink_activity_count": 0,
    "deeplink_entries": [],
    "deeplink_entry_count": 0,
    "launcher_activities": [],
    "launcher_activity_count": 0,
    "main_launcher": false,
    "package_name": null,
    "parse_error": null,
    "parse_mode": "not_apk",
    "present": false,
    "synthetic_bootflow_hints": 0,
    "view_browsable": false
  },
  "android_startup": {
    "bootstrap_chain": {
      "complete": false,
      "missing_steps": [],
      "path_count": 0,
      "paths": [],
      "source_count": 0,
      "sources": []
    },
    "confidence": "none",
    "dart_entrypoint_count": 0,
    "dart_entrypoints": [],
    "dex_file_count": 0,
    "dex_files": [],
    "enabled": true,
    "flutter_activity_classes": [],
    "flutter_activity_count": 0,
    "jni_bootstrap": [],
    "jni_bootstrap_count": 0,
    "parse_error_count": 0,
    "parse_errors": [],
    "present": false,
    "startup_method_count": 0,
    "startup_methods": [],
    "synthetic_bootflow_hints": 0
  },
  "arch": "arm64",
  "bootflow_discovery": {
    "activity": [],
    "activity_count": 0,
    "bootstrap": [],
    "bootstrap_count": 0,
    "deeplink": [],
    "deeplink_count": 0,
    "main": [],
    "main_count": 0,
    "runapp": [],
    "runapp_count": 0
  },
  "call_fallback": {
    "dispatch_invoke": 256,
    "dispatch_target_invoke": 7417,
    "dynamic_call": 0,
    "generic_invoke": 579
  },
  "compatibility": {
    "manifest_entry_present": true,
    "schema": {
      "supported": true,
      "supported_versions": [
        2,
        3
      ],
      "version": 3
    },
    "snapshot_hash_match": true,
    "snapshot_hash_match_required": false,
    "status": "ok",
    "warnings": []
  },
  "counts": {
    "classes": 1,
    "disassembled_functions": 5394,
    "functions": 5394,
    "functions_total": 5394,
    "libraries": 1,
    "object_pool": 17639
  },
  "dart_version": "unknown",
  "engine_fingerprint_context": {
    "build_id": "66d0e39796ee8d36dc1fe350d14ebf0aa73cd03c",
    "candidate_dart_version": null,
    "candidate_flutter_version": null,
    "confidence": "medium",
    "detected": true,
    "dyn_symbol_count": 456,
    "error": null,
    "exec_section_count": 2,
    "machine": "AArch64",
    "machine_id": 183,
    "machine_matches_bundle_arch": true,
    "source": "filesystem:libflutter.so",
    "symbol_count": 0
  },
  "engine_symbol_ingestion": {
    "applied_target_count": 0,
    "enabled": false,
    "error": null,
    "loaded_paths": [],
    "manifest_path": null,
    "match_kind": null
  },
  "extra_symbol_elfs": [],
  "extra_symbol_map_targets": [],
  "function_scope": {
    "app_package_count_total": 1,
    "app_package_counts_top": [
      {
        "functions": 5394,
        "package": "app"
      }
    ],
    "app_packages": [],
    "categories": {
      "app": 5394,
      "framework": 0,
      "stdlib": 0,
      "unknown": 0
    },
    "excluded": 0,
    "excluded_by_app_package": 0,
    "priority_package_hints": [],
    "selected": "app-unknown",
    "total_after_filter": 5394,
    "total_before_filter": 5394
  },
  "ghidra_script": {
    "enabled": false,
    "path": null,
    "pool_comment_count": 0,
    "symbol_count": 0
  },
  "ida_script": {
    "enabled": true,
    "path": "./out/ida_apply_symbols.py",
    "pool_comment_count": 42216,
    "symbol_count": 5394
  },
  "include_nearest_symbol_map": false,
  "input": "libapp.so",
  "libapp": "libapp.so",
  "name_resolution": {
    "final_quality": {
      "exact": 0,
      "external": 0,
      "heuristic": 0,
      "placeholder": 5394
    },
    "merge": {
      "inserted": 0,
      "replaced": 0,
      "replaced_to_exact": 0,
      "replaced_to_external": 0,
      "replaced_to_heuristic": 0,
      "replaced_to_placeholder": 0,
      "skipped": 0
    }
  },
  "pool_metadata": {
    "total_entries": 17639,
    "with_library_uri": 0,
    "with_owner_class": 0,
    "with_selector": 11274,
    "with_target_va": 0
  },
  "pool_semantic_hints": 11274,
  "pool_target_symbols": 0,
  "pool_value_hints": 17635,
  "prioritization": {
    "enabled": false,
    "focus": null,
    "selected": [
      {
        "components": [],
        "entry_va": 3034336,
        "function_id": 0,
        "function_name": "sub_2e4ce0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3034436,
        "function_id": 1,
        "function_name": "sub_2e4d44",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3036516,
        "function_id": 2,
        "function_name": "sub_2e5564",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3037616,
        "function_id": 3,
        "function_name": "sub_2e59b0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3037648,
        "function_id": 4,
        "function_name": "sub_2e59d0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3037684,
        "function_id": 5,
        "function_name": "sub_2e59f4",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3039592,
        "function_id": 6,
        "function_name": "sub_2e6168",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3040104,
        "function_id": 7,
        "function_name": "sub_2e6368",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3040212,
        "function_id": 8,
        "function_name": "sub_2e63d4",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3040324,
        "function_id": 9,
        "function_name": "sub_2e6444",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3040700,
        "function_id": 10,
        "function_name": "sub_2e65bc",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3041076,
        "function_id": 11,
        "function_name": "sub_2e6734",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3041248,
        "function_id": 12,
        "function_name": "sub_2e67e0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3041468,
        "function_id": 13,
        "function_name": "sub_2e68bc",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3041608,
        "function_id": 14,
        "function_name": "sub_2e6948",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3042024,
        "function_id": 15,
        "function_name": "sub_2e6ae8",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3042420,
        "function_id": 16,
        "function_name": "sub_2e6c74",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3043704,
        "function_id": 17,
        "function_name": "sub_2e7178",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3044064,
        "function_id": 18,
        "function_name": "sub_2e72e0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3044356,
        "function_id": 19,
        "function_name": "sub_2e7404",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3044560,
        "function_id": 20,
        "function_name": "sub_2e74d0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3044668,
        "function_id": 21,
        "function_name": "sub_2e753c",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3044828,
        "function_id": 22,
        "function_name": "sub_2e75dc",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3047552,
        "function_id": 23,
        "function_name": "sub_2e8080",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3047820,
        "function_id": 24,
        "function_name": "sub_2e818c",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3048224,
        "function_id": 25,
        "function_name": "sub_2e8320",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3048384,
        "function_id": 26,
        "function_name": "sub_2e83c0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3048576,
        "function_id": 27,
        "function_name": "sub_2e8480",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3048764,
        "function_id": 28,
        "function_name": "sub_2e853c",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3048868,
        "function_id": 29,
        "function_name": "sub_2e85a4",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3048884,
        "function_id": 30,
        "function_name": "sub_2e85b4",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3048928,
        "function_id": 31,
        "function_name": "sub_2e85e0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3048980,
        "function_id": 32,
        "function_name": "sub_2e8614",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3049424,
        "function_id": 33,
        "function_name": "sub_2e87d0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3049888,
        "function_id": 34,
        "function_name": "sub_2e89a0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3050028,
        "function_id": 35,
        "function_name": "sub_2e8a2c",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3050408,
        "function_id": 36,
        "function_name": "sub_2e8ba8",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3051272,
        "function_id": 37,
        "function_name": "sub_2e8f08",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3051484,
        "function_id": 38,
        "function_name": "sub_2e8fdc",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3051800,
        "function_id": 39,
        "function_name": "sub_2e9118",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3052576,
        "function_id": 40,
        "function_name": "sub_2e9420",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3052716,
        "function_id": 41,
        "function_name": "sub_2e94ac",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3053088,
        "function_id": 42,
        "function_name": "sub_2e9620",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3053336,
        "function_id": 43,
        "function_name": "sub_2e9718",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3053800,
        "function_id": 44,
        "function_name": "sub_2e98e8",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3054020,
        "function_id": 45,
        "function_name": "sub_2e99c4",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3054372,
        "function_id": 46,
        "function_name": "sub_2e9b24",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3054616,
        "function_id": 47,
        "function_name": "sub_2e9c18",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3055112,
        "function_id": 48,
        "function_name": "sub_2e9e08",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3055520,
        "function_id": 49,
        "function_name": "sub_2e9fa0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3055584,
        "function_id": 50,
        "function_name": "sub_2e9fe0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3056080,
        "function_id": 51,
        "function_name": "sub_2ea1d0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3056104,
        "function_id": 52,
        "function_name": "sub_2ea1e8",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3056284,
        "function_id": 53,
        "function_name": "sub_2ea29c",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3057244,
        "function_id": 54,
        "function_name": "sub_2ea65c",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3071456,
        "function_id": 55,
        "function_name": "sub_2edde0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3071560,
        "function_id": 56,
        "function_name": "sub_2ede48",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3071724,
        "function_id": 57,
        "function_name": "sub_2edeec",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3071812,
        "function_id": 58,
        "function_name": "sub_2edf44",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3072892,
        "function_id": 59,
        "function_name": "sub_2ee37c",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3073056,
        "function_id": 60,
        "function_name": "sub_2ee420",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3073376,
        "function_id": 61,
        "function_name": "sub_2ee560",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3073952,
        "function_id": 62,
        "function_name": "sub_2ee7a0",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      },
      {
        "components": [],
        "entry_va": 3074428,
        "function_id": 63,
        "function_name": "sub_2ee97c",
        "library_uri": "package:app/main.dart",
        "owner_class": "Global",
        "total_score": 0
      }
    ],
    "selected_app_like_ratio": 1.0,
    "selected_bootflow_coverage": {
      "activity": {
        "coverage": 0.0,
        "discovered": 0,
        "selected": 0
      },
      "any": {
        "coverage": 0.0,
        "discovered": 0,
        "selected": 0
      },
      "bootstrap": {
        "coverage": 0.0,
        "discovered": 0,
        "selected": 0
      },
      "deeplink": {
        "coverage": 0.0,
        "discovered": 0,
        "selected": 0
      },
      "main": {
        "coverage": 0.0,
        "discovered": 0,
        "selected": 0
      },
      "runapp": {
        "coverage": 0.0,
        "discovered": 0,
        "selected": 0
      }
    },
    "selected_bootflow_hits_top": [],
    "selected_component_totals_top": [],
    "selected_count": 5394,
    "selected_other_app_count": 0,
    "selected_package_count_total": 1,
    "selected_package_counts_top": [
      {
        "functions": 64,
        "package": "app"
      }
    ],
    "selected_preferred_app_count": 64,
    "selected_preferred_app_ratio": 1.0,
    "selected_scope_mix": {
      "app": 64,
      "framework": 0,
      "stdlib": 0,
      "unknown": 0
    },
    "selected_unknown_library_count": 0
  },
  "quality": {
    "block_helper_refs": 0,
    "disassembled_function_count": 5394,
    "disassembly_ratio": 1.0,
    "dispatch_selector_calls": 1132,
    "failures": [
      "placeholder if-count exceeded threshold"
    ],
    "function_count": 5394,
    "indirect_call_ratio": 0.12557602191154899,
    "indirect_calls": 9674,
    "loop_backedge_markers": 1,
    "mode": "strict",
    "omitted_path_markers": 827,
    "passed": false,
    "placeholder_cond_markers": 1618,
    "placeholder_ifs": 1691,
    "raw_arg_name_refs": 0,
    "raw_register_calls": 9674,
    "raw_register_name_refs": 0,
    "semantic_direct_calls": 37,
    "semantic_indirect_calls": 10,
    "target_va_symbol_calls": 0,
    "total_calls": 77037,
    "unresolved_cf": 0
  },
  "selector_fallback": {
    "top": [
      {
        "count": 174,
        "sample": "final t3 = AQaqaq.new(0xa0, (bitField((bitField(objTmp1.f7, 0, 0x20) & 0xff000000), 0, 0x20) >> 0x18), tmp1, bitField(objTmp1.f7, 0, 0x20)); // selector: AQaqaq, heuristic: constru...",
        "selector": "AQaqaq"
      },
      {
        "count": 117,
        "sample": "final t4 = dispatch.iid(t3, null, objTmp1, poolStr10448); // selector: iid, indirect via: dispatchTarget, target: pool[1056 /* \"iid\" */].f7",
        "selector": "iid"
      },
      {
        "count": 78,
        "sample": "final t2 = GestureRecognizerState.new(null, null, (t1.f7), poolStr10568); // selector: GestureRecognizerState, heuristic: constructor-like selector, indirect via: dispatchTarget, t...",
        "selector": "GestureRecognizerState"
      },
      {
        "count": 52,
        "sample": "final t7 = Rect_fromLTRB.new(tmp10, resultTmp9, null, poolStr13328); // selector: Rect_fromLTRB, heuristic: constructor-like selector, indirect via: dispatchTarget, target: pool[13...",
        "selector": "Rect_fromLTRB"
      },
      {
        "count": 41,
        "sample": "final t2 = dispatch.jz(intTmp1, null, null, \"y. MMM d., EEE\" /* pool[2328] */); // selector: jz, indirect via: dispatchTarget, target: pool[2040 /* \"_jz\" */].f7",
        "selector": "jz"
      },
      {
        "count": 28,
        "sample": "final t1 = LoadingUnit.new(tmp7, null, (objTmp1.f23.f15.f7), \"Til baka\" /* pool[6464] */); // selector: LoadingUnit, heuristic: constructor-like selector, indirect via: dispatchTar...",
        "selector": "LoadingUnit"
      },
      {
        "count": 19,
        "sample": "final t3 = dispatch.uBc(null, tmp15, null, pool[18693]); // selector: uBc, indirect via: dispatchTarget, target: pool[11784 /* \"uBc\" */].f7",
        "selector": "uBc"
      },
      {
        "count": 14,
        "sample": "final t1 = dispatch.torstai(null, null, (objTmp1.f7), poolStr8768); // selector: torstai, indirect via: dispatchTarget, target: pool[1192 /* \"GestureRecognizerState.\" */].f7",
        "selector": "torstai"
      },
      {
        "count": 12,
        "sample": "final t3 = dispatch.Gwb(null, tmp5, null, poolStr11776); // selector: Gwb, indirect via: dispatchTarget, target: pool[11784 /* \"uBc\" */].f7",
        "selector": "Gwb"
      },
      {
        "count": 12,
        "sample": "final t2 = dispatch.keyboardAppearance(((sp + ((obj4.f19) - (obj4.f35)) /* sxtw #2 */)).f8, null, ((((sp + ((obj4.f19) - 4) /* sxtw #2 */)).f24).f7), poolStr7703); // selector: key...",
        "selector": "keyboardAppearance"
      }
    ],
    "total": 1132,
    "unique": 232
  },
  "semantic_intent": {
    "constructor_calls": 2,
    "framework": 7,
    "native": 0,
    "runtime": 0,
    "selector_tagged": 12,
    "stdlib": 5
  },
  "semantic_rewrite": {
    "direct": 37,
    "dispatch_fallback": 1132,
    "indirect": 10,
    "indirect_ratio": 0.1180483770932396,
    "ratio": 0.015304334280929944,
    "target_va_symbol": 0,
    "total": 1179
  },
  "snapshot_hash": "adf563436d12ba0d50ea5beb7f3be1bb",
  "standard_model_symbols": 0,
  "symbol_merge": {
    "inserted": 0,
    "replaced_generic": 0,
    "skipped": 0
  },
  "target_selection": {
    "enabled": false,
    "kind": null,
    "matched_count": 0,
    "scope_overridden": false,
    "selector": null,
    "value": null
  }
}

Expected Behavior

The Process Done without Error

Reproduction

  1. Command(s) used : flutterdec decompile libapp.so -o ./out --emit-ida-script --emit-ir
  2. Output directory artifacts: https://litter.catbox.moe/x8qetf.gz Input: https://litter.catbox.moe/xz6tvw.7z (Expire after 3 Days)

Additional Context

vscode@codespaces-879efa:/workspaces/156587835$ flutterdec info libapp.so
input: libapp.so
libapp: libapp.so
arch: arm64
snapshot hash: adf563436d12ba0d50ea5beb7f3be1bb
adapter installed: true
adapter kind: dynamic_snapshot_string_model_v1
manifest entry present: true
adapter snapshot hash match: true
functions: 5394
android startup present: false
android startup confidence: none
android startup entrypoints: 0
android startup flutter activities: 0
app packages: 1

  • app (5394)

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions