【问题标题】:How do I obfuscate DLLs in a .apk generated by Xamarin?如何混淆 Xamarin 生成的 .apk 中的 DLL?
【发布时间】:2017-03-10 10:22:24
【问题描述】:

作为公司政策的一部分,我需要混淆我的代码。我正在使用 MSBuild 来自动化这个过程:

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

是构建解决方案并创建 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 进行混淆,或者是否有更好的时间进行混淆?

【问题讨论】:

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


【解决方案1】:

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

  • 对 Android 使用 AOT 编译,其中 IL 代码被删除并替换为本机代码,只保留元数据。这明显更难反编译。

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

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 2013-07-20
    • 2019-11-23
    • 2014-05-06
    • 2014-10-16
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多