zoukankan      html  css  js  c++  java
  • C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)

    前言

    系列目录

    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:VS2017Common7IDEExtensionsPreEmptiveSolutionsDotfuscatorCEdotfuscator.exe</DotfuscatorXamarinCliPath>
    <DotfuscatorXamarinConfigFileName>DotfuscatorConfig.xml</DotfuscatorXamarinConfigFileName>
    <DotfuscatorXamarinGenerateNewConfigFile>true</DotfuscatorXamarinGenerateNewConfigFile>

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

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

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

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

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

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

    <DotfuscatorXamarinEnabled>true</DotfuscatorXamarinEnabled>

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

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

    然后存档发布.

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

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

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

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

    3.反编译混淆后的Dll

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

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

    写在最后

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

  • 相关阅读:
    随机森林算法参数调优
    BAYES和朴素BAYES
    阿里云 金融接口 token PHP
    PHP mysql 按时间分组 表格table 跨度 rowspan
    MySql按周,按月,按日分组统计数据
    PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
    thinkphp5 tp5 会话控制 session 登录 退出 检查检验登录 判断是否应该跳转到上次url
    微信 模板消息
    php 腾讯 地图 api 计算 坐标 两点 距离 微信 网页 WebService API
    php添加http头禁止浏览器缓存
  • 原文地址:https://www.cnblogs.com/GuZhenYin/p/7463286.html
Copyright © 2011-2022 走看看