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

前言

源码地址: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#项目也是适用的.嗯..大家可以随意试试.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师历程

Android APK反编译就这么简单 详解(附图)

在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界...

1651
来自专栏漏斗社区

Android逆向之动态分析so篇

本期,斗哥将给大家带来Android逆向的动态分析,简述Android动态分析环境配置与IDA调试so文件。

1043
来自专栏哎_小羊

Git Review + Gerrit 安装及使用完成 Code-Review

目录 Code Review 介绍 Gerrit 介绍 环境、软件准备 Git-Review 安装 Gerrit 安装 简单的 Demo 示例 1、Code R...

8039
来自专栏ionic3+

各平台安装Composer

要部署一个网站,主页空间不是云主机,只有Apache,即只支持静态Html或Php。服务上,Node或Spring boot是不能用了,So sad,只好找回老...

883
来自专栏林德熙的博客

WPF 调试 获得追踪输出

在 WPF 开发中,如果把一个程序发布出去,但是发现有些地方诡异,除了看日志外,如果需要拿到程序实时的输出,可以使用跟踪输出 ,本文告诉大家如何拿到 WPF 的...

971
来自专栏木子昭的博客

webpack手动配置React开发环境

1383
来自专栏晓晨的专栏

VS2015 搭建 Asp.net core 开发环境

1305
来自专栏挖坑填坑

angular编译出错解决办法Angular Compiler was detected but it was an instance of the wrong class.

824
来自专栏张善友的专栏

微软.NET Core RC2正式发布,横跨所有平台

.NET官方博客宣布了《Announcing .NET Core RC2 and .NET Core SDK Preview 1》,正式如期发布了.NET Co...

1915
来自专栏小古哥的博客园

gulp的安装和使用

安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务 1、去nodejs官网安装n...

2745

扫码关注云+社区