[BUUCTF]REVERSE——[WUSTCTF2020]level1

[WUSTCTF2020]level1

附件

步骤:

  1. 下载下来的附件有两个,output.txt里是一堆数字
    在这里插入图片描述

  2. 64位ida打开第一个附件,检索字符串,发现了flag字样
    在这里插入图片描述

  3. 双击跟进,ctrl+x交叉引用,找到了关键函数
    在这里插入图片描述
    程序很简单,一开始打开flag文件读出了flag文件里的内容,之后将里面的内容按照12行到18行的语句进行处理后输出。

  4. 附件里还有一个文件,output.txt,猜测就是输出后的内容,将里面的数据根据这个算法还原一下flag里的内容

exp

a = [198,232,816,200,1536,300,6144,984,51200,570,92160,1200,565248,756,1474560,800,6291456,1782,65536000]

for i in range(19):
    if ((i+1) & 1):
        print(chr(a[i] >> (i+1)), end="")
    else:
        print (chr(a[i] // (i+1)),end="")

在这里插入图片描述

原文地址:https://www.cnblogs.com/xlrp/p/14273630.html