[BUUCTF]REVERSE——xor

xor

附件

步骤:
附件很小,直接用ida打开,根据检索得到的字符串,找到程序关键函数
在这里插入图片描述
程序很简单,一开始让我们输入一个长度为33的字符串给v6,然后v6从第二个字符开始与前一个字符做异或运算,得到的字符串与global比较,如果相同,我们输入的字符串就是flag

看一下global的值

在这里插入图片描述
global = [‘f’, 0x0A, ‘k’, 0x0C, ‘w’, ‘&’, ‘O’, ‘.’, ‘@’, 0x11, ‘x’, 0x0D, ‘Z’, ‘;’, ‘U’, 0x11, ‘p’, 0x19, ‘F’, 0x1F, ‘v’,’"’, ‘M’, ‘#’, ‘D’, 0x0E, ‘g’, 6, ‘h’, 0x0F, ‘G’, ‘2’, ‘O’]

异或运算,两次异或会还原,所以我们将global字符串根据上面的规则异或一下就能得到flag

推荐字符串在ida里复制,手敲容易出错
int型的数字要转换成字符型,也可以一开始写的时候就写出字符型
在这里插入图片描述

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