Есть ли какое-то преимущество в использовании обфускации кода в проекте Xamarin, который выполняет компиляцию AOT - PullRequest
1 голос
/ 29 октября 2019

У нас есть решение Xamarin, в котором есть проекты Xamarin.Android и Xamarin.iOS. Мы компилируем приложения с помощью Ahead-of-time (AOT), поэтому код не может быть реверс-инжиниринг в исходный код C #.

В таком случае, есть ли какой-то код, который может быть реверс-инжиниринг изaot-скомпилированный apk, который был бы запутан, если бы код сначала запускался через обфускатор кода, такой как dotfuscator?

1 Ответ

3 голосов
/ 29 октября 2019

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

Я большезнакомы с тем, как приложения для iOS, созданные с использованием Swift или Objective-C, можно разбирать и анализировать, но я считаю, что они не слишком отличаются по сравнению с приложением Xamarin.iOS, поскольку оно скомпилировано в код ARM, что, безусловно, понимают многие инструменты, такие как IDA Pro,Бункер и т. Д.

Итак, чтобы ответить на ваш вопрос. Определенно имеет смысл запутать перед нативной компиляцией и, возможно, даже зашифровать строки открытого текста и т. Д.

Взгляните на следующую статью для глубокого погружения в то, как приложения iOS подвергаются обратному проектированию и подделке: Подделкаи обратный инжиниринг на iOS . Это дает вам действительно хорошее представление о том, как легко перевернуть незащищенное приложение при наличии правильных инструментов и знаний.

...