0xGame 2024-Misc-Week 3

[Week 3] 画画的baby

  • vol.py -f painting.raw imageinfo查看镜像信息
  • 得到系统Win10x64_19041
  • vol.py -f painting.raw --profile=Win10x64_19041 pslist查看进程信息
  • 查找mspaint.exe进程得到PID5372
  • vol.py -f painting.raw --profile=Win10x64_19041 memdump -p 5372 -D output提取内存数据
  • 参考资料1资料2
  • 将bmp文件后缀改为data,用GIMP打开-GIMP下载链接
  • 图像类型改为RGB Alpha
  • 调整高为合适高度,我是1070
  • 综合调节位移和宽(我的理解是位移是不同时间状态下的屏幕快照,而宽可以用来改变倾斜状况
  • (这参数调得真tm操蛋
  • 0xGame{Tr33_AnD_F1ow3r}

[Week 3] 重生之我在南邮当CTF大王

  • RPG小游戏
  • 查看save文件夹能发现是由RMMZ制作的RPG游戏,寻找适用于RMMZ的修改器
  • 我使用的修改器
  • 用修改器打开可以在发现第五个名字是Base64编码,flag1:0xGame{NJUPT_(这个对应的就是许愿树的名字
  • 在地图左下角樱花林处进去回答问题(答案4,3),能拿到flag2:Has_
  • 进入图书馆发现等待时间太久,所以还是打开修改器
  • 进入对应地图选择NPC2>事件解释器
  • 或者寻找代码,打开data>Map009.json
  • 得到flag3:VerY_v3Ry_V3ry_
  • 进入南一食堂,就是右下角那个,和小狗对话,对话内容是兽语加密,但文字不好提取
  • 所以进入文件夹,打开data>Map007.json,得到四段密文
  • ~呜嗷嗷嗷嗷呜呜~~嗷呜嗷呜呜~呜~嗷啊嗷啊呜嗷嗷啊
  • 嗷~嗷~呜呜嗷~嗷嗷嗷嗷呜呜~~嗷呜嗷呜呜啊~呜啊啊
  • 嗷啊呜~啊嗷呜~嗷~呜呜嗷~啊嗷嗷嗷呜啊嗷嗷啊呜嗷
  • 呜呜啊啊啊~啊嗷啊呜嗷呜啊嗷啊
  • 合并后解密-工具
  • 得到flag4:YummY_FooD}
  • 0xGame{NJUPT_Has_VerY_v3Ry_V3ry_YummY_FooD}

[Week 3] 神秘电波

  • 拿到grc和wav文件
  • wav文件用windows自带播放器打开没声音,用专业音频处理软件打开听到杂音
  • 搜索grc格式找到GNU Radio
  • 用GNU打开grc文件发现是对txt文件进行了BPSK调制,并将输出混入随机数,形成了wav文件
  • 需要手搓BPSK解调器
  • 参考官方文档示例grc文件,grc打开如图
  • 可以观察到第一行是调制,将结果关联到流Stream
  • 再通过第二行解调流,输出结果,并通过另一条流输入,来在GUI上展示比较结果
  • 在此示例上修改,将所有与流和GUI有关的模块删去,将比较结果的分支删去
  • 回头重新分析调制的过程,发现调制缺少了Polyphase Clock Sync模块,因而在解调中要用上
  • 调制中还乘上了随机数,解调中要除去
  • 最终梳理好数据类型,手搓解调器,如下图,获取grc文件
  • 最上面的参数直接复制调制的就行
  • P.S.在运行前先generate生成py文件,另外我自己win下无法正常运行,遂换kali
  • 有窗口弹出后即可中止
  • 检查生成文件发现无法打开,010打开发现全是00和01组成
  • 手写脚本处理
def count(n: list):
    '''用来统计出现次数最多的字符,以此来排除乱码'''
    res = ""
    for i in range(0,len(n[0]),2):
        tmp = {}
        for j in n:
            if j[i:i+2] in tmp:
                tmp[j[i:i+2]] += 1
            else:
                tmp[j[i:i+2]] = 1
        counts = 0
        hexs = ""
        for key, value in tmp.items():
            if value > counts:
                hexs,counts = key,value
        res += chr(int(hexs,16))
    return res

def read_file_in_hex(file_path):
    with open(file_path, 'rb') as file:
        content = file.read()
        hex_output = content.hex()[:18000]  # 截取一段恰当长度,后面都是乱码+重复
        ans = ""
        for i in range(0,len(hex_output),2):
            ans += str(hex_output[i+1])
        result=""
        while int(ans[0:8],2) != 0x30:      # 第一次输出时发现是乱码,要处理移位,根据flag猜测第一位是0
            ans = ans[1:]
        for i in range(0,len(ans),8):
            result += str(hex(int(ans[i:i+8],2))[2:])
        result = result[:-(len(result)%88)]
        uuid = []
        for i in range(0,len(result),88):
            uuid += [result[i:i+88]]
        print(count(uuid))

file_path = 'flag.txt'
read_file_in_hex(file_path)
  • 0xGame{38df7992-6c53-11ef-b522-c8348e2c93c6}

[Week 3] Happy 1024!

  • 来个脑筋急转弯
  • 代码里有酒,梦,星,河,直接百度搜索
  • 0xGame{醉后不知天在水,满船清梦压星河。}

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇