前言

系列目录

C#使用Xamarin开发可移植移动应用目录

源码地址:https://github.com/l2999019/DemoApp

可以Star一下,随意 - -

说点什么..

今天讲讲如何混淆我们的C#代码,来达到反编译的目的

今天的学习内容?

使用Dotfuscator来混淆C#代码,防止反编译.

正文

嗯,既然是客户端应用,自然而然就需要一些防止源码泄漏的手段.通过C#编写的APP,完全是可以直接解压APK,然后得到里面的DLL然后进行反编译的..

如下图:

嗯..这样就会造成代码泄漏..

下面就介绍一下,如何使用VS自带的Dotfuscator来进行混淆代码.

1.安装Dotfuscator

打开VS2017的安装工具,如下,点击修改按钮.

选择单个组件,如下:

在代码工具中找到Dotfuscator并添加.(注意:这里我们安装的是社区版,功能有限,如果需要更深度的混淆,请购买专业版..)

这样,我们的安装就完成了.

2.将Dotfuscator与Xamarin项目集成(重点)

2.1下载Dotfuscator-Xamarin MSBuild目标文件

这个文件是用来生成的,直接下载就行,地址:下载

然后复制到项目路径下.

2.2保护我们的安卓项目.

首先,我们要先卸载安卓项目,如图:

 然后编辑csproj文件.如图:

我们在PropertyGroup标签里,添加Dotfuscator的相关配置.

<DotfuscatorXamarinCliPath>(这里是你dotfuscator的安装位置)C:\VS2017\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe</DotfuscatorXamarinCliPath>
<DotfuscatorXamarinConfigFileName>DotfuscatorConfig.xml</DotfuscatorXamarinConfigFileName>
<DotfuscatorXamarinGenerateNewConfigFile>true</DotfuscatorXamarinGenerateNewConfigFile>

第一个是你的Dotfuscator的安装位置,自行选择

然后在我们文件的最下面,导入刚刚下载的生成文件.如下图:

设置生成选项,我们找到如下代码:

这里面的配置就是用来设置生成选项的,你可以任意选择是debug还是Relase.

这里,我们当然设置Relase,只有发布的时候才保护嘛 ..调试的时候保护有啥用 - - .

我们在这个标签下,添加代码如下:

<DotfuscatorXamarinEnabled>true</DotfuscatorXamarinEnabled>

2.2生成项目,并设置混淆内容.

修改完成后,我们将项目重新加载进去.

然后存档发布.

如果一切正常的话,会弹出如下界面:

因为我这里用的是免费的社区版,所以功能有限,

我们直接点击生成,完成后关闭这个界面.(很重要,不关闭..就一直卡在生成那里..)

这样,我们就完成了整个C#代码的混淆工作.

3.反编译混淆后的Dll

如图所示,因为社区版的功能较少,所以只能混淆一些变量名..其实混淆的程度有限.

专业版提供了更多的选择..嗯..他可以直接混淆整个控制流程 如下效果:

写在最后

今天的内容就这些了.其实这个混淆方案对于其他的C#项目也是适用的.嗯..大家可以随意试试.

C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)的更多相关文章

  1. C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 本篇..基 ...

  2. C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 本篇..基 ...

  3. C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 嗯,前面讲 ...

  4. C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD)

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 呃 也有半 ...

  5. C#使用Xamarin开发可移植移动应用(3.进阶篇MVVM双向绑定和命令绑定)附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 嗯..前面 ...

  6. C#使用Xamarin开发可移植移动应用(4.进阶篇MVVM双向绑定和命令绑定)附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 嗯..前面 ...

  7. C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 没啥好说的 ...

  8. C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码

    前言 什么是Xamarin? Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单. Xamarin的产品简化了针对多种平台的应用开发,包括iOS.Android.Windows P ...

  9. C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 一点感想 很意外的,第一 ...

随机推荐

  1. nyoj_1022:合纵连横(并查集删点)

    题目链接 参考链接 只附代码好了 #include<bits/stdc++.h> using namespace std; ; int a[N],b[N],vis[N]; int n,m, ...

  2. (转)AJax跨域:No 'Access-Control-Allow-Origin' header is present on the requested resource

    在本地用ajax跨域访问请求时报错: No 'Access-Control-Allow-Origin' header is present on the requested resource. Ori ...

  3. java内存区域——深入理解JVM读书笔记

    本内容由<深入理解java虚拟机>的部分读书笔记整理而成,本读者计划连载. 通过如下图和文字介绍来了解几个运行时数据区的概念. 方法区:它是各个线程共享的区域,用于内存已被VM加载的类信息 ...

  4. Hibernate一对多实例

    本文向大家介绍Hibernate实例一对多的情况,可能好多人还不了解Hibernate实例一对多,没有关系,下面通过一个实例来帮助您理解Hibernate实例一对多,希望本文能教会你更多东西. 先看由 ...

  5. unrecognized font family "iconfont2"

    起因:使用React Native开发App,需要使用自定义字体iconfont2.ttf,要在xCode中引入该字体 步骤:将字体文件拷贝到项目工程中,在Info.plist文件中添加Fonts p ...

  6. [Tyvj 1730] 二逼平衡树

    先来一发题面QwQ [TYVJ1730]二逼平衡树 Time Limit:2 s   Memory Limit:512 MB Description 您需要写一种数据结构(可参考题目标题),来维护一个 ...

  7. MySQL优化 - 所需了解的基础知识

    时隔一年半,期间一直想写但却觉得没有实质性的内容可记录,本文为 [高性能MySQL] 的学习日志整理分享(感兴趣建议读原书). 优化应贯穿整个产品开发周期中,开发过程中考虑一些性能问题与影响,总比出问 ...

  8. 网站相关人员信息记录humans.txt

    前面的话 robots.txt文件告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取.而humans.txt文件则是为人类准备的,包含参加该网页设计和建立的相关人员的信息.本文将详细介绍humans.tx ...

  9. OpenCV 之 Mat 类

    以前看 OpenCV 的书,或者资料也好,遇到 Mat 类的介绍,一般都是匆匆带过,自以为已经很熟悉了,从来没有深入研究过. 结果前段时间面试了一家公司,被问到两个 Mat 的问题:一是,谈谈对 Ma ...

  10. 基于注解的Spring MVC的简单入门——简略版

    网上关于此教程各种版本,太多太多了,因为我之前没搭过框架,最近带着两个实习生,为了帮他们搭框架,我只好...惭愧啊...基本原理的话各位自己了解下,表示我自己从来没研究过Spring的源码,所以工作了 ...