[SWPUCTF 2021 新生赛]re1

我们一起来看一下这道逆向题吧!
1.检查一下是几位的程序,并查看是否有壳。

看图可以知道它是64位的程序,并没有壳,可以放心反汇编啦!
2.让我们来看一下它的伪C代码:

这题的代码也是浅显易懂呀,主要就是输入一个Flag,再将这个Flag进行处理,处理后将得到的字符串与程序中已有的字符串进行比较,一样的话就输出"you are right!"啦!这题就顺理成章的解出来了.
3.既然知道了它的逻辑,我们把它逆着推回去就好了,已知字符串--->反向处理--->我们需要的Flag,这时候就需要我们细细品味这段处理过程了,我们需要逆着理解一下

分析知:它只是简单的字符替换,我们只需要逆着替换回去就好啦!
4.exp:
`#include <stdio.h>
#include <string.h>

int main() {
char str[15] = "{34sy_r3v3rs3}";
int i = 0;
for (int i = 0; i < 14; i++) {
if (str[i] == 51) {
str[i] = 101;
}
if ( str[i] == 52 )
str[i] = 97;
}
puts(str);
return 0;
}`
5.运行程序就可以得到flag了

posted @   yxxyxx  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示