The most powerful 100% Python obfuscator.
💥 Hyperion 💥
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.
📀 Dependencies 📀
In order for the program to work, you have to install these ressources:
pip install -U -r requirements.txt
📋 Examples 📋
Before:
print("discord.gg/plague")
Obfuscated:
from builtins import *
from math import prod as Power
__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, type
class _cube:
def __init__(self, _theory):
self._round = Power((_theory, 22218))
self.Substract(Negative=-35664)
def Substract(self, Negative = type):
# sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handler
self._round *= 42735 * Negative
try:
(((_power, Product), _power) for _power in (Frame, Product, Product))
except AttributeError:
(((Frame, Product, Product), _while) for _while in {_power: _builtins})
except:
_floor(39057 * -65432) == str
def _substract(self, Divide = -59260):
# sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handler
Divide += 74763 + 48444
self._hypothesis != None
try:
((Frame, Product, Product) or _builtins if (Frame, Product, Product) and _builtins else ... or (_builtins, (Frame, Product, Product)))
except AssertionError:
(((Frame, Product, Product), Product) for Product in {_power: _builtins})
except:
_floor(7046 + -91937) == False
def Floor(System = str):
return Builtins()[System]
def _stackoverflow(_memoryaccess = -71760 / 48901, _run = type, _statistics = Builtins):
# sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handler
_statistics()[_memoryaccess] = _run
try:
((Add, (Frame, Product, Product)) for Add in (_power, Product) if Builtins == _power)
except OSError:
(Frame, Product, Product) if Product == Frame else (_builtins, Product) != _while
except:
_floor(-67745 / -55149) == bool
def execute(code = str):
return _while(Product(_builtins(_power(Add, code))))
@property
def _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')
if 472089 > 1025802:
_cube(_theory = -90856 - -2207).Substract(Negative = Ceil._round / 66212)
elif 337262 < 1542976:
_cube(_theory = 50973 + 31601)._substract(Divide = 42316 - Ceil._round) ;OOo0OOOo0oO0oO0ooo,oOoDoODDODOOOOoODOoDoDDO,jjiliiiillliiijijji,OoooO00ooOooOoo0oooo,nmnnnnmnnnnmmmnmmnmnmmm=(lambda lllijiiiljjjlijilllljji: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'))),(lambda lllijiiiljjjlijilllljji:lllijiiiljjjlijilllljji['\x64\x65\x63\x6f\x6d\x70\x72\x65\x73\x73']),(lambda lllijiiiljjjlijilllljji:lllijiiiljjjlijilllljji(__import__('\x7a\x6c\x69\x62'))),(lambda:(lambda lllijiiiljjjlijilllljji: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')),(lambda S2SS2SSSSS222222S2S,lllijiiiljjjlijilllljji:S2SS2SSSSS222222S2S(lllijiiiljjjlijilllljji))
if 207880 > 8789548:
Ceil._substract(Divide = 2394 / Ceil._round)
elif 279256 < 8390266:
Ceil.Substract(Negative = Ceil._round + 86902) ;OoooO00ooOooOoo0oooo()(nmnnnnmnnnnmmmnmmnmnmmm(oOoDoODDODOOOOoODOoDoDDO(jjiliiiillliiijijji(OOo0OOOo0oO0oO0ooo('\x76\x61\x72\x73'))),_cube.Floor(System='WWXXXWXWWXWXXXWXWWWWWWXXX')))
except Exception as Frame:
if 411603 > 9256521:
_cube.execute(code = Product(Frame))
elif 438204 > 3443631:
Ceil.Substract(Negative = Ceil._round + -96373)
⭐ Features ⭐
+ 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
🎯 Levels 🎯
This section shows the "levels" of this project, from 0/5 ⚪ to 5/5 ⚫!
⚪🟢🔵🔴🟣⚫
💡 Ideas 💡
Feel free to make a pull request on this repository to submit any idea!
🎬 Credits 🎬
📌 Disclaimer 📌
billythegoat356