xamarin - 是否有任何理由混淆 Xamarin Forms、Android 应用程序?
问题描述
我在准备应用程序发布说明中看到:
它建议对于 Android 应用程序,使用此产品可能是明智的:
https://www.preemptive.com/products/dotfuscator/compare-editions
我的问题是,由于应用程序最初是 C#,我假设为 Android 手机转换为 Java,是否有任何理由使用这样的产品进行混淆?将 Forms 应用程序部署到 Android 的人们通常会使用这些产品吗?
解决方案
这取决于您对代码的偏执程度。使用未混淆的代码,获取代码的步骤非常简单,只需访问 APK 文件即可:
- 重命名为 .zip
- 解压
- 访问 zip 中的 DLL(是的,它们仍然是 C# DLL)
- 使用 ILSpy 或类似工具对代码进行逆向工程。
主要风险是获取硬编码的秘密(API 密钥)等 - 这可以通过将它们存储在文件中并在运行时加载它们来缓解,这样它们就不再在代码中可见。
混淆只会使上面的第 4 步变得更加困难并且花费更长的时间。它不会阻止一个真正坚定的人获取代码。
推荐阅读
- python - 通过分组值创建新列的最佳方法是什么?
- python-3.8 - 我想使用用户输入(字符)使用 python 更改文本文件中的第 35 个字符
- java - 如何编写一个java for循环来加载给定一组id和值列表的地图
- javascript - 为什么这段代码不起作用?我正在创建一个 Firefox 扩展,但代码没有运行。但是,如果我将代码粘贴到控制台中,它就可以工作
- angular - 如何在jspdf中对齐图像
- javascript - Img 项目符号出现在 React.js 段落的上方
- python - 使用列表在循环中引用列
- mongodb - 在strapi中创建记录时如何设置随机ID?
- javascript - 使用时刻将服务器的默认时区转换为本地用户时间?
- java - Java Varargs:在数组中查找数字的索引