Могу ли я защитить свое приложение с помощью компиляции AOT? - PullRequest
0 голосов
/ 02 августа 2020

Я хотел бы использовать компиляцию AOT для защиты моего кода, но согласно этому: https://docs.microsoft.com/uk-ua/xamarin/android/deploy-test/release-prep/?tabs=windows#aot полученный собственный код включается в APK вместе с некомпилированными сборками. Означает ли это, что включены как скомпилированная, так и некомпилированная версии, и AOT действительно не помогает при обфускации?

Ответы [ 2 ]

0 голосов
/ 09 августа 2020

Я использовал Hybrid AOT для удаления кода IL из сборок. NET. Вам необходимо вручную отредактировать Xamarim. Android .Common.Targets в C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ MSBuild \ Xamarin \ Android \

  <CilStrip
    Condition=" '$(AndroidAotMode)' == 'Hybrid' And '$(AotAssemblies)' == 'True' "
    AndroidAotMode="$(AndroidAotMode)"
    ToolPath="$(_MonoAndroidToolsDirectory)"
    ApkOutputPath="$(_BuildApkEmbedOutputs)"
    ResolvedAssemblies="@(_ShrunkAssemblies)">
  </CilStrip> 

И отредактируйте свой Android .csproj

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>false</DebugSymbols>
    <DebugType>none</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
    <AndroidManagedSymbols>true</AndroidManagedSymbols>
    <AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
    <AndroidLinkMode>SdkOnly</AndroidLinkMode>
    <EnableLLVM>false</EnableLLVM>
    <AotAssemblies>true</AotAssemblies>
    <AndroidAotMode>Hybrid</AndroidAotMode>
    <AndroidEnableProfiledAot>false</AndroidEnableProfiledAot>
    <AndroidAotAdditionalArguments>no-write-symbols,nodebug</AndroidAotAdditionalArguments>
  </PropertyGroup>

Источник: https://forums.xamarin.com/discussion/182826/hybrid-aot

0 голосов
/ 02 августа 2020

Полный AOT может сделать ваш APK намного больше, поэтому не уверен, стоит ли вам идти по этому пути только для целей обфускации.

Вы можете попробовать Dotfuscator, который специально разработан для этого

Visual Studio для Windows

Даже при отключенной отладке злоумышленники по-прежнему могут повторно упаковать приложение, добавляя или удаляя параметры конфигурации или разрешения. Это позволяет им перепроектировать, отлаживать или вмешиваться в приложение. Dotfuscator Community Edition (CE) может использоваться для обфускации управляемого кода и внедрения кода обнаружения состояния безопасности во время выполнения в приложение Xamarin. Android во время сборки, чтобы обнаруживать и реагировать, если приложение работает на корневом устройстве.

Dotfuscator CE входит в состав Visual Studio 2017. Чтобы использовать Dotfuscator, выберите Инструменты> Превентивная защита - Dotfuscator.

Чтобы настроить Dotfuscator CE, см. Использование Dotfuscator Community Edition с Xamarin. После настройки Dotfuscator CE будет автоматически защищать каждую созданную сборку.

Visual Studio for Ma c

Даже с отладкой отключено, злоумышленники по-прежнему могут повторно упаковать приложение, добавляя или удаляя параметры конфигурации или разрешения. Это позволяет им перепроектировать, отлаживать или вмешиваться в приложение. Хотя он не поддерживает Visual Studio для Ma c, вы можете использовать Dotfuscator Community Edition (CE) с Visual Studio для обфускации управляемого кода и внедрения кода обнаружения состояния безопасности во время выполнения в приложение Xamarin. Android во время сборки для обнаружения и ответить, если приложение запущено на корневом устройстве.

Чтобы настроить Dotfuscator CE, см. Использование Dotfuscator Community Edition с Xamarin. После настройки Dotfuscator CE автоматически защитит каждую созданную сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...