Billythegoat356 Hyperion Save

The most powerful 100% Python obfuscator.

Project README


💥 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:



  • Python3
  • 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


- 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.


🎯 Levels 🎯

This section shows the "levels" of this project, from 0/5 ⚪ to 5/5 ⚫!

⚪🟢🔵🔴🟣⚫



  • Time: ⚫
  • Complexity: ⚫
  • Service: 🟣


💡 Ideas 💡

Feel free to make a pull request on this repository to submit any idea!



  • Add more layers!


🎬 Credits 🎬




📌 Disclaimer 📌



  • 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.


billythegoat356

Open Source Agenda is not affiliated with "Billythegoat356 Hyperion" Project. README Source: billythegoat356/Hyperion
Stars
309
Open Issues
26
Last Commit
1 month ago

Open Source Agenda Badge

Open Source Agenda Rating