android - 在 Strings.xml 与代码中存储字符串是否会使逆向工程变得更加乏味?
问题描述
对应用程序进行逆向工程的人可以轻松/自动将 getString(R....) 调用替换为 Strings.xml 中存储的相应字符串值吗?我很确定答案是肯定的,考虑到即使 Android Studio 也会通过 getString(R...) 调用暗示 Strings.xml 的内容。
我问的原因是我想知道在 xml 资源文件中存储具有随机名称的字符串是否比简单地将它们硬编码在代码中提供任何“安全”优势。我知道使用 Strings.xml 可以翻译我不感兴趣的等。
该应用程序是完全独立的,不会从服务器获取数据,因此我无法在客户端之外隐藏任何内容。
即使我的代码被混淆了,我也不想通过允许某人简单地阅读整个代码(或链接到 Strings.xml)的消息而放弃太多的逻辑和上下文。
我知道要阻止一个坚定的人对应用程序进行逆向工程是不可能的,但如果我可以做一些简单的事情来降低它的吸引力,我会全力以赴。
谢谢!
解决方案
不,它没有。隐藏字符串的可靠方法之一是编码和解码。这里解释得很好。
推荐阅读
- powerquery - Power Query - 有条件地替换/清除多列中的整个单元格
- php - 从 foreach 生成的下拉列表中获取选定的答案
- codeigniter-4 - 我在 CI 4 CodeIgniter DebugBar 中遇到错误:找不到文件“WRITEPATH/debugbar/debugbar_1623158273”
- javascript - 无法在本机反应中从数据对象中提取项目
- java - Intellij IDEA Contract 误报语法错误
- node.js - 如何在mongodb中使用主集合的objectID在另一个集合中查找
- sql - 在 where 条件下使用 MAX 函数获取时间
- operators - Solidity ++ 运算符未按预期分配
- elasticsearch - ElasticSearch/ElasticCloud 警报创建
- properties - TypeError:无法读取未定义的属性“当前”(使用 React.js)