Как запутать приложение xamarin на VS 2019 - PullRequest
1 голос
/ 28 января 2020

Мне нужно защитить бизнес-логику c в приложении, и она создается с помощью форм xamarin. Я ищу информацию на форумах и здесь о Babel и ConfuserEx, но я не понимаю, как это работает.

Case Babel

Я установил демонстрационный SDK и обновил его. путь к переменным среды. В Android Project я добавил следующие строки, как я видел в примерах и книге « Xamarin Mobile Development для Android Cookbook »

<UsingTask TaskName="Babel" AssemblyName="Babel.Build, Version=9.3.3.0, Culture=neutral, PublicKeyToken=138d17b5bd621ab7" />
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
    <Babel InputFile="$(TargetPath)" OutputFile="$(TargetPath)" 
           VerboseLevel="5" 
           ObfuscateTypes="true" 
           ObfuscateEvents="true" 
           ObfuscateMethods="true" 
           ObfuscateProperties="true" 
           ObfuscateFields="true" 
           VirtualFunctions="true" 
           FlattenNamespaces="false" 
           UnicodeNormalization="false" 
           SuppressIldasm="true" 
           StringEncryption="xor" 
           ResourceEncryption="false" 
           ValueEncryption="false" 
           DynamicProxy="false" 
           ControlFlowObfuscation="goto=on" 
           ILIterations="5" />
    </Target>

Компиляция хорошая, но Я вижу dll с помощью инструмента ILSpy и вижу поток, методы, переменные и т. Д. *

Case ConfuserEx

Я установил VS-расширение ConfuserEx и попытался действовать на обычном проекте, и он запутывается, но когда я архивирую, чтобы сгенерировать apk, он не запутывается. Я попытался сделать на Android Project вместо обычного Project, но он не работает. Не могли бы вы дать мне несколько советов, чтобы запутать приложение? Я хочу сделать это с Android, iOS и приложением UWP. Потому что по умолчанию uwp, droid и ios легко сделать реверс-инжинирингом, не так ли?

Ответы [ 2 ]

1 голос
/ 29 января 2020

Я использую Babel с моими приложениями Xamarin. Android за последние 3 года. Это работает очень хорошо. Если у вас возникли проблемы, свяжитесь с Альберто в Бабеле. Он оказывает действительно большую поддержку. Большинство проблем связано с тем, что процесс сборки Xamarin может изменяться от выпуска к выпуску, и, следовательно, ваша задача Babel может потребовать внесения изменений, чтобы учесть эти изменения

1 голос
/ 28 января 2020

Потому что по умолчанию, uwp, droid и ios легко сделать реверс-инжинирингом, не так ли?

Предполагая, что это вопрос, ответ таков, что вы в основном ошибаетесь .

Скомпилированные сборки AOT нелегко перепроектировать, и AOT обязателен для UWP и iOS, в то время как на Android частичный AOT теперь включен по умолчанию, и полный AOT также может быть включен на VS Enterprise.

Говоря о том, что нет ничего, что не может быть реверс-инжиниринг, и вы все равно можете добавить запутывание в верхней части компиляции AOT, чтобы сделать его еще более жестким, просто нет встроенного решения (и, насколько я знаю, также нет бесплатного решения), поэтому вы можете выбрать то, что вам нравится, такие рекомендации здесь не разрешены.

...