C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
嗯,既然是客戶端應用,自然而然就需要一些防止源碼泄漏的手段.通過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開發可移植移動應用(1.入門與Xamarin.Forms頁面),附源碼
.NET Standard@Xamarin.Forms
C#使用Xamarin開發可移植移動應用(2.Xamarin.Forms布局,本篇很長,注意)附源碼
C#使用Xamarin開發可移植移動應用(3.Xamarin.Views控件)附源碼
C#使用Xamarin開發可移植移動應用(4.進階篇MVVM雙向綁定和命令綁定)附源碼
C#使用Xamarin開發可移植移動應用(5.進階篇顯示彈出窗口與通訊中心)附源碼
C#使用Xamarin開發可移植移動應用進階篇(6.使用渲染器針對單個平臺自定義控件),附源碼
C#使用Xamarin開發可移植移動應用進階篇(7.使用布局渲染器,修改默認布局),附源碼
C#使用Xamarin開發可移植移動應用進階篇(8.打包生成安卓APK并精簡大小),附源碼
原文地址:http://www.cnblogs.com/GuZhenYin/p/7463286.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET Core MVC – T
- 下一篇: Orleans解决并发之痛(一):单线程