[SWPUCTF 2021 新生赛]re2

查个壳:

64位,运行:

进IDA看看:

简单加密函数,不多赘述上脚本就好:

int main(){
string Des = "ylqq]aycqyp{";
string flag = "";
for (int i = 0; i < Des.size(); i++) {
for (int j = 32; j < 127; j++) {
if ((Des[i] <= 96 || Des[i] > 98) && (Des[i] <= 64 || Des[i] > 66)) {
if (j - 2 == Des[i])flag += j;
} else {
if (j + 24 == Des[i])flag += j;
}
}
}
cout << flag << endl;
return 0;
}

得到一个a{nss_ca{esa{r},看着明显就不对,(不信的话就交一下看),看到每个‘{’前边都有一个a,会不会是多解?(因为我没加break,所以如果多解的话是会出现多一个字符出来)我们把break加上。

int main(){
string Des = "ylqq]aycqyp{";
string flag = "";
for (int i = 0; i < Des.size(); i++) {
for (int j = 32; j < 127; j++) {
if ((j <= 96 || j > 98) && (j <= 64 || j > 66)) {
if (j - 2 == Des[i]){
flag += j;break;
}
} else {
if (j + 24 == Des[i]){
flag += j;break;
}
}
}
}
cout << flag << endl;
return 0;
}

得到anss_caesar},‘{’没得了,还真是多解,根据惯例,{}内是不会出现‘{’,所以我们把第一个‘a’改成‘{’,就可以了。

最后NSSCTF{nss_caesar}

posted @   TFOREVERY  阅读(164)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示