BUUCTF之[MRCTF2020]Transform(RE)

题目链接:https://buuoj.cn/challenges#[MRCTF2020]Transform

文件下载下来后是一个exe文件,先运行

 

 

查壳,无壳,是一个64位的程序

 

 

 

上IDA,看到有main函数,f5,开始分析

 

 

 

经过上面的分析,可以反推,让byte_40F0E0异或dword_40F040得到打乱后输入的字符串,再将打乱后的字符还原一下就行了

 

上脚本

 

 

dword_40F040 = [0x9, 0x0A, 0x0F, 0x17, 0x7, 0x18, 0x0C, 0x6, 0x1, 0x10, 0x3, 0x11, 0x20, 0x1D, 0x0B, 0x1E, 0x1B, 0x16, 0x4, 0x0D, 0x13, 0x14, 0x15, 0x2, 0x19, 0x5, 0x1F, 0x8, 0x12, 0x1A, 0x1C, 0x0E, 0]

byte_40F0E0 = [0x67, 0x79, 0x7B, 0x7F, 0x75, 0x2B, 0x3C, 0x52, 0x53, 0x79, 0x57, 0x5E, 0x5D, 0x42, 0x7B, 0x2D, 0x2A, 0x66, 0x42, 0x7E, 0x4C, 0x57, 0x79, 0x41, 0x6B, 0x7E, 0x65, 0x3C, 0x5C, 0x45, 0x6F, 0x62, 0x4D]

flag = [0]*33               #长度

for i in range(len(dword_40F040)):
    byte_40F0E0[i] ^= dword_40F040[i]     #得到打乱后的flag

for i in range(len(dword_40F040)):
    flag[dword_40F040[i]] = byte_40F0E0[i]   
    
print (''.join([chr(x) for x in flag]))

 

 

 

 

 MRCTF{Tr4nsp0sltiON_Clph3r_1s_3z}

 

posted @ 2022-02-20 13:46  Eip的浪漫  阅读(288)  评论(0)    收藏  举报