Polish Python Coders Group Forum

Wszystko o języku Python => Python od podstaw => Wątek zaczęty przez: Amakesh 12:48 18/09/14



Tytuł: Skrypt - problem z dekompilacją
Wiadomość wysłana przez: Amakesh 12:48 18/09/14
Witam! Jak zdekompilować plik .pyo żeby dostać się do kodu?
Próbowałam unpyc3.py, pyREtic, Easy Python Decompiler. Ten ostatni daje częściowo rade - częściowo bo w każdym z utworzonych plików .dis na końcu wyświetlonego kodu jest napis "decompyle incomplete". Proszę o pomoc


Tytuł: Odp: Skrypt - problem z dekompilacją
Wiadomość wysłana przez: Katharsis 14:55 18/09/14
Podeślij plik .pyo w załączniku posta.


Tytuł: Odp: Skrypt - problem z dekompilacją
Wiadomość wysłana przez: Amakesh 15:38 18/09/14
Niestety pliku .pyo bezpośrednio jako załącznik dodać nie mogę, więc go spakowałam.


Tytuł: Odp: Skrypt - problem z dekompilacją
Wiadomość wysłana przez: jell 16:15 18/09/14
Przydało by się nieco więcej plików...
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "T:\InGame\Gameplay\Scripts\Core\sims4\tuning\tunable.py", line 11, in <module>
ImportError: No module named 'sims4'

Mozesz je gdzies zalaczyc?

albo... zainstluj pythona3.3,
do katalogu w ktorym ten tunable.pyo sie znajduje sciagnij http://unpyc3.googlecode.com/svn/trunk/unpyc3.py, w tym katalogu uruchom sciezka\do\python3.3 -O (duze o), po czym:
import tunable
import unpyc3
print(unpyc3.decompile(tunable))



Tytuł: Odp: Skrypt - problem z dekompilacją
Wiadomość wysłana przez: Katharsis 16:34 18/09/14
@Amakesh

Wszystko wskazuje na to, że tunable.pyo pochodzi z gry The Sims 4, która w dość sporym zakresie wykorzystuje Pythona.

Poddawanie "inżynierii wstecznej" tego czy innego pliku z ich repozytorium byłoby niezgodne z prawem ;).

Ptaszki ćwierkają, że nie uda Ci się osiągnąć celu korzystając z ogólnodostępnych pythonowych "dekompilatorów".

Zastosowano tu niestandardowy magic number i opcode. Ale jak pokazuje praktyka (jedna (http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/12058-woot13-kholia.pdf), druga (https://www.bluecoat.com/security-blog/2014-06-10/snake-grass-python-based-malware-used-targeted-attacks) i trzecia (http://www.kelvinlomboy.com/a-walk-through-on-decompiling-a-malware-packed-with-py2exe)), przy odpowiednim wysiłku wszystko jest osiągalne.


Tytuł: Odp: Skrypt - problem z dekompilacją
Wiadomość wysłana przez: Katharsis 23:27 19/09/14
@Amakesh

Cofam tę część swojej wypowiedzi:

Cytuj
Zastosowano tu niestandardowy magic number i opcode.

Kod skompilowano przy użyciu Pythona 3.3a4, którego magic number oznaczony jest wartością 3230.

Pobierz, rozpakuj i skompiluj Python 3.3.5 a następnie użyj tej wersji unpyc3.py (http://pastebin.com/FX24XVnN).

Nie ma za co 8).