Может ли код Python (скажем, если я использовал djangno) быть запутан до того же уровня, что и c # / java? - PullRequest
0 голосов
/ 28 апреля 2010

Если бы я запутывал код на python, обеспечивал ли он тот же уровень безопасности, что и c # / java obfuscating?

Т.е. это немного усложняет ситуацию, но на самом деле вы все равно можете провести реинжиниринг, если действительно хотите, это просто немного загадочно.

Ответы [ 4 ]

7 голосов
/ 28 апреля 2010

Запутывание - это форма безопасности через мрак . Весь запутанный код может, если злоумышленник определен достаточно, быть полностью измененным. Исключений нет.

0 голосов
/ 28 апреля 2010

Запутывание не обеспечивает безопасность. То, что вы описываете, не является безопасностью.

Если вы распространяете свою программу на Python, или Java-программу, или C-программу, это уязвимо. То, что защищает вас от людей, использующих то, что вы несправедливо распространили, - это закон, а люди - не придурки.

Запутывание не только не обеспечивает безопасности, но и может нарушить рабочий код, снизить производительность и испортить документацию.

0 голосов
/ 28 апреля 2010

Почему бы вам не написать что-нибудь и не проверить байт-код? Сделайте некоторые функции, которые зависят от случайных чисел, но почти полностью невозможно выполнить. Таким образом, компилятор не может оптимизировать, и вы увидите больше «мусора».

def myfunc(num):
    if (num > 1):
        return 1
    else:
        return 0

>>> dis.dis(myfunc)
  2           0 LOAD_FAST                0 (num)
              3 LOAD_CONST               1 (1)
              6 COMPARE_OP               4 (>)
              9 JUMP_IF_FALSE            5 (to 17)
             12 POP_TOP

  3          13 LOAD_CONST               1 (1)
             16 RETURN_VALUE
        >>   17 POP_TOP

  5          18 LOAD_CONST               2 (0)
             21 RETURN_VALUE
             22 LOAD_CONST               0 (None)
             25 RETURN_VALUE
0 голосов
/ 28 апреля 2010

Код Python компилируется в файлы байт-кода (.pyc) по мере его импорта. Вы можете распространять эти файлы .pyc вместо файлов исходного кода .py, и интерпретатор Python должен иметь возможность их загружать. Хотя байт-код Python более «запутан», чем исходный код Python, все же относительно легко разбирать байт-код Python, но, опять же, разобрать байт-код Java тоже не так сложно.

...