CryptoObfuscator + Android缺少一个pdb文件

时间:2016-10-18 19:06:23

标签: android xamarin xamarin.forms obfuscation crypto-obfuscator

我尝试使用CryptoObfuscator来模糊我的Android应用,但它不会生成所有的pdb文件。

我的Xamarin.Forms解决方案有11个项目,其中7个应该被混淆。我禁用了大多数CryptoObfuscator功能只是为了测试它。我的.obproj文件包含所有dll的这些设置:

  <Assembly Load="true" Path=".\bin\Release\RoyalMobileApps.XF.dll" XapEntryName="" KeyFilePath="" KeyFileContainsPublicKeyOnly="False" CertFilePath="" TimeStampURL="" Rfc3161TimestampURL="False" SHA256SigningAlgorithm="False" Embed="True" AddExceptionReporting="False" PfxPassword="" PfxPasswordCert="" IsWinRTAssembly="False">
    <ObfuscationSettings EncryptStrings="True" EncryptMethods="False" EncryptConstants="False" SuppressReflector="False" ReduceMetaData="False" ObfuscationDisposition="1" FlowObfuscation="2" CodeMasking="0" SuppressILDASM="True" SuppressReflection="False" CombineResources="True" EncryptResources="True" CompressResources="True" MarkAsSealed="False" EnableTamperDetection="False" EnableAntiDebugging="False" SymbolRenaming="True" HideExternalCalls="False" HideInternalCalls="False" GeneratePdbFile="True" ObfuscatePdbFileNames="True" IncludeLocalVariablesInPdbFile="False" Encrypt="False" Compress="False" MSBuild="False" ObfuscatedNamespace="A" RetainNamespace="False" ModuleInitializationMethod="" LicensingMerge="False" RemoveConstants="False" ProcessSatelliteAssemblies="True">
      <Watermarks Watermark0="" Watermark1="" Watermark2="" Watermark3="" Watermark4="" Watermark5="" Watermark6="" Watermark7="" Watermark8="" Watermark9="" />
    </ObfuscationSettings>
  </Assembly>

如您所见,我为所有7个项目设置了GeneratePdbFile =“True”。我在构建过程中集成了co.exe,它声称已成功运行。它产生7个dll但只有6个pdbs。我上面粘贴的主PCL项目的pdb文件丢失,因此Xamarins链接器失败,我无法构建apk。

如何让CryptoObfuscator创建所有pdbs?或者我可以在没有它们的情况下生成apk吗?

不幸的是,CryptoObfuscator支持没有回复我的电子邮件,我找不到其他有类似问题的人。

1 个答案:

答案 0 :(得分:0)

我完全禁用了Pdbs。我切换到发布模式并打开了应该被混淆的每个项目的属性。在 Build / Advanced 中,您可以将调试信息设置为。 在Crypto Obfuscator中,我禁用了输出设置 / 为程序集生成新的Pdb文件。 然后没有创建Pdb文件。在构建解决方案时我收到了警告,但可以忽略它们。

这个答案实际上应归功于@JonDouglas,但他只写了评论。

不幸的是我不得不禁用重命名符号。但这是我想使用Crypto Obfuscator的主要原因。因为我无法在ConfuserEx中运行名称保护。因为它不适用于任何一个工具和Crypto Obfuscators支持仍然没有回答我的电子邮件我回到ConfuserEx。这是免费的,不能用de4dot进行反混淆。