为啥在反编译我的应用程序时出现错误?

Posted

技术标签:

【中文标题】为啥在反编译我的应用程序时出现错误?【英文标题】:Why am I getting an error while decompiling my app?为什么在反编译我的应用程序时出现错误? 【发布时间】:2021-07-06 22:16:04 【问题描述】:

分发后,我解压我的 apk 文件并尝试反编译库

在 ILSpy 中我收到此错误:

// This file does not contain a managed assembly.

在 de4dot 中:

WARNING: The file isn't a .NET PE file

csproj 文件:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>false</DebugSymbols>
<DebugType>portable</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<androidManagedSymbols>true</AndroidManagedSymbols>
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
<BundleAssemblies>false</BundleAssemblies>
<AndroidUseAapt2>true</AndroidUseAapt2>
<AndroidDexTool>d8</AndroidDexTool>
<AndroidPackageFormat>apk</AndroidPackageFormat>
<AndroidCreatePackagePerAbi>false</AndroidCreatePackagePerAbi>
<AndroidSupportedAbis />

【问题讨论】:

这能回答你的问题吗? Decompile APK built with Xamarin @gunr2171 我的库不在so文件中 【参考方案1】:

这是由于 Xamarin.Android 更新

现在默认压缩托管程序集以用于发布配置构建,从而显着减小 APK 和 Android App Bundle 的大小。程序集在构建期间使用 LZ4 算法进行压缩,然后在应用启动期间在设备上解压缩。

对于一个小型 Xamarin.Forms 应用程序示例,这将 APK 大小从大约 23 兆字节减少到大约 17 兆字节,同时仅将显示应用程序首页的时间从大约 780 毫秒增加到大约 790 毫秒。

如果需要,可以通过在 Visual Studio 或其他文本编辑器中打开项目文件并将 .csproj 文件中的 AndroidEnableAssemblyCompression MSBuild 属性设置为 false 来禁用特定项目的新行为:

<PropertyGroup>
     <AndroidEnableAssemblyCompression>false</AndroidEnableAssemblyCompression>
</PropertyGroup>

来源:https://github.com/xamarin/xamarin-android/releases/tag/v11.0.0.3

【讨论】:

以上是关于为啥在反编译我的应用程序时出现错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在编译我的代码C(linux)时出现分段错误(核心转储)[关闭]

反编译apk时出现异常

为啥编译时出现cannot find lz错误,怎么解决

为啥当我的 heroku 应用程序崩溃时出现 mongodb 错误? (在本地工作就好了!)

为啥在我的程序中打开某些 wav 文件时出现此错误“EMCIDeviceError”

为啥在 Laravel 中保存数据时出现方法不允许错误?