最强大的100% Python混淆器

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/billythegoat356/Hyperion

项目简介

Hyperion 是一款使用 Python 编写的代码混淆器,可以将 Python 脚本混淆多达 10 层,同时保持文件非常的紧凑,只有一个文件,可以在任何操作系统和 Python 版本上执行。

相关技术点

  • Python 语言
  • 代码混淆技术

项目用途

Hyperion 可以对 Python 脚本进行混淆,使得代码的可读性变得非常差,提高代码的安全性。同时,混淆后的代码也可以防止被反编译,使得代码更难以被攻击者破解。此外,Hyperion 还可以压缩代码,使得混淆后的代码非常的紧凑,只有一个文件。这样可以方便代码的传输和部署,同时也能够节省存储空间。

💥 Hyperion 💥



Hyperion 是最强大的 Python 脚本混淆器,由billythegoat356(我)和BlueRed开发。

它可以让您将脚本混淆超过10个层次,同时保持非常紧凑(一个文件),并在任何操作系统/Python版本上执行。

您还可以使用Web版的 Hyperion。

ad1a1b7183163119

 


📀 依赖 📀

为了使程序正常运行,您必须安装以下资源:



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


📋 示例 📋



之前

print("discord.gg/plague")



混淆后

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)

⭐ 特点 ⭐



+ 执行速度非常快(低于0.002ms!)
+ 100% Python 中最强大的混淆
+ 使用超过10个层次的混淆源代码
+ 文件的大小非常小,因为它使用zlib进行压缩

ad1a1b7183163138

 


- 如果您的脚本比较复杂,则可能会导致混淆崩溃。在这种情况下,请尝试跳过一些层次。
- 不是不可能去混淆(但非常困难)。由于其100%是 Python,因此仍然可以检索源代码。不是完全的,也不是容易的,但是它可以。


🎯 级别 🎯

本节显示此项目的“级别”,从0/5⚪到5/5⚫!

⚪🟢🔵🔴🟣⚫



  • 时间:⚫
  • 复杂度:⚫
  • 服务:🟣


💡 想法 💡

欢迎在此存储库上进行拉取请求以提交任何想法!



  • 添加更多层!


🎬 制作人员 🎬




📌 声明 📌



  • 请仅出于教育目的使用此程序。
  • 它不应以任何恶意方式使用,对于您使用它做的任何事情,我都不承担任何责任。


billythegoat356

标签:工具分享