如何模糊Xamarin生成的.apk中的DLL?

时间:2017-03-10 10:22:24

标签: c# xamarin msbuild xamarin.android xamarin.forms

我需要将我的代码混淆为公司政策的一部分。我正在使用MSBuild来自动执行此过程:

<Exec Command="$(MsBuildPath) /p:Configuration=Release /t:Rebuild;SignAndroidPackage &quot;$(CodeRootPath)\Mfx.UI.Droid\Mfx.UI.Droid.csproj&quot; > &quot;$(OutputPath)\3_BuildApkLog.txt&quot;" />

是构建解决方案并创建apk的相关行。我在后期构建事件中进行了混淆:

COPY $(TargetDir)*.* $(TargetDir)..\..\..\..\Obfuscation\workbench "C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe" "$(TargetDir)..\..\..\..\Obfuscation\Capture.babel"

将构建文件夹的输出复制到另一个文件夹并调用我的babel项目,该项目将模糊的DLL输出到原始构建文件夹。批处理文件完成后,bin \ Release \中的DLL都被混淆了,但是当我反编译我的APK时,其中的DLL不会被混淆。

有没有办法在生成APK后对DLL进行模糊处理,或者是否有更好的时间进行模糊处理?

1 个答案:

答案 0 :(得分:3)

除了使用混淆器,您还可以:

  • 使用Android的AOT编译,删除IL代码并替换为本机代码,只保留元数据。这很难反编译。

  • 在本机代码中嵌入程序集,这使得访问IL变得更加困难。