zoukankan      html  css  js  c++  java
  • Android安全-数据安全1-代码中的字符串安全

    Android安全-数据安全1-代码中的字符串安全

    Android 应用程序开发中难免会使用到字符串,如服务器的地址等一些敏感信息,对于
    这些字符串如果使用硬编码的方式,容易通过静态分析获取,甚至可以使用自动化分析工具
    批量提取。例如若在 Java 源代码中定义一个字符串如下:

    代码:
    1. String str = "I am a string!";
    

    则在反编译的.smali 代码中对应的代码如下(寄存器可能会有区别):

    代码:
    1. const-string v0, "I am a string!"
    

    对于自动化分析工具,只需要扫描到 const-string 关键字就可以提取到字符串值。因此应该
    尽量避免在源代码中定义字符串常量,比较简单的做法可以使用 StringBuilder 类通过 append
    方法来构造需要的字符串,或者使用数组的方式来存储字符串。使用 StringBuilder 构造字符
    串反编译后的代码如下,使用这种方式可以增加自动化分析的难度,如果想要完整提取一个
    字符串,如果仅仅采用静态分析方法就必须要进行相应的词法语法解析了。

    另外也可以对字符串进行加密处理,例如一些具有重要功能的代码会将服务器地址等重要信息进行加密处理,运行时再进行解密。

  • 相关阅读:
    tableView Crash
    字典
    图片轮播器
    第三方,解决模型无法在获取网络数据之后传值问题
    tableView创建方法调用的研究
    IOS常用CGRect的交错,边缘,中心的检测
    log4j日志目录不自动生成的问题
    tomcat 配置虚拟路径
    Linux系统下文件属性:drwxr-xr-x意思
    springmvc json转对象时日期转化
  • 原文地址:https://www.cnblogs.com/harry335/p/5194791.html
Copyright © 2011-2022 走看看