代码之家  ›  专栏  ›  技术社区  ›  pgsandstrom

从反汇编程序保护我的应用程序安全

  •  3
  • pgsandstrom  · 技术社区  · 14 年前

    所以我最近测试了我的一个Android应用程序的重新组装,令我惊恐的是,我发现代码可读性很强。更糟糕的是,我所有的变量名都完好无损!我认为这些将在编译时被压缩成不可读的内容。应用程序将在一段时间后被触发过期。但是,现在我只需找到名为checkifexpired()的函数并找到变量“expired”,这对我来说很简单。有没有什么好方法可以让潜在的黑客更难处理我的应用程序?

    在有人说之前,显而易见的是:是的,这是通过默默无闻的安全。但显然这是我唯一的选择,因为用户总是可以访问我的所有代码。所有应用程序都是如此。我的失活细节并不重要,关键是我不想让分解器理解我所做的一些事情。

    附带问题:为什么变量名没有被压缩?如果我停止使用非常长的变量名,我的程序会运行得更快,这是我的习惯吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Brad Hein    14 年前

    模糊器是最好的解决方案。

    这是一个我没试过但看起来很有希望的例子: http://proguard.sourceforge.net/FAQ.html#android

    PROGART是一个免费的Java类文件 收缩机、优化器、模糊器和 验证者它检测并移除 未使用的类、字段、方法和 属性。它优化了字节码和 删除未使用的指令。它 重命名其余的类、字段, 以及使用无意义的简短方法 名字。最后,它预先验证了 Java 6或Java的处理代码 微型版。

        2
  •  0
  •   yanchenko    14 年前

    护卫兵 几乎是你所需要的一切。
    我把它用于我所有的应用程序,效果很好,作为副作用,它将应用程序大小减少了约30%。
    问题是,我必须编写一个定制的bash构建脚本,因为您不能将Proguard插入现有的Android Ant构建过程。或许应该写一篇博客。:)