迷宫题

 1 __int64 __fastcall main(__int64 a1, char **a2, char **a3)
2 {
3 signed __int64 mid_i; // rbx
4 signed int mid_str; // eax
5 bool v5; // bp
6 bool v6; // al
7 const char *v7; // rdi
8 __int64 arr; // [rsp+0h] [rbp-28h]
9
10 arr = 0LL;
11 puts("Input flag:");
12 scanf("%s", &s1, 0LL);
13 if ( strlen(&s1) != 24 || strncmp(&s1, "nctf{", 5uLL) || *(&byte_6010BF + 24) != '}' )// 输入24位,前5位为ntcf{ 第24位是}
14 {
15 LABEL_22:
16 puts("Wrong flag!");
17 exit(-1);
18 }
19 mid_i = 5LL;
20 if ( strlen(&s1) - 1 > 5 )
21 {
22 while ( 1 )
23 {
24 mid_str = *(&s1 + mid_i); // 从输入的第5位开始
25 v5 = 0;
26 if ( mid_str > 'N' )
27 {
28 mid_str = mid_str;
29 if ( mid_str == 'O' )            
30 {
31 v6 = l_sub_400650(&arr + 1); // 操作j 列 'O'对应左
1 bool __fastcall sub_400650(_DWORD *a1)
2 {
3 int v1; // eax
4
5 v1 = (*a1)--;
6 return v1 > 0;
7 }



32 goto LABEL_14;               
33 }
34 if ( mid_str == 'o' )
35 {
36 v6 = l_add_400660(&arr + 1); // 操作j 列 'o'对应右
37 goto LABEL_14;
38 }
39 }
40 else
41 {
42 mid_str = mid_str;
43 if ( mid_str == '.' )
44 {
45 v6 = h_sub_400670(&arr); // 操作i 行 '.'对应上
1 bool __fastcall sub_400670(_DWORD *a1)
2 {
3 int v1; // eax
4
5 v1 = (*a1)--;
6 return v1 > 0;
7 }



46 goto LABEL_14;
47 }
48 if ( mid_str == '0' )
49 {
50 v6 = h_sub_400680(&arr); // 操作i 行 '0'对应下
51 LABEL_14:
52 v5 = v6;
53 goto LABEL_15;
54 }
55 }
56 LABEL_15:
57 if ( !check_400690(asc_601060, SHIDWORD(arr), arr) )// 走' ' 或者 '#'
58 // #define HIDWORD(x) (((_DWORD)&(x)+1))
59 //
60 // ******* * **** * **** * *** *# *** *** *** *********
61 goto LABEL_22;
62 if ( ++mid_i >= strlen(&s1) - 1 )
63 {
64 if ( v5 )
65 break;
66 LABEL_20:
67 v7 = "Wrong flag!";
68 goto LABEL_21;
69 }
70 }
71 }
72 if ( asc_601060[8 * arr + SHIDWORD(arr)] != '#' )// 最终移动到#
73 goto LABEL_20;
74 v7 = "Congratulations!";
75 LABEL_21:
76 puts(v7);
77 return 0LL;
78 }

处理脚本:

 1 import numpy as np
2 q='nctf{'
3 h='}'
4 asc=' ******* * **** * **** * *** *# *** *** *** *********'
5 mg=np.array(list(asc))
6 print(str(mg.reshape(int(len(asc)/8),8)).replace('\'',''))
7 # [[ * * * * * *]
8 # [* * *]
9 # [* * * * * *]
10 # [* * * * *]
11 # [* * # *]
12 # [* * * * * *]
13 # [* * *]
14 # [* * * * * * * *]]
15 mid_str='右下右右下下左下下下右右右右上上左左'.replace('上','.').replace('下','0').replace('左','O').replace('右','o')
16 print(q+mid_str+h)
17 # nctf{o0oo00O000oooo..OO}
//'O'

攻防世界 maze NJUPT CTF 2017的更多相关文章

  1. 逆向-攻防世界-maze

    题目提示是走迷宫. IDA载入程序分析. 输入字符长度必须是24,开头必须是nctf{,结尾必须是}.在125处按R就可以变成字符. sub_400650和sub_400660是关键函数,分析sub_ ...

  2. 攻防世界Hello,CTF writeup

    解题过程 首先在ida中进行反汇编,查看main函数的代码: 代码的的36行处进行了一个字符串比较,如果v10的值等于v13的值会反馈一个success的输出.v13的值在第15行给出,因此需要知道v ...

  3. 攻防世界--maze

    测试文件下载:https://adworld.xctf.org.cn/media/task/attachments/fa4c78d25eea4081864918803996e615 1.准备 获得信息 ...

  4. 攻防世界 csaw2013reversing2 CSAW CTF 2014

    运行程序 flag显示乱码 IDA打开查看程序逻辑 1 int __cdecl __noreturn main(int argc, const char **argv, const char **en ...

  5. 攻防世界 reverse 新手练习区

    1.re1 DUTCTF IDA shift+F12 查看字符串 DUTCTF{We1c0met0DUTCTF} 2.game ZSCTF zsctf{T9is_tOpic_1s_v5ry_int7r ...

  6. 攻防世界 WEB 高手进阶区 TokyoWesterns CTF shrine Writeup

    攻防世界 WEB 高手进阶区 TokyoWesterns CTF shrine Writeup 题目介绍 题目考点 模板注入 Writeup 进入题目 import flask import os a ...

  7. CTF -攻防世界-crypto新手区(5~11)

    easy_RSA 首先如果你没有密码学基础是得去恶补一下的 然后步骤是先算出欧拉函数 之后提交注意是cyberpeace{********}这样的 ,博主以为是flag{}耽误了很长时间  明明没算错 ...

  8. 攻防世界 reverse evil

    这是2017 ddctf的一道逆向题, 挑战:<恶意软件分析> 赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件.随后IT部门发现小A的电脑发出了异常网络访问请求,进 ...

  9. 攻防世界 | CAT

    来自攻防世界官方WP | darkless师傅版本 题目描述 抓住那只猫 思路 打开页面,有个输入框输入域名,输入baidu.com进行测试 发现无任何回显,输入127.0.0.1进行测试. 发现已经 ...

随机推荐

  1. SwiftUI error All In One

    SwiftUI error All In One Instance member xxx cannot be used on type yyy Instance member 'game' canno ...

  2. Axios 取消 Ajax 请求

    Axios 取消 Ajax 请求 Axios XMLHttpRequest https://caniuse.com/?search=XMLHttpRequest https://developer.m ...

  3. js logical operation all in one

    js logical operation all in one 逻辑运算 Logical AND (&&) Logical AND assignment (&&=) L ...

  4. color recognition by image

    color recognition by image 通过图像进行颜色识别 https://imagecolorpicker.com/ unknown color origin pic grey bl ...

  5. robots.txt

    robots.txt A robots.txt file tells search engine crawlers which pages or files the crawler can or ca ...

  6. learning free programming resources form top university of the world

    learning free programming resources form top university of the world Harvard university https://www. ...

  7. css & box-shadow & outline

    css & box-shadow & outline CSS3 box-shadow : 4 sides symmetry https://learning.xgqfrms.xyz/C ...

  8. input number css hidden arrow

    input number css hidden arrow show arrow OK input[type="number"]::-webkit-inner-spin-butto ...

  9. js navigator.wakeLock 保持屏幕唤醒状态

    let lock; btn.addEventListener("click", async () => { try { if (lock) { lock.release(); ...

  10. go-admin在线开发平台学习-2[程序结构分析]

    紧接着上一篇,本文我们对go-admin下载后的源码进行分析. 首先对项目所使用的第三方库进行分析,了解作者使用的库是否是通用的官方库可以有助于我们更快地阅读程序.接着对项目的main()方法进行分析 ...