I'm new to python, and I'm evaluating developing desktop programs with Python + PySide, and found that cx_freeze works very good in converting my python code into executables, and it's cross-platform.
My question is, can someone else decompile an EXE generated by cx_freeze back to fully readable code , as if my original source code?
Note: I'm not worried about someone cracking my program, but just don't want someone else can take my code and developed base on it.
Thanks.
It seems that the current accepted answer is no longer true.
Here is how to recover the original source code from a project frozen with cx_freeze
.
Note: it is done here on a "Hello world" project, but, using the same method, I've been able to decompile a 1000+ lines-of-code source code from a project of mine frozen with cx_freeze
, and recover nearly the original source code!
Create a test.py
file containing
import time
print('hello')
time.sleep(2)
print('world')
Then create the executable with
cxfreeze test.py --target-name=test.exe
Then usually you'll distribute this to the final users:
Now let's try to reverse engineer this!
Open dist/lib/library.zip
and extract the file test__main__.pyc
.
import uncompyle6
with open('test_main_reverse_eng.py', 'w') as f:
uncompyle6.decompile_file('test__main__.pyc', f)
Here is the original source code!
# uncompyle6 version 3.7.1
# Python bytecode 3.7 (3394)
# Decompiled from: Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: test.py
# Compiled at: 2020-06-16 21:02:17
# Size of source mod 2**32: 58 bytes
import time
print('hello')
time.sleep(2)
print('world')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With