-
-
[原创]第二题:巳时·绿光幽语 WP
-
发表于: 2天前 1
-
题目给的是 Py 打包程序 解包后发现入口 main 逻辑很简单:
import sys
sys.exit(0)
说明真正逻辑不在常规入口中 需要继续检查其他文件
这波吃亏了 我还在想 第二题这么难?原来是我没运行 没看到提示 唉
提示,需要还原的代码
def my_function():
print("恭喜成功!")
请输入key还原代码(请输入6个字符)
继续搜索字符串和 frozen 模块 发现关键逻辑被藏在 python313.dll 中的 frozen os 模块里
程序主要流程如下
- 使用
xor 0x55解密并打印提示信息 - 要求输入 6 个字符的 key
- 使用该 key 循环异或两段密文
- 还原
my_function.__code__.co_code和my_function.__code__.co_consts - 如果还原成功,则执行目标函数
题目提示需要还原的代码为
def my_function():
print("恭喜成功!")
因此可以用目标函数的字节码反推 key
核心反推脚本
cipher = b'\xecbmucryb6tcr*c\x03ucryb6tCr\x1eb'
target = b'\x95\x00[\x01\x00\x00\x00\x00\x00\x00\x00\x00S\x015\x01\x00\x00\x00\x00\x00\x00 \x00g\x00'
key_stream = bytes(cipher[i] ^ target[i] for i in range(len(target)))
print(key_stream)
输出结果为
b'yb6tcryb6tcryb6tcryb6tcryb'
key 长度为 6 因此得到flag
yb6tcr
最后于 2天前
被Q7411编辑
,原因:
赞赏
赞赏
雪币:
留言: