Zaciemnianie kodu bajtowego Pythona poprzez mutację interpretera

W rzeczywistości Dropbox sprawił, że było bardzo dobrze, byli w stanie zabezpieczyć swoją aplikację komputerową wykonaną w Pythonie; Sprawdziłem to bardzo często, ale nie ma lepszego rozwiązania niż zaciemnianie, co nie jest zbyt bezpiecznym sposobem i skończy się na tym, że zobaczysz swój kod przesłany gdzieś.

Słuchałem sesji stworzonej przezGiovanni Bajo (założyciel PyInstaller), powiedział, że Dropbox to robi:

Szyfrowanie Bytecode przez rekompilację interpretera CPythona i przez to standardowy interpreter CPython nie będzie w stanie go uruchomić, tylko rekompilowany interpreter cpythona.Wszystko, co musisz zrobić, to przetasować liczby poniżejdefine loadup 8.

Nigdy nie przeglądałem kodu źródłowego Pythona, więc nie twierdzę, że w pełni rozumiem powyższe słowa.

Muszę usłyszeć głos ekspertów: jak to zrobić? A jeśli po rekompilacji będę w stanie spakować moją aplikację za pomocą dostępnych narzędzi, takich jak PyInstaller?

Aktualizacja:

Zrobiłem kilka badań dotyczących sposobu, w jaki Dropbox wykonuje ten rodzaj zaciemniania / mutacji, i znalazłem to:

WedługHagen Fritsch, robią to w dwóch etapach:

Korzystają z szyfru TEA wraz z RNG rozsianym przez pewne wartości w obiekcie kodu każdego modułu Pythona. Odpowiednio dostosowali interpreter, aby go poprawił

a) Odszyfrowuje moduły i

b) Zapobiega dostępowi do odszyfrowanych obiektów kodu.

Byłaby to prosta ścieżka, pozwalająca po prostu odszyfrować wszystko w Dropbox i zrzucić moduły za pomocą wbudowanego serwera Marshall.

Inną używaną sztuczką jest ręczne kodowanie kodów. Niestety można to było naprawić tylko półautomatycznie, więc ich monoalphabetyczny szyfr zastępczy okazał się dość skuteczny pod względem wygranej.

Nadal chcę więcej informacji na temat tego, jak można to zrobić, a nawet więcej, nie wiem, w jaki sposób deszyfrowanie ma miejsce w tym procesie ... Chcę tu głosu wszystkich ekspertów ... zwykłych facetów, gdzie jesteś.

questionAnswers(1)

yourAnswerToTheQuestion