1. 按照我之前的帖子中的工具直接在线分析pyinstall得到压缩包
2. 在线分析pyc得到反编译的py文件
[Python] 纯文本查看 复制代码 # Decompiled with PyLingual ([url]https://pylingual.io[/url])
# Internal filename: app_logic.py
# Bytecode version: 3.11a7e (3495)
# Source timestamp: 1970-01-01 00:00:00 UTC (0)
import base64
import hashlib
import sys
_x1_cz = '478cb8a0d010cbd6ed32996ce64da2528cefc3257c80c55a7b4880b0d1305276'
_x0_dx = 'ZwkCKR0HXxKQ+OhZlsHeluGsndjsnc3glNPD2NXHicP2qMzqk4jYje3/ldDilfuhlOz1lszBUVp9QAANAw1YYoPs46NSgePmlef4l8yTlcTsnMfylfvn1fj7i/DXqNL/lLDwRkRzADIaHQMYFEad5uTRU5fKkJra/pz15ZTp89bfx4rY3qXc9ZCQ84L11kpgCAMWQwETAgsUPVFafUAADQMNWGKD7OS1UoHQ6pXJ/pXghpvz2UNSbFMsKFkfFAILBB8sW1BUExAIDRktFlReHhYFGRwEKR4WWV4dE0VQWUo='
def _x5_yb(_x3_op: str) -> bool:
_s_22419 = 371042
while _s_22419 != -1:
if _s_22419 == 777737:
return _x2_am == _x1_cz
if _s_22419 == 100284:
_x2_am = hashlib.sha256(_x3_op.encode()).hexdigest()
_s_22419 = 777737
elif _s_22419 == 371042:
pass
_s_22419 = 100284
else:
pass
def main():
_s_31655 = 53215
while _s_31655 != -1:
if _s_31655 == 502431:
input('>>>您已成功解密 ').strip()
_s_31655 = -1
elif _s_31655 == 2285:
print('✅ 恭喜!你破解了这个逆向挑战!')
_s_31655 = 502431
elif _s_31655 == 699066:
print('✅ 密码验证通过,正在解密...')
_s_31655 = 2285
elif _s_31655 == 111095:
sys.exit(1)
_s_31655 = 699066
elif _s_31655 == 900638:
print('❌ 密码错误!程序退出。')
_s_31655 = 111095
elif _s_31655 == 852960:
if not _x5_yb(_x4_kq):
_s_31655 = 900638
else:
_s_31655 = 699066
elif _s_31655 == 291528:
_x4_kq = input('>>> ').strip()
_s_31655 = 852960
elif _s_31655 == 53215:
print('🔐 这是一个受保护的脚本,请输入密码以继续:')
_s_31655 = 291528
else:
pass
main()
if __name__ == '__main__':
main()
3. 简单去除混淆
[Python] 纯文本查看 复制代码 import hashlib
import sys
# 目标密码的 SHA-256 哈希(hex)
PASS_HASH = '478cb8a0d010cbd6ed32996ce64da2528cefc3257c80c55a7b4880b0d1305276'
def verify_password(pw: str) -> bool:
"""验证密码的 SHA-256 是否匹配目标哈希。"""
return hashlib.sha256(pw.encode('utf-8')).hexdigest() == PASS_HASH
def main():
print('🔐 这是一个受保护的脚本,请输入密码以继续:')
pw = input('>>> ').strip()
if not verify_password(pw):
print('❌ 密码错误!程序退出。')
sys.exit(1)
print('✅ 密码验证通过,正在解密...')
print('✅ 恭喜!你破解了这个逆向挑战!')
# 成功提示后,再次等待输入(原逻辑中有这一步)
input('>>>您已成功解密 ').strip()
if __name__ == '__main__':
main()
4. 找到sha256匹配的项目,不知道怎么找,不找了 需要作者给出提示或者直接给出正确答案 |