1

我尝试使用 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 个 pdb。我在上面粘贴的主 PCL 项目的 pdb 文件丢失,因此 Xamarins 链接器失败,我无法构建 apk。

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

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

4

1 回答 1

0

我通过完全禁用 Pdbs 让它工作。我切换到发布模式并打开了每个应该被混淆的项目的属性。在Build / Advanced中,您可以将Debug Info设置为None。在 Crypto Obfuscator 中,我禁用了Output Settings / Generate New Pdb File For Assembly。然后没有创建 Pdb 文件。我在构建解决方案时收到了警告,但可以忽略它们。

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

不幸的是,我也不得不禁用重命名符号。但这是我想使用 Crypto Obfuscator 的主要原因。因为我无法在 ConfuserEx 中运行名称保护。因此,由于它在这两种工具中都不起作用,并且 Crypto Obfuscators 支持仍然没有回复我的电子邮件,所以我回到了 ConfuserEx。这是免费的,不能用 de4dot 去混淆。

于 2016-11-02T15:50:45.180 回答