buuctf刷题记录12 [FlareOn4]IgniteMe

27 篇文章 0 订阅

没有加壳,打开

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IHOnctFm-1596275838840)(D:\markdown\文件\图片\7.4.1.png)]

有两个关键函数,sub-4010f0和sub-401050

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PNhxWwG7-1596275838843)(D:\markdown\文件\图片\7.4.2.png)]

看到两个’\n’,’\t’猜想这个sub-4010f0函数应该是进行输入和排除掉’\n’,’\t’

再看sub-401050:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iXtZzJ2N-1596275838844)(D:\markdown\文件\图片\7.4.3.png)]

sub_401050函数就是将字符串逆向做了异或操作之后,与已知字符串byte_403000对比。

关键是这里的v4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O8lLXNsy-1596275838846)(D:\markdown\文件\图片\7.4.4.png)]

从代码不好直接求出来,动调查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1A9xnrP-1596275838846)(D:\markdown\文件\图片\7.4.5.png)]

这里的a1就是v4,可以看到是4

脚本:

#include <stdio.h>
int main()
{
	int i;
	char v4=4;
 char a[] =
{
  0x0D, 0x26, 0x49, 0x45, 0x2A, 0x17, 0x78, 0x44, 0x2B, 0x6C, 
  0x5D, 0x5E, 0x45, 0x12, 0x2F, 0x17, 0x2B, 0x44, 0x6F, 0x6E, 
  0x56, 0x09, 0x5F, 0x45, 0x47, 0x73, 0x26, 0x0A, 0x0D, 0x13, 
  0x17, 0x48, 0x42, 0x01, 0x40, 0x4D, 0x0C, 0x02, 0x69, 0x00
};
char b[0x27];
for (i=0x27;i>=0;i--)
{
	b[i]=v4^a[i];
	v4=b[i];
}
for(i=0;i<0x27;i++)
{
	printf("%c",b[i]);	
}

}

得到flag: flag{R_y0u_H0t_3n0ugH_t0_1gn1t3@flare-on.com}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值