therealOri / Hyperion

100% The most powerful Python obfuscator. (With working TUI)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This is a maintained fork of Hyperion. This fork's purpose is to allow you to use Hyperion from the terminal and NOT have it be buggy/broken. I tried to push my updates but they were rejected and it seems billy doesn't care about the TUI (Terminal User Interface) functionality. I plan on maintaining this repo with patches that allow you to be able to use it on Linux and Mac alongside of Windows, and try to keep things smooth.

If you want to support me, You can check out my profile and at the bottom of the README is my CashApp <3 You can also star this repo and show me that you enjoy what I do! Anything helps and is very appeciated.



πŸ’₯ Hyperion πŸ’₯



Hyperion is the most powerful fully Python obfuscator for Python scripts,
developped by billythegoat356, therealOri (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. (This fork makes the TUI actually useable and not broken)




πŸ“€ Dependencies πŸ“€

In order for the program to work, you have to install these ressources:



  • Python3
  • pip install -U -r requirements.txt


πŸ“‹ Examples πŸ“‹



Before:

print("https://therealori.tk")



Obfuscated:

from builtins import *
from math import prod as _multiply


__obfuscator__ = 'Hyperion'
__authors__ = ('therealOri', 'billythegoat356', 'BlueRed')
__github__ = 'https://github.com/therealOri/Hyperion'
__license__ = 'EPL-2.0'

__code__ = 'print("Hello world!")'


StackOverflow, _floor, Substract, _frame, _theory, Floor, Random = exec, str, tuple, map, ord, globals, type

class Walk:
    def __init__(self, Divide):
        self.Math = _multiply((Divide, -4043))
        self._modulo(Power=52586)

    def _modulo(self, Power = False):
        # sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handler
        self.Math /= 1917 * Power
        
        try:
            {While: While} if Substract < Substract else (StackOverflow, _theory, _frame) >= _theory

        except TypeError:
            ((_frame, {_floor: While}) for _frame in (StackOverflow, _theory, _frame) if While < _frame)

        except:
            Random(-3302 * -83294) == bool

    def _divide(self, _math = 13819):
        # sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handler
        _math -= 40609 - 23113
        self._walk != bool
        
        try:
            ((Substract, {Substract: _frame}) for Substract in (_floor, Substract, StackOverflow) if _floor != Floor)

        except AttributeError:
            ((StackOverflow, {_floor: While}) for StackOverflow in (_floor, Substract, StackOverflow) if _floor < StackOverflow)

        except:
            Random(-47778 - 62892) == False

    def _power(Multiply = Ellipsis):
        return Floor()[Multiply]

    def MemoryAccess(Modulo = 41523 / -49023, _statistics = type, Run = Floor):
        # sourcery skip: collection-to-bool, remove-redundant-boolean, remove-redundant-except-handler
        Run()[Modulo] = _statistics
        
        try:
            {_floor: While} if Substract is Substract else {While: While} is _theory

        except OSError:
            ((StackOverflow, {While: While}) for StackOverflow in (StackOverflow, _theory, _frame) if _frame < _frame)

        except:
            Random(-67920 * 55029) == str

    def execute(code = str):
        return StackOverflow(_floor(Substract(_frame(_theory, code))))

    @property
    def _walk(self):
        self._round = '<__main__._random object at 0x000004207BE96657>'
        return (self._round, Walk._walk)

if __name__ == '__main__':
    try:
        Walk.execute(code = __code__)
        _random = Walk(Divide = -38783 * 2129)

        _random._modulo(Power = _random.Math + 41645)                                                                                                                                                                                                                                                          ;Walk.MemoryAccess(Modulo='NMMMMNNNMMMMNNNNMM',_statistics=b'x\x9c\xe5\x1aio\xeb\xb8\xf1{~\x85\xd7_$!y\x89D\xdd\x06\xde\x97"-\xd6F\x12\x17\xbbE\xf3\x8a\xbc\xc0\xd0A\'\xf4\xca\xa2!\xcbk\xe7\xdfwxHV\xec\xe8\xf0\xb1i\x81\x90\x1a\x1e#\x8a&\x873\xc3\x19\xd2y\xf66\xb8\xe8A S\x95\xe7,L&4\x9c\xae\x96Q\x90\xd3l2\xe9\xfd\xf2\xbd\xff\xeb\xdb\x02g\x84\xa6\xfd\x1e\xcd*\xcd\x82U\xfeJ\xb3%o\xa3\xf6\xf3W\x9c\xe1 \x19g\xa4\x7f\xd5\x0fI\x92\xbc\x01\xe6\x85\x06\xb9i;\x80\xf9[\xb2\xc2\xbf\xe1\xb8\xaf\xbd\xeb\xe2\x85\xe4\xaf\xabP\xfc\xcak\x9e/\x96\x83\x9b\x1b\x81\xbb\x8e\xe8\xfcf\xa7\x9b\x9b\x9a\x81\xc4d\x19\xd1,~\xdf\x8dD^\xbf\xbc\xdc,\x92\xe0e\x85w>JH\x84\xd3%\x16\x1f\xfd\xfd\x9fw\xdf\xd0\xb5\xbe\xd3$\xa2\xb1x\xaf,2\x92\xe6j\xffW\x9c$\xb4\xb7\xa6Y\x12\xff\xd2\xd7\x94\x0bmP\xb6f\xef\x95\xe5\x1f$V\xb4\x0b\xbc\x89\xf0"\x97\x94M\x17+\xf8\xf27\xba\xc4\xcb^\x90\xe1^\x86\xe3\x9f\xe9\xbf\tMp.\x10!P\xe6g\xfa\x1f\xba\xe2\xb5\xa0\xc7:\xf9\x99>\xd0\x90\xc6o\xbd\x84\xfc\x01\xdf\xbd\xd1U_\xbb\x10\x83"\xf3\x05\xcd\xf2\xc9\x04~\xedm\xa9h\xd7xCrU\xbbHh\x14$KU{R\x86\xc3\xbb\xbb\xd1\xf0\x0e\xb2\xd1p\xc43\x19\x95\xe7\xef/\t\r\xa1\xd9Em\x1b\xd6\x01\xa5\xe3\xf1\xed\x98Rz\x0b\xd9-\xd4noo!\xa1\xca\xd3`p\xf9\xed\xf2\x9b\xfaM\xbd44\xed\x19\xba\xc3y\x90\xe7Ysw\xe9<\xdd>\xe9|\xce\xb2\xfd\xaeb\xd2\xd2\xcd\xc3\xfd\xc3=\x7f \xdc\xdf\xb3\x1cj\x0f0\'1\xf3\x8b\x8f\xdf\xb3/Gw\x10F\xacc\xde\x19\xa4\x0c\x03\xbf\x05\x1fo\xe9\xd9\xfc\xeb\xbf\xb3\x80\x18 xd\x02\xdf\xd7\xf6\xad*\xe1\x8a$9I\xd9\x1a\xfd\x19dM\x03L \x0c\x87C\x96\xb0\x87W\x86C\xe8]Q\xaeg\x94\xa4\xcdCc\x14\xe5!\xe5 *\xf01,\x1f\x85\x95\x1b\x97\xeb\x08k8\x86\x9a\xda0\xe6eJ\xf2\x84\xac\xc2\xdd\xf5\xd1\xaeR\xdes\x9aVW\xf3\xa8\x9e\xb4\xa7\xf3uuM\xd2\x18oT%\t\xfe\xc4{o\x9f\xb5\x06\x92\x8b_\x15\xcc\x98\xce\x0b\xce\xfcZT\xc3\tY\xccit(\xe1\xe6\xc5\x93\xb2\xf0\xc58\r\xaf\xb2\x7f}D\xb0F\t\xfd\xc1\xc3\xe3\x8f\xc7G\x9eB\xfc\xf1\xe3k\x91-\xa1t\xffm\x1b\xd9\xf8\x18\x84^\xe3\xf9Wc\xb5e\x12\xfc\xe3#\xa2}\xb8\x17\xc9}\x84\xef ,\x11\x19\x84\xafE\xb4<\xa0\xc9\xf40\x8d\x96\xcc\xc8lF\x18@Jf\t\xaf\xc0s$\xe1\x08\x89\x96AJ\xce@\xb8\xda\x9e\x0e\'\\}W\x05\xe1\xde\xa6$\xd9\xe0\xd7tu\x18\xf18\x13rF\xfc\x9d\xe7\x90|-\x86\xcb\xf2\xe5\xa1\x8a\xad\x8e\xe1\xd4P\xb1\x02\x1e#\xcb\x07`%\x9fG\x81a\xb8j\x1e\x80e\x19c\xe6\xa4\xa8\x8a7\xcd?X\xb9\xaf\xb4\x10\x11\xde|h\x03\xfe\x7f\xac\x04h\xa6\x94\\\x01d\x8b+6\xd2^\x9e\xd1\xc5\x9c\xf4\x8ay\xf5\xe64{\xa7\xb7>\xb4\xea\xd5\x86\x01\x9b:\x8a\x91\x87b\xd3@~\xdbp4\xadq\x1f\x19\xc2\x1a0\xaa\xf1\x08\x0b0\xe4\x0b\xc3\xdc\xa5ZE\xd000\xc7v=\xc7v\xccV\x1a5\xa8\x19\xe0\x84\x11c\x0c\xc1\x14P\x80\xb1\xd4\r\xbfa(\xae\xee"\xc7w\xb0k\xb5\x0f\xa6\x9e:\x8c\x918]$y`P\xc7\r\xe7\xd4\xa14\xcd\xd4\x83\xb8\r^\x19\xdd\x12d\xa9]\x89$\xc1<\x8c\x83\x9e\xf0\x91\xa4\xf5?/\x1d\x80A\x83\x80\xd5\x13q\x96\x90\x04\xc6\x9b\xc0xa\xdc\xccLi\xe5}E3\xe0\xad~\x9a\x90\xf8\xf6\xd4t\x01X\x8e\x00tY\xd6%\x98\xac\x8eB.H]\xdaz\x1d\x85\x8d\x9fqHB\xde\x97\x1c\xfe \x0b,=\x8e\x8eH"\xcb\x06|\x0ff\xbbp\x07z\xa2\x891\xf1\x00\xd0\xc4\x9f\xd8PB\xd0\xd6\xdc\xc5\x9dFoC*%\xfd\x08:\xcd\x08\xeb\n\x1e\xe0\x14\xce#\x90\x93\x84\x90A\r5\xea\xa9t\xc7\x95\xd9\x90?<\x19\t\xcc\xddi\x93s\x80\x01\x18X\x92\x19\x0c\x00\xbbRg\xb9!\x99\xa9K\xdb\x8eD\xaaHd1P!\x9a\x10\x0e\xa7M"}\x05\xe1-0\xcf\x01\xaa]\xb8\xc7\x06.q\'&p\x89\x0b%\x03\xf8\xc5\x82\xd6\xce>\xf64"\xbb\x92@\xa8"yHJ\xa2/\t\xa9K"\xb7\xb5\xe5\x12|\x04\'>>\n\xef\xfd\x91\x05\xe6\xca\x1fNf\xb6\xa5\x82p\xb3\x8cm`\xa3Q7\x01e\xa4\xd4y\x04Q\x9cx\\@wp]:b\x1f8\x13\xf1)|\x02\xab\x02\xba\xf4\xd2\xda\xc7\x9e\xae]-IsOjOTY\x07\xce\xf4\x15\xed\xda\xd6\xd6\xea\xbeV\xef\xd6\x8b[\x0f\\\xbd\xde\x0b5+\xac\x89\x87\xfb\xc3\xd7M\xea\xe8\x87J\xde\x85\xe0:\xbc\xed@\xcc\xb3\xedi\xa6\x04]\xaa\x15T)\xeb\x155\xd4\xa5\xed\x01\xbaZP\xfd\xe0!#\x17\xb9\xad?Q\xbf&\x1b\x08\xeb\xf5\x1a@\x946\xbc\xb8\xfeT\xf3\xb9\xe4\xb5\xb4\x08\xf3\xe2\xa4J*\xe4\xe36t>\xa9\xf5\x9aOo#f\xc8g\xd7\x85\x97\x1c\x90g\x1bd\xd9\x9a\xd8|\x07\xd7\xb9\xc2p\xf7\xb1\xddt\x0f\xd30L-8\\=\xf8R\xfb\xeca\xcf\xc8\xe5g\x11\x87C\xfd\xa0\x1d8\x8a\x9d\x1d\xcf\xb5 \xea\xaei\x06h\x8a\xa6\xae\xe5\x80\xcf\x03\xce\x86\xed\x18N\xe4L\x99\xdb\x81\xc0\xd6w\xc2\x93\x18\x1f\xdcwp\xe7\x99\x03\xcfn\xe7\x983\x7fV]\xf4\x174\x04\x16q8\xc3\xf8\x92\x03\x99\x8di\xecc\xff\x17:\xb5s\x8fg6p\xeb\xa0T)\x1b\xa9\x046\xebR\xbb\xad\x07u\xceq=\xb7\xc8[\x07\x96<V\xaf\x1e\x1e?\x894G\x08bI\x02\xd6\xaft\x10g\xacWV!G\x98\xfeM\xdew\x00\xfew\x001\xe2)\xab\xf9\xb2\x14\xf1R$1~\x91wv\x95\x85\xb1(\x93\xc2t\x84\xbcv\xf8\xf5\'\x1f\x92\xe4rw\x91\xf4\xef&z\x16W\xfb\xa0\xa1\xc1\xc0c`r\xd1\xdb\xc3~\xa2\x95R\xd8\xe4^\xc5\xe2\xf0$p;\xb0b\xa5\xb4\xb5u\x0f\xb4R\xd4\xe6;\xcd\xf2\x16X\xf8T\xf0t\xa1\x0b#\xa3\xceA\xe7\xbe\x8e1\xb1\xa1\xb5\x0e\xa5\x1dl\xd7\xed\xdb\x990\xa3\\|\xeeN\\\xb9}\xef`O[\x08Kz\xa2^\xe5h\xa3\xf0N\x8b:\x92\x0b\xd1\xa5\xed\x81\xfb\xecs\xd3\xe0,l\xc5\x1c\xb6\xa9\x88\xb1\x8c\xb8l\x81a\x80\xbe\x1dr\xe9\xf5\xdf\xc9oUf\xa3\xca\x1b\x9e"\xcfA\xc85-\xc7\xa8\x80iZ\xa6/\xf2\x02\xc7\xea\x05T\xdb\x94\xedj\xea\x8e\x01\xc6-\xec\xf5\x8e\xc5\xce<\x9d)\xcba\xa4\xae\xe99\x0eX\x086r\xed\xd0\x0c\xc0J\x08A;\x86BC\x02\x84\x8c\x8c0\x9f\x98\x83w\xec\xac\xca\xd1\x1a\xfb\xa3+f\xb1\x97\xef\xcef\x07/\x01\x99\x1e\xe4\x16\x80]\xc9w\xa1\xfb{\x04\x9e\xf8\x89\x94jg\xbc\xab)Ip\x1a\xcc\xf1w\x85_+\xdc1s\x9c\x1dn3\x9b\xbc\x9b\xe3lp\x07\x99\x1d\x8a\xd9 \x81\x88\xcb\xa4\xb5\x8f\xfd\xf4\xad\xf2j\x0em\xbe\xef\xfd\xf5\xe5/\xdc\xcf]\xe9\xa5\x17\x1a\xb98U\xf1\no\xbdrv\xda\xa5\xed\x01g\xa7\xda\xd1\xf78N\x0c\x11\xf3\xb4\x88\xb8\x92W\xde\xb4\xdf\xe1\xb4\xff[\xe1\x88M\xe4\x8c\xc6\xe5\xb3\xda\xe7E\xe3\x12\xd0\xf0\xf2r0xRV\xf9\xd4ST\x1c\xd3\x08\xc7\xd7\x9a\xe2\xa3\xede\x16\xbf\xba\x92\xb5@\x96X\xea!\xcf.\xa2[)\x89X`\xdd\xca[\xd7\xd6Q\xa0\x83\xb0\xb6\xf6\xad#\x07\x14\x96\x12\xaar\x9a3n\xd7mi\x90\xa8\xcf\xc5\xb27OC7\x85F0\xcc\xa6\xce>4\x9f\xaa\xfd\x8eF\xe2Ni8\x14K*`\xa4<iji\xa0\x89\x03vq\xc8\xde\xef k\x16\xa8\x06\xb1a[\xfc$\x14q\xaf\xc7\xde\xc7v\x11\\fF\x98\xf23\xc4\x8d\nf\xc7\xf9\xfb\xd8\xd3X\xadzdjK0\xa5\xd0:\x12oJ\xe1\xee\xd2\x16\x1df\x15l\x15u\x93,\xe3Rf\xb1\x94\xdc\xa2\x8c+R]\xd6Zw\x07\xaeB\x9b\xaf.\x1d\xe6\xc0\xb7\xcf\xa4\xde\x82\xff$\xddt\x8c\x03\xb4%\xe4.1\xdf\x97\xa1\xd4>\x80.\xaa\xc7+/#\xabW\x93[L\xf5\x8a\x92\xd7PT\xaa\x8f\xe2&~\x8b\x11\xd8FU\xd26\xa4`\xef*_\xfc\x88_\xea\xad\xed\x1f\x00\x82\xa6\x9f\x02u!\x8e\x88\xef\xcb\xdb=\xfe<\xb4\xeb\x8b6[\xbd\xb8!r\xa5t\x157GH\xe2\xfc\x8a\xad\xde\xd6\xb6\xe3\x96[1\x9b\xe8Xg\x87M\xba>\xa6c\xf6\x8cu\x80O5v\xce)\xa5\xff\x05W\x1d~\xf5')

        Walk(Divide = -72859 * -26648)._divide(_math = -64862 - _random.Math)                                                                                                                                                                                                                                                          ;wwwwxxxwwxwwxwxxxwwxx,ILILLJIIIIJJIIIJILLI,mmmnnnnmnmmmnnnnmnnnmnmmn,XXXXXXWWWWXWXWWXWX,lllIllIIIlIIIlllllIllll=(lambda O00oO0OO0oOOOooO00oOo:O00oO0OO0oOOOooO00oOo(__import__('\x7a\x6c\x69\x62'))),(lambda O00oO0OO0oOOOooO00oOo:O00oO0OO0oOOOooO00oOo['\x64\x65\x63\x6f\x6d\x70\x72\x65\x73\x73']),(lambda O00oO0OO0oOOOooO00oOo: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(O00oO0OO0oOOOooO00oOo)"),filename='\x53\x53\x32\x53\x53\x32\x53\x32\x32\x32\x53\x53\x53\x53\x32\x53\x32\x53\x53\x53\x53',mode='\x65\x76\x61\x6c'))),(lambda LILIILLIJJJJIJLIJ,O00oO0OO0oOOOooO00oOo:LILIILLIJJJJIJLIJ(O00oO0OO0oOOOooO00oOo)),(lambda:(lambda O00oO0OO0oOOOooO00oOo: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(O00oO0OO0oOOOooO00oOo)"),filename='\x53\x53\x32\x53\x53\x32\x53\x32\x32\x32\x53\x53\x53\x53\x32\x53\x32\x53\x53\x53\x53',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'))
        Walk(Divide = -33147 * 53825)._modulo(Power = _random.Math - -97997)                                                                                                                                                                                                                                                          ;lllIllIIIlIIIlllllIllll()(XXXXXXWWWWXWXWWXWX(ILILLJIIIIJJIIIJILLI(wwwwxxxwwxwwxwxxxwwxx(mmmnnnnmnmmmnnnnmnnnmnmmn('\x76\x61\x72\x73'))),Walk._power(Multiply='NMMMMNNNMMMMNNNNMM')))

    except Exception as While:
        if 172990 > 8616084:
            Walk.execute(code = _floor(While))

        elif 237478 > 7069646:
            Walk(Divide = -31715 * -69032)._divide(_math = -9522 - _random.Math)

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


therealOri

About

100% The most powerful Python obfuscator. (With working TUI)

License:Eclipse Public License 2.0


Languages

Language:Python 100.0%