首页
社区
课程
招聘
[原创]第二题:巳时·绿光幽语 WP
发表于: 2天前 1

[原创]第二题:巳时·绿光幽语 WP

2天前
1

题目给的是 Py 打包程序 解包后发现入口 main 逻辑很简单:

import sys
sys.exit(0)

说明真正逻辑不在常规入口中 需要继续检查其他文件

这波吃亏了 我还在想 第二题这么难?原来是我没运行 没看到提示 唉

提示,需要还原的代码
def my_function():
        print("恭喜成功!")
请输入key还原代码(请输入6个字符)

继续搜索字符串和 frozen 模块 发现关键逻辑被藏在 python313.dll 中的 frozen os 模块里

程序主要流程如下

  1. 使用 xor 0x55 解密并打印提示信息
  2. 要求输入 6 个字符的 key
  3. 使用该 key 循环异或两段密文
  4. 还原 my_function.__code__.co_codemy_function.__code__.co_consts
  5. 如果还原成功,则执行目标函数

题目提示需要还原的代码为

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编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回