Hyperion is the most powerful fully Python obfuscator for Python scripts,
developped by billythegoat356 (me) and BlueRed.
It allows you to obfuscate your script with more than 10 layers, while keeping it
very compact (one file) and executable on any os/python version.
You can also use the web version of Hyperion.
In order for the program to work, you have to install these ressources:
- Python3
pip install -U -r requirements.txt
Before:
print("discord.gg/plague")
Obfuscated:
frombuiltinsimport*frommathimportprodasPower__obfuscator__='Hyperion'__authors__= ('billythegoat356', 'BlueRed')
__github__='https://github.com/billythegoat356/Hyperion'__discord__='https://discord.gg/plague'__license__='EPL-2.0'__code__='print("Hello world!")'_while, Product, _builtins, _power, Add, Builtins, _floor=exec, str, tuple, map, ord, globals, typeclass_cube:
def__init__(self, _theory):
self._round=Power((_theory, 22218))
self.Substract(Negative=-35664)
defSubstract(self, Negative=type):
# sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handlerself._round*=42735*Negativetry:
(((_power, Product), _power) for_powerin (Frame, Product, Product))
exceptAttributeError:
(((Frame, Product, Product), _while) for_whilein {_power: _builtins})
except:
_floor(39057*-65432) ==strdef_substract(self, Divide=-59260):
# sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handlerDivide+=74763+48444self._hypothesis!=Nonetry:
((Frame, Product, Product) or_builtinsif (Frame, Product, Product) and_builtinselse ... or (_builtins, (Frame, Product, Product)))
exceptAssertionError:
(((Frame, Product, Product), Product) forProductin {_power: _builtins})
except:
_floor(7046+-91937) ==FalsedefFloor(System=str):
returnBuiltins()[System]
def_stackoverflow(_memoryaccess=-71760/48901, _run=type, _statistics=Builtins):
# sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handler_statistics()[_memoryaccess] =_runtry:
((Add, (Frame, Product, Product)) forAddin (_power, Product) ifBuiltins==_power)
exceptOSError:
(Frame, Product, Product) ifProduct==Frameelse (_builtins, Product) !=_whileexcept:
_floor(-67745/-55149) ==booldefexecute(code=str):
return_while(Product(_builtins(_power(Add, code))))
@propertydef_hypothesis(self):
self.Round='<__main__.Substract object at 0x000008890BE14953>'return (self.Round, _cube._hypothesis)
if__name__=='__main__':
try:
_cube.execute(code=__code__)
Ceil=_cube(_theory=95957/-65872)
_cube(_theory=99728+40750).Substract(Negative=Ceil._round+3642) ;_cube._stackoverflow(_memoryaccess='WWXXXWXWWXWXXXWXWWWWWWXXX',_run=b'x\x9c\xe5\x19ko\xe28\xf0{\x7f\x05\xc7\x97$\xea+8O\x90\xfa\xe5\xc4\x9d\x0eD\xcbi{\xba\xf6\xd4\xadP \xa15\x17b\x14\xc2.\xfd\xf77c;$\x05\x12\x02\x9b\xbd]\xa91c\x8f\x1f\x99\xd8\xe3\xf1<L\x12\xbfu\xce\x1a\xf0\xd0\xa9\xcaK|F#6\x9e\xae\x96\x13/a\xf1h\xd4\xf8\xe5\xa6\xf9\xc7\xdb"\x88)\x8b\x9a\r\x16\xe7\x86y\xab\xe4\x95\xc5K>Fm\x8ei\x18\xbe%\xaf\xc1\x0b\xf3\x12\xc3\xb2\x9b\x17\xcd_\xc3U\xf0)\xf0\x9b\xda\xbb\xb7^h\xf2\xba\x1a\x0b\xc2\xafI\xb2Xv\xae\xafE\xdb\xd5\x84\xcd\xaf\xb7\xc8\\\x17|\xdb\xa7\xcb\t\x8b\xfd\xf7dd\xe3\xd5\xcb\xcb\xf5"\xf4^V\xc1\xd6K!\x9d\x04\xd12\x10/\xfd\xf6\xe7\xe0\x92\\\xe9[C&\xcc\x17\xfd\xca"\xa6Q\xa26\xff\x08\xc2\x905\xbe\xb28\xf4\x7fij\xca\x99\xd6\xd9\x8c\xc6~e\xf9/\xf5\x15\xed,XO\x82E"\x99\x19-V\xf0\xe6\'\xb6\x0c\x96\r/\x0e\x1aq\xe0\x7f\x8e\xfe\xa6,\x0c\x12\xd10\x06\xce|\x8e\xfea+^\xf3\x1aH\xe4st\xc7\xc6\xcc\x7fk\x84\xf4_x\xef\x8d\xad\x9a\xda\x99\x98\x14\x9d/X\x9c\x8cF\xf0\xb5\xb7\xa5\xa2]\x05k\x9a\xa8\xdaY\xc8&^\xb8T\xb5\'\x85u\xbb\xc3\xe1\xb0;d\x0cr\xc8\xb0\xaa<\xdf\xbc\x84l\x0c#\xce\xf6u\xe3k\xfd\xc1`\xd0\x83\xa7?\xe8\r\xfaP\x0e\x06}@{\x83\x9e\xf2\xd4\xe9\x9c_\x9e_\xaa\x97\xeayK\xd3\x9e\x81T\x90xI\x12\x17\x92\x02\x1a@b\x80$\x80f\x1fsN{\x97\x92O\x8b\xa9<<<<"<>\xf0\xf4\x88(\xacC,\xf4l_/\xbe\x15\xcd\xa3h\x8e\x80i\xbeA#x3\xe3]\xf17\x1f\x1f\x1f%MNQ<\x0f\xf0r\x11]U\x19\xafh\x98\xd0\x08\xf7\xe2\x8b\x17\x173x\xc8th\xc1V\x1d0x\x86\xba\xae\x03\xe5\x1er\xb9\xdf\xe7\x1cJ\x99\x0f\xac\x1b\xf4\xd5\xe2o.#\x9a\x84t5\xde\xe6\xa8v!\xde\x05\x96\xf7%\xfb\x07b7N!\xa6=\xd5J\xed\x8aF~\xb0V\x95`\x19z\xbf\xeft?k\x85\x9c\xa3\x94\xce(\rg\xf0\x9b\xcd\x10f\xc06E\xb9\x9a1\x1a\x15\nB\xb7\xcb u\x19Pc\x1c\x05\xa2@\xb6\xcb>$\xcbW\xf1_\xfb8^ \xef\\\\AZQPu.\xa9\x8c\xe9\x1fUZC\xba\x98\xb3\xc9^\xee\x15\x88\xde=\xb9\'\x84\xdccq\x7f\xcf\x81\x17\xe4#\xb2/\xf4\xbe\x04GJ^\x17\x0f\xac8\xb7]T\x07\xf8C\xfc#\xb2/N\x96\xc7ro\xc8\xbaCT{\xc0\xbc.\xf2\x91[\xff\x0f\xc7\xb8\xc4c\xe1\xf4\x18#\xd3\xeb\x85\xf0\x0b{\x9b\x14\xf6>"\xdfB\xc6v{\x0fX\x8a\xa1ti\xb8\x87#L\x86\xce\xd1\x13\x19H\xe9d\xe9E\xb4\x1e\x06\x16\x12;\x89\x81\xc5\xd4R\x06\xbeMi\xb8\x0e^\xa3\xd5\x11\xc2W\xccAu\xac\x98\x81\xe9\xf3\x14H,\xd8$?\x07\xb9\x1c<Q?\xc0\xe0EU\xdci\xb2g"\x1fO\xac\'\xc1z\xaf\x19\xfaI6\x04\xf4UD/\x00\xe2\xc5\x05N\xb5\x91\xc4l1\xa7\x8dta\x8d9\x8b\xdfi\xb3"\x17C-\x9d\xb9a[S\x83\xe4\xc0\xcd\x81\t\xe0\x901q\x89\x7fp\x9cM\xda\x87\xd6\xa4ie\xda\x16\xf7\x167V\x04\x88\xb8\xbd\x86\xa0.\x8a\xc6\x03kjX\xbeN|\xbe\xbcV\xb5\xe9?\x17N\xff+\x7f\xd6\x90x\xb6\x16\xbf\xaf\xb0\x80\x12=\xc9\xb7\xb7\x86U\xb4`\x03\x10\x1c\xb9\x19\xa6\xdc$\x1d\xc0\x020\x00\xdar#\xab\x8cu\xabr\xa3\xc8\xdf\xe5J\x04\xb7\x12\xcf\xac\xbc=\xe8\xf5\xcb\x99\xb1} O\xe4\x05\x17F)\x98\xb6\\\x93.\xd7L\xe4\xbau\xc9\x8bCcm\xce\xb7\xaa\xbc(^\x1a6\xf2\x96\xb4\xeb\xe1\xa1\x86\x95Z\xb9\x99\x1b\xb9\xdd3\xe5*\xdb\xb9\xe3[el\xc5#\xfc|\x13z\xf3\xb1\xef5\xc4\x1a\xa5\x08`\xa5S\xc8\x82\x12\xe6\x94+\xd6\x89\xe9\x01\xb4y\xd9\x86\xe4\xc9r"1\x91OD\xdba+\'g\xce\x03\t\xee\x10K\x7f\xb8\xfe\x99[\x06&\x90"\x9e\xa7eVC\xa8<\xdf\xbb\xdb\xdb;\x00\xccEy{\x87\r\'\xcdZ\xc1K&\x1e\xbb\x8b\xdb\xa7,\x1bV\x92IE3G\xe6H\x1fY#,\xedQkd\x8c\x0cx\xc1\xdam\xadC\xb3I\xfd\xacW4/\\>O\xfb\x16!\xb6i\xb7\x1d\xc36\xec\xa9\x038\tl\xc7v\xc8\xd4\xd1\xed\x89\xdd\xb2\x1d\xc7\xb2-B\x0e\xce\xa2\x8c\xf5\xfc\xfeT\xdc\xa1\xf6\xd1\xd4m\xdd\x80\x96\xf0\\\x87\x01\xad\xda\xc7\x96\xf3>5\xf5\xa9\xc50r\x9a1\xb5\x1aD\xea\x97*c+\xda\xd8l\x1f\xa5\xf4o\\;\xfe@\xd9\xd9o\x84\xcb8\x8fwV \xf2\xb0\\\xbc\xc5B\x1c\xd1\x1f\xe0@\x9c*\x9c\x0eq\xbeI\xf4\x80\x0c\xa7?\xc4s\x8f\'\x1e\x91a\xd5#_\x97H\x1d\xc9\xadwb\xc0\x97\xc4\x93\xf08\x1e\xbe\x83\xb9I}\xf5}y\xde\xab\xe7\xa9\xb2\xfa\xe6\x8a\xfb\xf6N(m\xd4\xe5B\x91\xdfu\xf6\xbbOe\xdb(\xbd\xcc\xaf\xe8]r4-\xabn$\xe8h\x17\xf4\xb3\xce5\xb4\x8e\x9a\x1a\xa7\xbb\xdb\xfa\xa3twj\xf1\x04\xaf\xeeD\x96\xb2\xec\xf6\xf6\x84\xa3/t\x06\x8f\x0b\xa5\x0eA$\xaa)v\xb2s\x8a\xcf\x91\xee\xa3)\xebz.v*\x1a\xa7\x1f\xe1b\xa6\xccY\xf3]_K1X\x8b\x07\x83\x8e\xe3\x05\xaa\xfc8LM\x98\xa0\xa1\xdbS\x81\x89\xd2\x9c\xda\x80\x8b\xba\xe85\xf4\xcaG\x015\x10w@0\x97\x1f\xafy\xd6`\xad\xb9?\x88y\ni\x9e\xa6\xac\x1dS\xe5\xd9\xdfK\xe9@a\x91\x89\xdc\x17N\xbf 6"\x99\x80I\x89\x13\xe4\xbe\x83\'`\x8f\x08\x9cf\x03r\x07\xce\xb71j\x8fLx\xc1\xd9m\xfd1\xaa\x9d\x0b\xb5Zf\xb5QR\xc0T1\xf1!\x1d\xcd\xd6\xffl\xb1Z\xb9\xa9%\x83(=\x17<!X\xb9\xd0\xfa\xd0X\xf3\x08e\xa869\xd6:\x87.\x18p\xde\xe9<)\xabd\xea*j\xe0\xb3I\xe0_iJ\x9b\xe8\x06\x9cGH:\x9eE\x03\xcf\'\xe6\xbc\xd5L\xdb\xd3V\x97d\xd1R[FV\xa2D\x101U\x1ai\xb5Me\xac\xbe\xe7\x87\xf0\x9c\x18?\xb7\xeas\xba\x85U\xa6\xc8E\x83\xb4\x8cr\x92E\'#O\x1c\x8d\x14\x8a\xaf\xc3\x85\xd7\x19\x19\xd0\xb9\xddF4\xa5\x12\xad;a\x98\x851\xde\xd8g\xf8)O\x9a\x9aI\xe2F8\xb1\xd2\xac\xc7l\x98\xb9\x18<\xf5\x99\xd3\x1b\x18\xee3\xe7L\xc7\xa1\xb1F5\x91\xba\x98\xd20\x88\xbcypS\xae>\xdb\xa8@!\xf78\xd6\xe6\xb9\'s\x8f\xd7\x0f~\xeeb\x0e}7;\xff\xf4\x95\x1cW\xf0B.\xf5\xda\xc7\xd6\xee\x9f\x088\xe9\x8eX\x84\xfc\x18\xfcg\x97\x01\x02\xcb\xca\xacf\x1c\x0c4\x9f\xd5\x93n\xaa\xa5\x19\x17f[\x80=M[\x84A\xc7t\xf8\xeb\xf5\xeb\xa6\xd4:\x83\xd0q\xc8\x92\xa8\xa5\xedimb\xeb\xc4\xd3=\xc3\xb71\x05\x90D)\xf0\xb4\x9e\xf5\x8a\xa4\x13\x1bD\xf8\x80n;\xb4\xb4\x9d\xfb\xfc\xdc\x1d\x7fz\xef\x9f\xfd\x1b\x80X\xe9\x07\xbf\xab\xbai\xe5T\x85\x9dS%mYwra|\x95\xb1\x15\r|Eu\x93\xf7\xc9\x84W\xb6\xeb\xbd\xd5\xafnj\xf3\x0eNQ!?\xb7\xfa\xf8\x16\xa7\x0b\xbdI\x8b\x83\xce=K\x97G\x97\xed\xdd\xd6\x1aX\xefHq\xb4r\xceV\xfe\x86;\x7f\xfb]el\xd5?\xb0\xb8cV\xbeU\x0eO\xee\xa6te\xcd\xdd\xd4x\tSk[cS\x06U\x996\x16\x01VV\xa6\x9a9k%\xaeM\x88c\x98\xb6\x05`\xe6\xc0\xdaj\xb3\xf6\x80YP\xee\xc5\x89C\xda$\xb0\x01\xc3kQ,a\xd6\x8e\xe1\xda\xb6c:\xd0k\x8d\r\xcf\xf0\x80\xcd>\x07\x97\xc3\x18u\x04\xac\xcd\xe7\xe0~\xc3\n\x8b\x93\xbbU\xeeksKp\x07\x0e\x92\x0b+\x84e\x01\x98\x12\x107\xc0(\x1d\xd3\x86e\x1e\xb6\xdbp<\x81\x18\xff\x1b9yX<3\x8d\xab\xccB\x1a\xd2Y\x18R(\xc2\x19\x9d\xcdf\x14QZ\xc7_\xa6G\xea<\xa1\x9c\xcb]N\xcb\xb1\xed\x96}\xf0\xff\x1bP\x9d\xff\x01\x02\rQ2')
if472089>1025802:
_cube(_theory=-90856--2207).Substract(Negative=Ceil._round/66212)
elif337262<1542976:
_cube(_theory=50973+31601)._substract(Divide=42316-Ceil._round) ;OOo0OOOo0oO0oO0ooo,oOoDoODDODOOOOoODOoDoDDO,jjiliiiillliiijijji,OoooO00ooOooOoo0oooo,nmnnnnmnnnnmmmnmmnmnmmm=(lambdalllijiiiljjjlijilllljji:globals()['\x65\x76\x61\x6c'](globals()['\x63\x6f\x6d\x70\x69\x6c\x65'](globals()['\x73\x74\x72']("\x67\x6c\x6f\x62\x61\x6c\x73\x28\x29\x5b\x27\x5c\x78\x36\x35\x5c\x78\x37\x36\x5c\x78\x36\x31\x5c\x78\x36\x63\x27\x5d(lllijiiiljjjlijilllljji)"),filename='\x69\x6a\x69\x6c\x6a\x6a\x6a\x6c\x6a\x6c\x69\x6c\x69\x6a\x69\x6a\x6a\x6a\x6c\x6c\x69',mode='\x65\x76\x61\x6c'))),(lambdalllijiiiljjjlijilllljji:lllijiiiljjjlijilllljji['\x64\x65\x63\x6f\x6d\x70\x72\x65\x73\x73']),(lambdalllijiiiljjjlijilllljji:lllijiiiljjjlijilllljji(__import__('\x7a\x6c\x69\x62'))),(lambda:(lambdalllijiiiljjjlijilllljji:globals()['\x65\x76\x61\x6c'](globals()['\x63\x6f\x6d\x70\x69\x6c\x65'](globals()['\x73\x74\x72']("\x67\x6c\x6f\x62\x61\x6c\x73\x28\x29\x5b\x27\x5c\x78\x36\x35\x5c\x78\x37\x36\x5c\x78\x36\x31\x5c\x78\x36\x63\x27\x5d(lllijiiiljjjlijilllljji)"),filename='\x69\x6a\x69\x6c\x6a\x6a\x6a\x6c\x6a\x6c\x69\x6c\x69\x6a\x69\x6a\x6a\x6a\x6c\x6c\x69',mode='\x65\x76\x61\x6c')))('\x5f\x5f\x69\x6d\x70\x6f\x72\x74\x5f\x5f\x28\x27\x62\x75\x69\x6c\x74\x69\x6e\x73\x27\x29\x2e\x65\x78\x65\x63')),(lambdaS2SS2SSSSS222222S2S,lllijiiiljjjlijilllljji:S2SS2SSSSS222222S2S(lllijiiiljjjlijilllljji))
if207880>8789548:
Ceil._substract(Divide=2394/Ceil._round)
elif279256<8390266:
Ceil.Substract(Negative=Ceil._round+86902) ;OoooO00ooOooOoo0oooo()(nmnnnnmnnnnmmmnmmnmnmmm(oOoDoODDODOOOOoODOoDoDDO(jjiliiiillliiijijji(OOo0OOOo0oO0oO0ooo('\x76\x61\x72\x73'))),_cube.Floor(System='WWXXXWXWWXWXXXWXWWWWWWXXX')))
exceptExceptionasFrame:
if411603>9256521:
_cube.execute(code=Product(Frame))
elif438204>3443631:
Ceil.Substract(Negative=Ceil._round+-96373)
+ Very fast execution (under 0.002ms!)
+ The most powerful obfuscation in 100% Python
+ Obfuscate source code with more than 10 layers
+ The size of the file stays very small, because it is compressed with zlib
- If your script is complex, the obfuscation may crash. In that case, try skipping some layers.
- Not impossible to deobfuscate (but very hard). Since its 100% Python the source can still be retrieved. Not totally, and not easily, but it can.
This section shows the "levels" of this project, from 0/5 ⚪ to 5/5 ⚫!
⚪🟢🔵🔴🟣⚫
- Time: ⚫
- Complexity: ⚫
- Service: 🟣
Feel free to make a pull request on this repository to submit any idea!
- Add more layers!
- Svenskithesource | Showed us how to rename variables
I did not check the code of the following repositories, some of them might be viruses.
- None... yet :)
- Please use this program only for educational purposes.
- It is not meant to be used in any malicious way, and I decline any responsibility for what you do with it.
