关闭

南邮CTF逆向题第五道maze解题思路

标签: maze逆向南邮CTFwriteupCTF
158人阅读 评论(0) 收藏 举报
分类:

如题

先百度一下名字 万一有收获呢 猜测可能考到迷宫算法

依旧是ELF

直接载入IDA

我一般习惯先shift+f12看下字符串

再看看main

__int64 __fastcall main(__int64 a1,char**a2,char**a3)

{

constchar*v3;// rsi

signed __int64 v4;// rbx

signedint v5;// eax

char v6;// bp

char v7;// al

constchar*v8;// rdi

__int64 v10;// [rsp+0h] [rbp-28h]

 

v10 =0LL;

puts("Input flag:");

scanf("%s",&s1,0LL);//限制获取输入字符串长度为24且必须开头5个字符为"nctf{" 最后一个字符位"}"

if( strlen(&s1)!=24||(v3 ="nctf{", strncmp(&s1,"nctf{",5uLL))||*(&byte_6010BF +24)!=125)

{

LABEL_22:

puts("Wrong flag!");

exit(-1);

}

v4 =5LL;

if( strlen(&s1)-1>5)

{

while(1)

{

v5 =*(&s1 + v4);

v6 =0;

if( v5 >78)

{

v5 =(unsigned __int8)v5;

if((unsigned __int8)v5 ==79)

{

v7 = sub_400650((char*)&v10 +4, v3);

goto LABEL_14;

}

if( v5 ==111)

{

v7 = sub_400660((char*)&v10 +4, v3);

goto LABEL_14;

}

}

else

{

v5 =(unsigned __int8)v5;

if((unsigned __int8)v5 ==46)

{

v7 = sub_400670(&v10, v3);

goto LABEL_14;

}

if( v5 ==48)

{

v7 = sub_400680(&v10, v3);

LABEL_14:

v6 = v7;

goto LABEL_15;

}

}

LABEL_15:

v3 =(constchar*)HIDWORD(v10);

if(!(unsigned __int8)sub_400690(asc_601060, HIDWORD(v10),(unsignedint)v10))

goto LABEL_22;

if(++v4 >= strlen(&s1)-1)

{

if( v6 )

break;

LABEL_20:

v8 ="Wrong flag!";

goto LABEL_21;

}

}

}

if( asc_601060[8*(signedint)v10 + SHIDWORD(v10)]!=35)

goto LABEL_20;

v8 ="Congratulations!";

LABEL_21:

puts(v8);

return0LL;

}

 

 

下边全是goto语句 我们直接将视图切为图表(Graph view)

按r可以发现

根据这四个字符"." ,"0","o" , "O"分别跳到不同的位置进行操作

 

我们再看下400690在搞什么鬼

想到是和601060有关

猜测是判断上面601060数组的第edi个值是否等于20h或23h,如果不等于就跳到

400822输出"wrong flag"

 

 

那么我们现在要做的就是看下601060这个地址 直接切到HEX界面

 

发现恰好为一个八阶方阵,而且数值只有3个,分别为20h,2Ah以及23h

那么函数400690的意思不就是判断当前的位置是否是从(0,0)走到(4,4),最初的四个跳转应该就是对应着上下左右四个方向

20 20 2A 2A 2A 2A 2A 2A 

 

2A 20 20 20 2A 20 20 2A

 

2A 2A 2A 20 2A 20 2A 2A 

 

2A 2A 20 20 2A 20 2A 2A

 

2A 20 20 2A 23 20 20 2A 

 

2A 2A 20 2A 2A 2A 20 2A

 

2A 2A 20 20 20 20 20 2A 

 

2A 2A 2A 2A 2A 2A 2A 2A

那么上下左右分别对应字符"." "0" "O" "o"

路径为右下右右下下左下下下右右右右上上左左

        o0oo00O000oooo..OO

还没完,记得要加上nctf{}

我们得到flag为nctf{o0oo00O000oooo..OO}

1
0
查看评论

170708 逆向-南邮CTF逆向(maze)

1625-5 王子昂 总结《2017年7月8日》 【连续第279天总结】 A. 南邮CTF逆向(5、6) B. 5: 又是maze,拖到IDA分析后发现主要内容就在main中:if ( strlen(&input) != 24 || strncmp...
  • whklhhhh
  • whklhhhh
  • 2017-07-08 19:42
  • 591

170706 逆向-南邮CTF平台(1-3)

1625-5 王子昂 总结《2017年7月6日》 【连续第277天总结】 A. 南邮CTF逆向(1-3) B. 1.拖入IDA,入门级的RE,直接F5看到main的代码,很简单,写入内存的flag: 刚开始看的时候没理解galf是什么意思,照着输却报错 后来下断到内存里看,发现是大端序的...
  • whklhhhh
  • whklhhhh
  • 2017-07-07 01:40
  • 492

南邮CTF练习题——web题

南邮CTF部分题解
  • dcison
  • dcison
  • 2016-11-11 07:58
  • 12879

实验吧CTF逆向题目Just Click题解

题目如下: 运行程序: 结合第一张题目提示已经能够猜到 是按一定的顺序点击1,2,3,4四个按钮就好 先来查下壳 这是个什么鬼 没见过的壳 我再试试  发现是.NET的程序 那就上这个  随便点开几个看看 结果发现关键代码 发现这个数组后 没看代码 直...
  • xiangshangbashaonian
  • xiangshangbashaonian
  • 2017-12-29 21:13
  • 108

南京邮电大学攻防平台 逆向writeup

南邮 逆向writeup看题目说使用IDA,用f5直接反编译可以得到源码int __cdecl main(int argc, const char **argv, const char **envp) { _BYTE v4[3]; // [sp+11h] [bp-7Fh]@2 signed ...
  • Aslani
  • Aslani
  • 2017-01-27 11:02
  • 639

NCTF 南京邮电大学网络攻防训练平台 WriteUp

WEB 签到题1 md5 collision 签到题2 这题不是WEB 层层递进 AAencode 单身二十年 你从哪里来 php decode 文件包含 单身一百年也没有用 Download~! COOKIE MYSQL sql injection 3 /x00 bypass again 变量覆盖...
  • Ni9htMar3
  • Ni9htMar3
  • 2016-12-21 22:11
  • 8628

南邮CTF逆向题第五道maze解题思路

如题 先百度一下名字 万一有收获呢 猜测可能考到迷宫算法 依旧是ELF 直接载入IDA 我一般习惯先shift+f12看下字符串 再看看main __int64 __fastcall main(__int64 a1, char **a2, ...
  • xiangshangbashaonian
  • xiangshangbashaonian
  • 2017-12-24 09:48
  • 158

送花 南邮NOJ网络选拔赛2084

送花 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 112       &#...
  • wyh7280
  • wyh7280
  • 2015-03-29 21:18
  • 403

看雪CTF 2017 第六题设计思路和解题思路

这道题主要需要花时间搞清楚套路,就迎刃而解了。^_^ 1.java层稍作字符串加密和类名方法名混淆处理(本来是打算java层也做点文章的@_@) 解题:通过阅读代码,可以知道check函数为关键函数,当返回为真的时候,注册成功。2.so层用花指令对程序指令进行混淆,在一定程度上防止分析。解题:编写...
  • hk9259
  • hk9259
  • 2017-06-14 21:41
  • 298

Download~!(南邮CTF)

传送门|——————|点那两首歌的链接可以下载,下下来发现星星点灯是不想长大,不想知道不能放==(和题目没关系,下下来只是听歌2333).看源码,发现下载链接<p><a href="download.php?url=eGluZ3hpbmdkaWFuZGVuZy5tcDM=...
  • LANVNAL
  • LANVNAL
  • 2017-02-02 23:59
  • 626
    个人资料
    • 访问:13412次
    • 积分:408
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条