gpt4 book ai didi

xamarin - Xamarin Forms 的混淆器

转载 作者:行者123 更新时间:2023-12-05 06:50:44 26 4
gpt4 key购买 nike

我正在使用 Visual Studio for Mac(社区版)开发 Xamarin.Forms 应用。我可以使用 ILSpy 反编译 Android 应用程序的源代码

为了混淆源代码,我使用了Obfuscar并按照 https://docs.obfuscar.com/tutorials/xamarin.html 中的步骤操作

  • Xamarin.Android 项目结构如下

enter image description here

  • 下面是obfuscar.xml中的配置
    <Obfuscator>
<Var name="RenameProperties" value="true" />
<Var name="RenameEvents" value="true" />
<Var name="RenameFields" value="true" />
<Var name="KeepPublicApi" value="false" />
<Var name="HidePrivateApi" value="true" />
<Var name="HideStrings" value="true" />
<Var name="UseUnicodeNames" value="true" />
<Var name="OptimizeMethods" value="true" />
<Var name="InPath" value="./bin/Release" />
<Var name="OutPath" value="./bin/Release/Obfuscator_Output" />
<Module file="$(InPath)/Sample.dll" />
</Obfuscator>
  • 以下更改在 Android.csproj 中完成

enter image description here

当项目以Release 模式构建、存档和反编译时,使用 ILSpy,源代码仍然以纯文本形式可见。

enter image description here

我需要帮助为 Xamarin.Forms 项目正确配置混淆器

最佳答案

以下 Obfuscar 配置一切正常

<Obfuscator>
<Var name="RenameProperties" value="true" />
<Var name="RenameEvents" value="true" />
<Var name="RenameFields" value="true" />
<Var name="KeepPublicApi" value="false" />
<Var name="HidePrivateApi" value="true" />
<Var name="HideStrings" value="true" />
<Var name="UseUnicodeNames" value="true" />
<Var name="OptimizeMethods" value="true" />
<Var name="InPath" value="/Users/sahil.khanna/path_to_xamarin_project/Sample.Android/bin/Release" />
<Var name="OutPath" value="$(InPath)/Obfuscator_Output" />
<Module file="$(InPath)/Sample.dll" />
</Obfuscator>

奇怪的是,InPathOutPath 在 Mac 上使用绝对路径而不是相对路径。我所做的唯一更改是在 InPathOutPath 中使其工作。

关于xamarin - Xamarin Forms 的混淆器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66349309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com