Как я могу запретить мой IPA-файл приложения от обратной инженерии? [Дубликат]

Кажется, что все вышеперечисленные ответы решают проблему. Еще одна точка: вместо pd.set_option('option_name') вы можете использовать (автозаполнение)

pd.options.display.width = None

См. Pandas doc: Параметры и настройки:

У параметров есть полное «неточное», нечувствительное к регистру имя (например, display.max_rows). Вы можете получить / установить параметры напрямую в качестве атрибутов атрибута верхнего уровня options:

In [1]: import pandas as pd

In [2]: pd.options.display.max_rows
Out[2]: 15

In [3]: pd.options.display.max_rows = 999

In [4]: pd.options.display.max_rows
Out[4]: 999

[...]

для max_... params:

max_rows и max_columns используются в __repr__() для определения того, используется ли to_string() или info() для рендеринга объекта в строку. В случае, если python / IPython запущен в терминале, это может быть установлено на 0, а pandas будет правильно автоматически определять ширину терминала и свопировать в меньший формат, если все столбцы не поместились бы вертикально. Ноутбук IPython, qtconsole IPython или IDLE не работают в терминале и, следовательно, невозможно выполнить правильное автоматическое обнаружение. Значение «None» означает неограниченное количество. [подчеркивание не в оригинале]

для параметра width:

Ширина отображения в символах. В случае, если python / IPython запущен в терминале, это может быть установлено на None, а pandas будет правильно автоматически определять ширину. Обратите внимание, что IPython-ноутбук, qtconsole IPython или IDLE не запускаются в терминале и, следовательно, невозможно правильно определить ширину.

28
задан Vin 31 October 2011 в 14:08
поделиться

2 ответа

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

Что касается вашего вопроса: небезопасно предположить, что жестко закодированный URL-адрес, даже если он запутан за пределами веры, не может быть очищен от вашего продукта. Всегда разрабатывайте приложения таким образом, чтобы безопасность пользовательских данных гарантировалась (насколько это возможно), даже если встроенные ресурсы были скомпрометированы. Если знание только одного URL представляет угрозу безопасности, то ваш подход и API ваших клиентов по своей сути небезопасны. Помните, что такая информация могла быть захвачена атакой «человек-в-середине» (и другими способами атаки).

Избегайте безопасности по неизвестности. Храните конфиденциальные данные только на диске, если это необходимо. Как правило, не допускается хранение ПИН-кода / TAN.

Некоторые мысли, которые могут (или не могут) убедить вашего клиента в том, что ваше приложение настолько безопасно, насколько это возможно:

  • До тех пор, пока приложение запускается на устройстве без взлома, маловероятно, что злоумышленник, даже со знанием внутренних приложений вашего приложения, может получить какие-либо пользовательские данные, поскольку iPhone обычно не дает возможности вмешиваться ваше приложение
  • Если злоумышленник может получить данные ваших пользователей и при условии, что вы защищаете эти данные всеми доступными средствами iOS (-> keychain -> crypto chip -> ...) то это не ваша вина. Это означает, что устройство либо взломан, либо есть уязвимости для самой системы, которые были использованы, вы просто ничего не можете сделать с любой возможностью.
  • Невозможно предотвратить обратное проектирование вашего приложения. Даже если вы приложили больше усилий к обфускации, атакующий с сильной мотивацией все равно сможет получить то, что он хочет. Ваш клиент должен привыкнуть к этому, поскольку это факт.
  • Другие платформы страдают от подобных уязвимостей, однако на iPhone по крайней мере у вас есть несколько закрытая среда и сниженный риск нападения с помощью троянов и например.
  • Правительства и охранные фирмы получают взломанные на регулярной основе, хотя теперь им нужно как защитить себя. Это означает, что жизнь по своей природе небезопасна, справляется с ней.
10
ответ дан Toastor 5 September 2018 в 10:36
поделиться

Недавно я исследовал это, и я нашел эту статью полезной, особенно цитированную часть:

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

Безопасность в iOS: защита содержимого файла .ipa от Stoyan Stoyanov

1
ответ дан Asfand Shabbir 5 September 2018 в 10:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: