ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

深育杯 Reverse WP

2021-11-22 12:35:08  阅读:197  来源: 互联网

标签:enc utf Reverse data 深育杯 flag WP fin out


press

直接调试黑盒分析算法输入输出,发现下一个字节的依赖于上一个字节来确定。可以直接将press程序作为一个输入输出的模块,从第一个字节开始枚举比对密文,匹配再进入下一个字节。以下代码需要在指定位置下断点调试,这个是为了让数据输入输出同步,否则会有部分字符错误。

# encoding=utf-8
import subprocess
import os
import time
enc_data = list(open("out.bak", "rb").read())
flag = list(b"ZmxhZ3tkZTBiZDY3ZS02ZDI19d995d185ce44090c13e2984b7ecc6d4123123123123123")
fin_flag = "ZmxhZ3tkZTBiZDY3ZS02ZDI"
for i in range(len(fin_flag) ,60):
    for e in range(32,127):
        #更新flag文件
        flag[i] = e
        f = open('flag', 'rb+')
        f.write(bytes(flag))
        f.close()
        
        # 启动进程
        subprocess.Popen("./press") # 启动进程
        time.sleep(0.03)
        # 读取运行结果out
        enc = open("./out", 'rb')
        data = enc.read()
        #ZmxhZ3tkZTBiZDY3ZS02ZDI1LTg3ZDctMTg3Ni1hZDEzMWE2MTY1Y2J9
        if data[i] == enc_data[i]:
            fin_flag += chr(e) 
            print("flag = %s" % fin_flag)
            break# 此处下断点

        enc.close()
        os.remove('./out')
        time.sleep(0.03)
        # 比较
        

最后解得 ZmxhZ3tkZTBiZDY3ZS02ZDI1LTg3ZDctMTg3Ni1hZDEzMWE2MTY1Y2J9
base64一下得flag
flag{de0bd67e-6d25-87d7-1876-ad131a6165cb}

Lithops

经逆向分析,这个题目就是一个编码问题,多字符串至utf-8字符串之间的转换问题。最终的校验的数据是一个utf-8的数据,提取出来后将其按utf-8输出即可。

flag是 不做伟大时代的旁观者

标签:enc,utf,Reverse,data,深育杯,flag,WP,fin,out
来源: https://www.cnblogs.com/cx1ng/p/15587962.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有