Flutter安全库插件safesecurelibs的使用

Flutter安全库插件safesecurelibs的使用

SafeSecureLibs Banner

SafeSecureLibs

一个用于检查设备安全状态的Flutter包,包括检测是否被root、开发模式和危险应用。

特性

  • 开发者模式检测:检查开发者选项是否已启用。
  • Root访问检测:检测设备是否已被root。
  • Magisk检测:识别是否安装了Magisk根管理工具。
  • 危险应用检测:检测设备上是否安装了潜在有害的应用程序。

安装

在你的pubspec.yaml文件中添加以下依赖:

dependencies:
  safe_secure_libs: ^latest

然后运行:

flutter pub get

使用

以下是如何在你的Flutter应用程序中实现安全检查的完整示例:

import 'package:flutter/material.dart';
import 'package:safesecurelibs/safesecurelibs.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Security Check Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const SecurityCheckPage(),
    );
  }
}

class SecurityCheckPage extends StatefulWidget {
  const SecurityCheckPage({super.key});
  @override
  State<SecurityCheckPage> createState() => _SecurityCheckPageState();
}

class _SecurityCheckPageState extends State<SecurityCheckPage> {
  Map<String, dynamic> _securityStatus = {
    'isDevModeEnabled': false,
    'isRooted': false,
    'isMagiskDetected': false,
    'hasDangerousApps': false,
    'isSecure': true,
    'deviceInfo': {}
  };

  @override
  void initState() {
    super.initState();
    _checkSecurity();
  }

  Future<void> _checkSecurity() async {
    final status = await CheckerMethode.checkSecurityStatus();
    setState(() {
      _securityStatus = status;
    });
  }

  @override
  Widget build(BuildContext context) {
    final deviceInfo = _securityStatus['deviceInfo'] as Map<dynamic, dynamic>? ?? {};

    return Scaffold(
      appBar: AppBar(
        title: const Text('Security Check'),
      ),
      body: ListView(
        padding: const EdgeInsets.all(16.0),
        children: [
          _buildSecurityItem(
            'Developer Mode',
            _securityStatus['isDevModeEnabled'] ?? false,
          ),
          _buildSecurityItem(
            'Root Access',
            _securityStatus['isRooted'] ?? false,
          ),
          _buildSecurityItem(
            'Magisk Detected',
            _securityStatus['isMagiskDetected'] ?? false,
          ),
          _buildSecurityItem(
            'Dangerous Apps',
            _securityStatus['hasDangerousApps'] ?? false,
          ),
          _buildSecurityItem(
            'Device Security',
            _securityStatus['isSecure'] ?? true,
          ),
          const SizedBox(height: 20),
          Card(
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text('Device Information',
                      style: Theme.of(context).textTheme.titleLarge),
                  const SizedBox(height: 8),
                  Text('Model: ${deviceInfo['model']}'),
                  Text('Brand: ${deviceInfo['brand']}'),
                  Text('Android Version: ${deviceInfo['version']}'),
                  Text('SDK: ${deviceInfo['sdkInt']}'),
                ],
              ),
            ),
          ),
          const SizedBox(height: 20),
          ElevatedButton(
            onPressed: _checkSecurity,
            child: const Text('Refresh Security Status'),
          ),
        ],
      ),
    );
  }
}

Widget _buildSecurityItem(String title, bool isDetected) {
  return Card(
    margin: const EdgeInsets.symmetric(vertical: 8.0),
    child: ListTile(
      title: Text(title),
      trailing: Icon(
        isDetected ? Icons.warning : Icons.check_circle,
        color: isDetected ? Colors.red : Colors.green,
      ),
      subtitle: Text(
        isDetected ? 'Security Risk Detected' : 'Secure',
        style: TextStyle(
          color: isDetected ? Colors.red : Colors.green,
        ),
      ),
    ),
  );
}

平台支持

平台 支持
Android
iOS
Linux
Windows

安全检查详细信息

安全检查 状态
开发者模式
Root访问
Magisk Root
危险应用
整体安全

设备信息

属性 状态
制造商
品牌
型号
设备
产品
Android版本
SDK级别
指纹

开发者模式检测

检查设备设置中是否启用了开发者选项。这可能表明存在潜在的安全风险,因为开发者选项可能允许USB调试和其他敏感功能。

Root检测

执行各种检查以确定设备是否已被root,包括:

  • 检查常见的root管理应用
  • 扫描系统各处的su二进制文件
  • 验证系统分区挂载状态

Magisk检测

专门检查Magisk根管理工具及其对系统的相关修改的存在情况。

危险应用检测

扫描是否存在潜在有害的应用程序,包括:

  • Root管理应用
  • 系统修改工具
  • 安全绕过应用

检测到的包包括:

"com.topjohnwu.magisk",
"com.thirdparty.superuser",
"eu.chainfire.supersu",
"com.noshufou.android.su",
"com.koushikdutta.superuser",
"com.zachspong.temprootremovejb",
"com.ramdroid.appquarantine",
"com.formyhm.hideroot",
"com.amphoras.hidemyroot",
"com.saurik.substrate",
"de.robv.android.xposed",
"com.devadvance.rootcloak",
"com.devadvance.rootcloakplus",
"com.android.vending.billing.InAppBillingService.COIN",
"com.chelpus.lackypatch",
"com.kingroot.kinguser",
"com.kingo.root",
"com.smedialink.oneclickroot",
"com.zhiqupk.root.global",
"com.alephzain.framaroot",
"com.koushikdutta.rommanager",
"com.dimonvideo.luckypatcher",
"com.chelpus.luckypatcher",
"com.yellowes.su",
"com.koushikdutta.superuser",
"com.thirdparty.superuser",
"com.bitcnew.blockchain",
"com.noshufou.android.su.elite",
"com.jrummy.root.browserfree",
"com.jrummy.busybox.installer"

检测到的路径包括:

"/sbin/magisk",
"/system/xbin/magisk",
"/system/bin/magisk",
"/data/adb/magisk",
"/data/data/com.topjohnwu.magisk",
"/system/app/Superuser.apk",
"/sbin/su",
"/system/bin/su",
"/system/xbin/su",
"/data/local/xbin/su",
"/data/local/bin/su",
"/system/sd/xbin/su",
"/system/bin/failsafe/su",
"/data/local/su",
"/su/bin/su"

更多关于Flutter安全库插件safesecurelibs的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter安全库插件safesecurelibs的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


SafeSecureLibs 是一个用于 Flutter 的安全库插件,旨在帮助开发者更安全地处理敏感数据,如加密、解密、安全存储等。以下是如何在 Flutter 项目中使用 SafeSecureLibs 的基本步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 safesecurelibs 依赖。

dependencies:
  flutter:
    sdk: flutter
  safesecurelibs: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入库

在你的 Dart 文件中导入 safesecurelibs

import 'package:safesecurelibs/safesecurelibs.dart';

3. 使用加密功能

SafeSecureLibs 提供了加密和解密的功能。以下是一个简单的示例:

void main() async {
  // 初始化加密库
  SafeSecureLibs.initialize();

  // 加密数据
  String plainText = "This is a secret message";
  String encryptedText = SafeSecureLibs.encrypt(plainText);
  print("Encrypted Text: $encryptedText");

  // 解密数据
  String decryptedText = SafeSecureLibs.decrypt(encryptedText);
  print("Decrypted Text: $decryptedText");
}

4. 安全存储

SafeSecureLibs 还提供了安全存储功能,可以将敏感数据存储在安全的地方。

void main() async {
  // 初始化加密库
  SafeSecureLibs.initialize();

  // 存储敏感数据
  String key = "user_token";
  String value = "12345-secure-token";
  SafeSecureLibs.saveSecureData(key, value);

  // 读取敏感数据
  String? retrievedValue = SafeSecureLibs.getSecureData(key);
  print("Retrieved Value: $retrievedValue");

  // 删除敏感数据
  SafeSecureLibs.deleteSecureData(key);
}

5. 处理异常

在使用加密和解密功能时,可能会遇到异常。确保你处理了这些异常以保证应用的稳定性。

void main() async {
  try {
    // 初始化加密库
    SafeSecureLibs.initialize();

    // 加密数据
    String plainText = "This is a secret message";
    String encryptedText = SafeSecureLibs.encrypt(plainText);
    print("Encrypted Text: $encryptedText");

    // 解密数据
    String decryptedText = SafeSecureLibs.decrypt(encryptedText);
    print("Decrypted Text: $decryptedText");
  } catch (e) {
    print("An error occurred: $e");
  }
}
回到顶部