Xamarin Forms 的混淆器
Obfuscar for Xamarin Forms
我正在为 Mac(社区版)使用 Visual Studio 开发一个 Xamarin.Forms 应用程序。我可以使用 ILSpy
反编译 Android 应用程序的源代码
为了混淆源代码,我使用了Obfuscar and followed the steps in https://docs.obfuscar.com/tutorials/xamarin.html
- 下面是Xamarin.Android项目结构
- 下面是
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
中完成的
当项目在 Release
模式下构建、存档和反编译时,源代码仍然可以使用 ILSpy 以纯文本形式显示。
我需要帮助为 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>
奇怪的是,InPath
和 OutPath
在 Mac 上使用绝对路径而不是相对路径。我所做的唯一更改是 InPath
和 OutPath
使其工作。
我正在为 Mac(社区版)使用 Visual Studio 开发一个 Xamarin.Forms 应用程序。我可以使用 ILSpy
反编译 Android 应用程序的源代码为了混淆源代码,我使用了Obfuscar and followed the steps in https://docs.obfuscar.com/tutorials/xamarin.html
- 下面是Xamarin.Android项目结构
- 下面是
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 中完成的
当项目在 Release
模式下构建、存档和反编译时,源代码仍然可以使用 ILSpy 以纯文本形式显示。
我需要帮助为 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>
奇怪的是,InPath
和 OutPath
在 Mac 上使用绝对路径而不是相对路径。我所做的唯一更改是 InPath
和 OutPath
使其工作。