Xamarin 代码安全

2024-07-01

我正在开发一个涉及付款的应用程序。我将在应用程序中采用某种加密,并在服务器后端采用某种加密和安全性。

我想知道如何保护我的 Xamarin 代码,特别是在部署到 Android 时。我知道 Xamarin.iOS 转换为本机代码,但 Xamarin.Android 在 DLL 中部署 .Net 代码,可以使用 DotPeek 或任何其他工具轻松反编译该代码,并且代码将可见,包括我的加密密钥或任何其他安全相关数据服务器和我的应用程序之间的安全所必需的。混淆是一种选择,但我想知道任何其他选择。请指导我解决这个问题,因为这是我非常关心的问题。


直接回答你的问题:不,没有什么本质上可以保护 Xamarin 编译的 Android 应用程序免受逆向工程攻击。

正如您必须使用 ProGuard 等工具采取行动来保护 APK 中的 Android 原生代码一样,包含应用程序业务逻辑的 .NET 程序集将要求您采取特殊操作来混淆、加密或以其他方式保护程序集免受这些攻击。窥探的眼睛。凭借相对较小的 .NET 工具链和探索中间语言代码的兴趣,人们可以了解很多有关应用程序如何组合在一起的知识。需要明确的是,ProGuard 仅混淆应用程序的 Java 代码,并且不为 Xamarin 编译的 APK 中找到的 .NET 程序集提供保护。

正如您的问题以及问题评论中所指出的,DotPeek、ildasm、ILSpy 和 Reflector 等工具提供了一种非常简单(并且在许多情况下免费!)的方法来检查 .NET 程序集,并且其中许多工具提供了将大量 IL 代码转换回更高级别的 .NET 语言(如 C# 或 VB.NET)的机制。只需付出一点额外的努力,这些高级类就可以插入 Visual Studio 或 Xamarin Studio 解决方案并转换回运行代码 - 哎呀!由于 Xamarin.Android 使用即时编译,除了 Android 原生代码上的类似 ProGuard 的解决方案之外,您还可以实现 Babel for .Net 或 Crypto-Obfuscator for .Net 等混淆器,为大量开发人员提供支持-可配置的混淆技术/规则以及加密程序集各部分的选项。

虽然这些工具使逆向工程的猫鼠游戏变得更加困难,但我们最终谈论的是尝试保护客户端代码;那些决心研究底层实现并有耐心这样做的人将能够寻找二进制文件和程序集中留下的线索,开始研究正在使用的混淆或加密技术。虽然没有 100% 安全的工具、机制或安全方法,但您可以通过应用分层安全方法来降低风险,并着眼于花时间实施多层方法和采用这些额外的安全措施带来的额外复杂性。作为SilverlightFox建议聘请安全专业人员在组织其他平台的背景下审核您的应用程序,这可能是确定其他需要改进的领域、突出潜在关注领域或获取进一步改进组织所选平台安全方法的建议的重要一步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xamarin 代码安全 的相关文章

  • 如何让 Meteor Cordova 应用程序允许访问域

    我刚刚做了流星更新 现在有版本 流星1 0 4 科尔多瓦4 2 0 我最近还使用 mup deploy 将我的服务器移动到数字海洋 我现在发现 虽然桌面和移动网站运行良好 但在 Android 移动应用程序中 图像不再加载 这些图像是公共
  • 当应用程序离开后台并在 iOS 和 Android 中返回时,WebView 正在重新加载?

    我有一个小应用程序 它仅包含一个网络视图 我正在使用 url 加载网络视图 但是当我的应用程序进入后台并返回时 网络视图正在重新加载 对我来说 这不应该发生 在 iOS 和 Android 中 当应用程序进入后台时 如何停止 webview
  • 待定意图的多个实例

    我创建了一个小部件 单击该小部件会激活 PendingIntent 问题是 当我屏幕上有多个小部件时 只有最新的小部件才会启动 PendingIntent 我读过一些关于独特请求代码的内容 但没有弄清楚这一点 有什么想法可以让多个小部件和
  • 单击按钮通知时关闭状态栏

    单击通知按钮后如何关闭状态栏 I tried this https stackoverflow com a 15571784 1735077 但我有一个例外 java lang NoSuchMethodException collapse
  • java.io.IOException:服务发现失败

    我正在开发一个 Android 应用程序 在两部配对的智能手机之间使用蓝牙连接 蓝牙逻辑基于著名的BluetoothChat SDK示例 管理服务器线程的 服务 类accept 一个客户端线程connect 和一个用于在套接字上读 写的线程
  • android - 自动检测未使用的绘图

    问题是 我在开发 Android 应用程序时使用了许多图标和图片 后来我替换了其中的许多图标和图片 但保留了旧的 以防我需要再次使用它们 我现在有大量我的 png 的drawable文件夹中 许多现在都未使用 手动整理它们需要很长时间 有没
  • Android 6.0 中的打瞌睡和应用程序待机模式

    Google 在 Android 6 0 操作系统中引入了 Doze 和应用程序待机模式 设备将进入Doze如果设备被拔掉并且在一段时间内未使用并且应用程序在一段时间内保持不活动状态 则该应用程序将进入模式StandBy模式 如果我错了请纠
  • Android Fragment 后台事务

    我正在开发一个带有片段的应用程序 它有一个 JavaScript 接口 在主 Activity 中调用 并具有片段替换逻辑 当应用程序位于前台时 一切正常 但当应用程序位于后台时 片段事务替换不起作用 当我返回应用程序时 我仍然看到旧片段
  • Android 自定义进度条不旋转

    我想更改默认动画ProgressBar 所以我在我的主题中添加了自定义样式 样式 xml 我在我的内部调用这种风格ProgressBar具有以下内容 进度条 xml
  • 使用数据绑定后查看边距不起作用

    下面是gridview的item布局的代码 在此 layout margin 位于设计面板中 但当我运行时没有边距 我尝试检查其他标签 例如背景 发现它有效 类似的问题是线性布局的布局权重 它们也不起作用 这些在没有数据绑定的情况下工作得很
  • Android:如何设置 Spinner 的最大尺寸?

    这是我的布局
  • 更改 Android 中的配对对话框外观

    我们有一个与 BLE 设备 我们也生产 配对的 Android 应用程序 但默认的 Android 配对对话框存在一些问题 问题是 我们的设备不需要访问联系人或通话记录 是否可以删除该选项 无论是否选中该框 配对和我们的功能都将起作用 但我
  • 无法解析 styles.xml 中的符号“Theme.AppCompat.Light.DarkActionBar”

    Theme AppCompat Light DarkActionBar is not compiling in styles xml I have added compile com android support appcompat v7
  • Android UserManager.isUserAGoat() 的正确用例?

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 我正在查看 中引入的新 API安卓4 2 http en wikipedia org wiki Android version
  • 保存新图像时,它会保留旧画布

    我有一个画布 允许用户绘制和保存 它还允许用户更改颜色并在同一画布上使用不同的颜色进行绘制 我的绘画课 package com test testing import android content Context import andro
  • 当 error.networkResponse 为 null 时 Android Volley 中的 Http 状态代码

    我在 Android 平台上使用 Google Volley 我遇到的问题是error参数输入onErrorResponse返回 nullnetworkResponse对于我正在使用的 RESTful API 我需要确定通常以 401 SC
  • 在单元测试用例中未调用 AsyncTask onPostExecute()

    我看过很多与此相关的帖子 但似乎没有一个与我遇到的问题相同 GetBusinessRulesTask 扩展了 AsyncTask 当我在单元测试用例中执行此操作时 onPostExecute 永远不会被调用 但是 如果我使用真正的客户端代码
  • 将片段添加到对话框

    我想向对话框添加一个片段 它可以是 DialogFragment 或常规对话框 我怎么做 这是我的 DialogFragment public class MyDialogFragment extends DialogFragment pu
  • 渲染期间引发异常:无法找到操作栏的布局

    刚才使用 Android Studio 时 我在编辑器中编辑 XML 文件 在预览和设计窗口中收到此错误 Exception raised during rendering Unable to find the layout for Act
  • 处理 Android 自定义内容提供程序中的(跨进程)异常

    我的 Android 应用程序中有一个自定义内容提供程序 运行得相当不错 我希望其他应用程序也可以访问我的内容提供商 我想要一些干净的方法来传达异常和错误 但据我所知 Android 内容提供程序框架没有提供任何跨进程传播异常的方法 我应该

随机推荐

  • MVVM 和 UniformGrid 数据绑定

    我正在尝试使用一些矩形来设置 WPF 图表背面的样式 我正在使用 MVVM 并且需要统一大小的矩形 当通过 Xaml 定义时 这适用于固定的 BucketCount 4
  • 如何对数据库架构进行版本控制?

    是否有办法 廉价或 FLOSS 对 SQL Server 2008 DB 架构进行版本控制 这是杰夫 阿特伍德 Jeff Atwood 写的一篇不错的文章数据库版本控制 http www codinghorror com blog 2006
  • 如何使用Python代码理解动态作用域?

    我是一名具有 Python 背景的程序员 通常使用词法作用域 我想了解动态作用域 我在网上查了一下 还是不太明白 例如 我读过这一页 https msujaws wordpress com 2011 05 03 static vs dyna
  • 伪元素:after和溢出隐藏

    我有这个标记 label required after content color red
  • 为什么空语句合法?

    int main int var 0 Typo which compiles just fine 在 C 和 C 中 这是允许的 因为表达式语句 https eel is c draft stmt expr nt expression st
  • MySQL JOIN 与 SUM 和 3 个表

    我有下表 球员 赛事 得分 我想要一份每个球员在 2012 年获得多少积分的列表 我希望这份名单包含所有球员 即使有些球员在 2012 年还没有参加过比赛 所以理论上它应该打印 Ola Hansen 6 Tove Svendson 0 Ka
  • 复制 git 存储库及其 GIT-LFS 设置

    我已将一个存储库复制到一个较新的存储库中 但是当在新存储库上执行 git 克隆时 它无法使用 LFS 指针下载文件 并且在使用 smudge 时出现错误 例如 下载对象时出错 在服务器上找不到对象 Steps git clone bare
  • 如何使用 JavaScript 动态设置 `onSubmit`

    现在我有点进退两难 因为我无法编辑onSubmit我的表单 所以我必须动态设置它 我的问题是 我不知道如何在不覆盖已有值的情况下执行此操作onSubmit例如 假设我有以下代码
  • 如何创建结合两个条形值(如给定图像)的 java poi 条形图?

    我想用 java poi 创建类似这样的条形图 有两组条形图 到目前为止只能找到单一类型的条形图 任何人都可以帮我提供任何参考吗 谢谢 从您的问题中不清楚使用什么代码创建条形图apache poi你已经找到了 到目前为止apache poi
  • 构建基础镜像的 Docker-compose.yml 文件,然后基于它的子镜像?

    为了澄清起见 当我说基础镜像时 我指的是具有所有通用配置的父镜像 这样基于它的子镜像就不需要单独下载依赖项 根据我的理解 docker compose yml 文件是运行时配置 而 Dockerfiles 是构建时配置 然而 有一个buil
  • 如何使用 d3 创建堆积条形图?

    我有一个对象数组 var data ORDER 1 apples 3840 bananas 1920 cherries 960 ORDER 2 apples 1600 bananas 1440 cherries 960 ORDER 3 ap
  • 当键盘处于活动状态时,ScrollViewer 不会向上滚动

    我如何获取 Windows Phone 中的表单行为 例如 联系人 gt gt 新联系人 gt gt 姓名 在此页面中 滚动查看器中有许多文本框 当用户点击任何文本框并获得焦点时 页面会向上滚动 标题保持不变并显示 SIP 键盘 这是我的例
  • 将 Java 类转换为 Kotlin 后如何解决:“错误:找不到符号类...”?

    我尝试从 Kotlin 开始 将项目的一些 Java 类转换为 Kotlin 并创建一个混合 Java Kotlin 项目 为了配置环境 我执行了以下操作 下载最新版本的Kotlin插件 1 0 2 在顶层 gradle plugin 我添
  • iOS 阻止某些视图中的旋转

    我有一个视图控制器及其视图 仅支持 iPad 中的横向 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceOrientation if i
  • “Localtunnel”等隧道服务如何在没有 SSH 的情况下工作?

    我想了解我的本地 IP 地址 localhost 如何暴露在互联网上 为此我读过 here https stuff things net 2016 01 20 tunneling to localhost 一种使用 SSH 进行端口转发的方
  • 替换 Python 字典中的值

    我有 2 个文件 first https drive google com file d 0Bzv1SNKM1p4uV1ZNOE9ZVTc2dkk view usp sharing只有 2 列 A 2 B 5 C 6 And the sec
  • 验证多个同名字段

    我有一个如下所示的视图文件 我的问题是 如何验证这些数据 我没有保存 所以
  • 异步等待以保持事件触发

    我有一个关于 C NET 应用程序中的 async await 的问题 我实际上正在尝试在基于 Kinect 的应用程序中解决这个问题 但为了帮助我说明 我制作了这个类似的示例 假设我们有一个名为timer1 的计时器 它设置了一个Time
  • 查找 NSMutableArray 的交集

    我有三个 NSMutableArray 其中包含根据不同条件添加到列表中的名称 这是我的数组伪代码 NSMutableArray array1 Jack John Daniel Lisa NSMutableArray array2 Jack
  • Xamarin 代码安全

    我正在开发一个涉及付款的应用程序 我将在应用程序中采用某种加密 并在服务器后端采用某种加密和安全性 我想知道如何保护我的 Xamarin 代码 特别是在部署到 Android 时 我知道 Xamarin iOS 转换为本机代码 但 Xama