(BUUCTF)Dest0g3 520迎新赛之REVERSE

simpleXOR

使用IDA64打开进行反编译
在这里插入图片描述
查看result_0数组的值
在这里插入图片描述
在这里插入图片描述
分析代码编写脚本

#include<stdio.h>

int main()
{
	//v4 = result_0
	int v4[36] = {0xB3,0x91,0x82,0x80,0xC3,0x9B,0xCE,0x75,0xCF,0x9C,
				  0x9A,0x85,0x85,0xCD,0xB8,0x84,0xAA,0x7D,0xBD,0xBB,
				  0xB1,0xB5,0x96,0x71,0x8D,0x9E,0x86,0xBF,0x73,0xA8,
				  0xA3,0x9C,0x83,0x65,0x9E,0x57
					};

	int flag[36];
	int v6 = 247;
	int i;
	
	for(i=0; i<36; i++)
	{
		flag[i] = (v4[i]^v6) - i;
		printf("%c",flag[i]);
	}

	return 0;
}

hi

使用IDA64打开进行反编译,enc数组是小端存储,flag的长度为45
在这里插入图片描述
查看数组x的值
在这里插入图片描述
编写脚本

#include<stdio.h>

int main()
{
	//小端存储,逆序一下数组的值
	int enc[45] = {0x97,0x64,0x48,0xC6,0x1C,0x7A,0x8E,0x9F,
					0x46,0xBD,0x60,0xE7,0x82,0xF3,0xEE,0x69,
					0x49,0xF7,0x0E,0xE3,0xE2,0x17,0xC0,0xB9,
					0x2C,0x39,0x30,0xA4,0x48,0x01,0x41,0x98,
					0x39,0xA9,0xB5,0xE5,0x11,0x74,0x0E,0xE8,
					0xAC,0xFD,0x8B,0xA5,0x6D
					};
	int x[45] = {0x7B,0x51,0xF3,0x5A,0xCC,0x39,0xF9,0x92,0x1C,0x9E,
				0x58,0x69,0x9D,0xF7,0xFD,0x4A,0x3E,0x0FB,0x1D,0x2C,
				0x4D,0x0C,0x70,0xB1,0x3B,0x8D,0x25,0xED,0x91,0xB1,
				0x73,0x8D,0x82,0xE6,0xE7,0x50,0x20,0x61,0x62,0x3C,
				0x0,0x3A,0xA6,0x9D,0x32
				};
	int v1;
	int i,j;
	for(i=0; i<45; i++)
	{
		for(j=33; j<133; j++)
		{
			v1 = 23 * j;
			//&0xff相当于(_BYTE)
			if( (((v1&0xff) + x[i])&0xff) == enc[i])
			{
				printf("%c",j);
				break;
			}
		}
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值