前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DUTCTF 201x RE20

DUTCTF 201x RE20

作者头像
ApacheCN_飞龙
发布2019-02-15 10:24:16
4350
发布2019-02-15 10:24:16
举报
文章被收录于专栏:信数据得永生信数据得永生

http://www.shiyanbar.com/ctf/50

从FLAG 上来看,应该是DUTCTF 的原题,中等难度。20分也不高。

首先搜索字符串,找到 flag 字样,然后上溯到函数头。之后对这段汇编代码进行分析,等效的伪代码是:

代码语言:javascript
复制
char str1[0x32]; //ebp - 0x64
char str2[0x32] = "kow" * 7; //ebp - 0x44
char str3[0x32] = "DVVFXK{Ig45tI(oNs|Hbjdlf}"; //ebp - 0x24

// func + 0xe
scanf("%s", str1);

// func + 0x13
int c = 0;
for(int i = 0; str1[i] != 0; i++) {
    str1[i] += c;
    c ++;
    if(c > 5)
        c = 0;
}

// func + 0x39
//无意义代码
for(int i = 0; str2[i] != 0; i++) {
    str2[i] += 1;
}

// func + 0x4f
// 比较
if(!strcmp(str1, str3)) {
    // func + 0x85
    // 成功
}
else {
    // func + 0x70
    // 失败
}

我们要把FLAG还原出来。第一行的字符的ascii值减去第二行得到第三行

代码语言:javascript
复制
DVVFXK{Ig45tI(oNs|Hbjdlf}
0123450123450123450123450
DUTCTF{He11oI'mKowHahaha}

GETFLAG

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年03月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档