techlinn/WhatThePy

GitHub: techlinn/WhatThePy

一个趣味性的 Python 代码混淆工具,通过压缩、加密和 Unicode 随机化让代码难以阅读但仍可正常运行。

Stars: 50 | Forks: 1

Python 3.8+ Platform License

WhatThePy

大家一直说我的代码写得很烂。所以我写了个工具,让代码变得更烂了(故意的)

## 这是什么? **WhatThePy** 使用压缩、自定义的基于 SHA256 的流密码、动态密钥生成以及运行时执行来混淆 Python 代码。最终生成的是紧凑且杂乱的代码,它们仍然可以正常运行,但阅读和分析起来要困难得多。 **重要提示:** 这是为了娱乐和学习。它可以阻止随意查看的人,但无法阻止真正懂行的人。 ## 混淆前后
你的代码 经过 WhatThePy 处理后
``` def greet(name): message = f"Hello, {name}!" print(message) return message if __name__ == "__main__": greet("World") ``` ``` ... 洪ΠОΖНСΔΘΜΖФ鷹=lambda:_СΖΙ虎ΣΓФЙТХВГ(_Θ宙鷹荒鷹日ЙΖΥХДΑ(_У荒ЛΡ荒黃ΣНПΘР豹,_ДΒПΘΞНΠΡ麟麟Γ玄,_РК虎Π宙玄ΕНКΛ龍Ж,_麒鳳ΞБΕГОП宙БΞ獅),_ΥДΓ日Ζ地УΙΤ麒熊麒) def _日И月黃宇ОНΖ麟龍麒洪():return bytes(_洪ΠОΖНСΔΘΜΖФ鷹()) _다허يεمα地러ص서Т風=_日И月黃宇ОНΖ麟龍麒洪() def _ذרгΚЛΤ조さ洪터βש(_바かたצדαΜח春غР秋,_צカישىこضФオמП寒): _אנЮ天라ΘШנ火昃הן=bytes(_v^186 for _v in [210, 219, 201, 210, 214, 211, 216]).decode() _木סкעل寒бえいΚ머Φ=bytes(_v^109 for _v in [30, 5, 12, 95, 88, 91]).decode() _川거黃麒جウ宙머辰けиף=__import__(_אנЮ天라ΘШנ火昃הן);_ךえ黃لظ허אס昃타麒霜=getattr(_川거黃麒جウ宙머辰けиף,_木סкעل寒бえいΚ머Φ) _너さИر雨חר雪러Х퍼風=bytearray(len(_צカישىこضФオמП寒));_玄СβחΓ辰ΡΧסתقケ=32 for _소ד河そえΑض冬ЫてДذ in range(0,len(_צカישىこضФオמП寒),_玄СβחΓ辰ΡΧסתقケ): _رΘЙЙ日ТРЫЪב山Γ=(_소ד河そえΑض冬ЫてДذ//_玄СβחΓ辰ΡΧסתقケ).to_bytes(8,'little') _لפへζひחيטΩたカΩ=_ךえ黃لظ허אס昃타麒霜(_바かたצדαΜח春غР秋+_رΘЙЙ日ТРЫЪב山Γ).digest() _قて차あ차Э雪ث黃ضΗ雪=_צカישىこضФオמП寒[_소ד河そえΑض冬ЫてДذ:_소ד河そえΑض冬ЫてДذ+_玄СβחΓ辰ΡΧסתقケ] for _Яו暑火ءФعجПΣいق,_כ카ΧΣ터γΗכدすלר in enumerate(_قて차あ차Э雪ث黃ضΗ雪):_너さИر雨חר雪러Х퍼風[_소ד河そえΑض冬ЫてДذ+_Яו暑火ءФعجПΣいق]=_כ카ΧΣ터γΗכدすלר^_لפへζひחيטΩたカΩ[_Яו暑火ءФعجПΣいق] return bytes(_너さИر雨חר雪러Х퍼風) def _ع雪כΨ麒麟лΨα盈霜暑(_머머天로ט盈صלΡ커ط저,_머חتתРΥפ타ΨУへت): _كМへしう가電けキ荒בね=bytes(_v^35 for _v in [75, 66, 80, 75, 79, 74, 65]).decode() _クア風ΣЛд宿火玄Эи저=bytes(_v^237 for _v in [158, 133, 140, 223, 216, 219]).decode() _л더פ虎ほ電Кδ冬다Τو=__import__(_كМへしう가電けキ荒בね);_き퍼水暑노זאΗ사لىט=getattr(_л더פ虎ほ電Кδ冬다Τو,_クア風ΣЛд宿火玄Эи저) return _き퍼水暑노זאΗ사لىט(_머חتתРΥפ타ΨУへت+_머머天로ט盈صלΡ커ط저).digest() def _火دね카ζ列УبلてבЗ(_저ЛЭ河로ם오רעخΣ카,_נ黃تعえカعظさΜ川エ): _شסすけγЦВεزΞΞ코=_저ЛЭ河로ם오רעخΣ카[:16];_고زつ玄г宇ЦγЮע霜す=_저ЛЭ河로ם오רעخΣ카[16:] _פ코ג자طاい코Б秋ىכ=_ع雪כΨ麒麟лΨα盈霜暑(_شסすけγЦВεزΞΞ코,_נ黃تعえカعظさΜ川エ) continues... ```
## 安装说明 ``` git clone https://github.com/txvch/WhatThePy.git cd WhatThePy pip install -r requirements.txt ``` **环境要求:** Python 3.8+, `rich`, `pyfiglet` ## 用法 ``` python -m whatthepy # 在提示时输入您的文件路径 # Output: yourfile_obfuscated.py ``` 兼容 PyInstaller: ``` pyinstaller --onefile yourfile_obfuscated.py ``` ## 保护级别 | 威胁 | 是否受保护? | |--------|-----------| | 脚本小子 | 是 | | 随意的复制粘贴 | 是 | | 匆匆一瞥 | 是 | | 基础静态分析 | 是 | | 有动机的攻击者 | 部分 | | 优秀的逆向工程师 | 说不定 | **适用场景:** 学习、CTF 挑战、阻止随意查看的人 **不适用场景:** 保护机密信息、有价值的知识产权或任何关键内容 ## 工作原理 ``` Source Code | v [1] Compress (zlib) | v [2] Encrypt (SHA256 stream cipher + custom KDF) | v [3] Either: -> Store payload in .dat file (split mode) -> Or encode using randomized Unicode characters | v [4] Build loader stub | v [5] Runtime: - Rebuild key - Decrypt payload - Decompress - Execute ``` ## 免责声明 这是一个供学习和试验的趣味项目。它能让代码变得更难被随意阅读,但并不提供严肃的保护。请将其用于娱乐、学习或轻度防护——切勿用于任何关键场合。 这只是我周末做的一个小项目,还有……请不要将其用于严格的安全需求! ## 许可证 MIT 许可证 - 随你怎么用,只要别怪我就行!

由糟糕的决定和过量的红牛制作而成😭

标签:DNS 反向解析, Python, SOC Prime, 代码混淆, 加密解密, 开发工具, 无后门, 趣味项目, 逆向工具