My own implementation of PyFuck inspired by JSFuck.
Its still struggeling with larger scripts due to the recursion limit, but its getting there.
Still trying to improve it.
A good start is to run the script on itself, and run the encoded version.
Code like
print('hi')
will be encoded to
s=eval("chr(eval('(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))'))+str(chr)[-((int((str(len([[],[]]))[+(+all([[]]))]))))]+chr(eval('(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))'))+str(eval)[(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))]+chr(eval('(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))'))+chr(eval('(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))+(int(str(len(str(eval)))[-+all([])]))'))+str(str)[(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))]+str(chr)[-((int((str(len([[],[],[]]))))))]+chr(eval('(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))+(int((str(len([[],[],[]])))))'))+str(str)[(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))]+chr(eval('(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))+(+all([]))'))");exec(s)
and can be run using python
example:
python puck.py puck.py
a file called pcuked_puck.py
will be created, you can run it aswell:
python pucked_puck.py somescript.py