Skip to content

Interpreting Scan Results

import 'package:alphyn_sdk/alphyn_sdk.dart';
Future<void> interpretScanResults() async {
try {
// Get the current scan result
final result = await AlphynSdk.getScanResult();
// Check if there are any rejection reasons
// getRejectReasons() returns a newline-separated string; split it into a list
final rejectReasonsRaw = await AlphynSdk.getRejectReasons();
final rejectReasons = rejectReasonsRaw.split('\n').where((line) => line.trim().isNotEmpty).toList();
// Example outputs:
// result: 'SIMULATOR_RUNTIME' or 'FRIDA_DETECTED'
// rejectReasons: [
// 'DETECTION: SIMULATOR_RUNTIME Simulator runtime detected',
// 'DETECTION: DEBUGGER_SYSTEM_CHECK Debugger detected (system check)',
// 'DETECTION: FRIDA_DETECTED Frida traces detected'
// ]
print('Raw Result: $result');
print('Rejection Reasons Count: ${rejectReasons.length}');
// Determine security status based on results
if (rejectReasons.isEmpty) {
print('✅ Status: TRUSTED');
print('Application verified as secure - no threats detected');
proceedWithNormalOperation();
} else if (rejectReasons.length < 3) {
print('⚠️ Status: FLAGGED');
print('Security concerns detected: ${rejectReasons.length}');
for (var reason in rejectReasons) {
print(' - $reason');
}
enableEnhancedMonitoring(rejectReasons);
} else if (rejectReasons.length >= 3) {
print('🚨 Status: UNTRUSTED');
print('Critical threats detected: ${rejectReasons.length} issues');
for (var reason in rejectReasons) {
print(' - $reason');
}
restrictFunctionality(rejectReasons);
} else {
print('❓ Status: UNKNOWN');
print('Unable to determine security status');
retryScan();
}
} catch (e) {
print('⚠️ Status: INITIALIZATION_ERROR');
print('SDK error: $e');
handleInitializationError(e);
}
}