BUU[ACTF新生赛2020]rome

分析

首先查壳,无壳32位,放入IDA分析

image-20220704185946167

image-20220704190001224

就是简单的分析,两个函数处理大小写字母和符号然后比较字符

脚本(这里用穷举法)

#include<stdio.h>
#include<string.h>
int main()
{
char flag[16]={0};
char a[16] = { 'Q','s','w','3','s','j', '_','l','z','4','_','U','j','w','@','l' };
for(int i=0;i<16;i++)
{
for(int j=0;j<127;j++)
{
int z;
z=j;
if(j>64&&j<=90)
j=(j-51)%26+65;
if(j>96&&j<=122)
j=(j-79)%26+97;
if(j==a[i])
flag[i]=z;
}
}
for(int i=0;i<16;i++)
{
printf("%c",flag[i]);
}
return 0;
}
//flag{Cae3ar_th4_Gre@t}