迷宫题

 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. js中当for循环中有事件要使用循环变量时,变量用var声明和let声明的区别

    var 声明一个全局变量,声明的变量会变量提升: let 声明一个局部变量: 当页面加载完后,for循环也结束了,如果用var声明的变量此时也随着for循环的结束而自增到满足结束循环的条件, 此时调用 ...

  2. js sort tricks All In One

    js sort tricks All In One js 排序技巧 const arr = [ { label: 'False 1 ', disabled: false, }, { label: 'F ...

  3. 前端使用 js 如何实现大文件上传

    前端使用 js 如何实现大文件上传 大文件上传 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  4. HTML script tag type all in one

    HTML script tag type all in one script type https://developer.mozilla.org/en-US/docs/Web/HTML/Elemen ...

  5. 微信小程序批量上传图片 All In One

    微信小程序批量上传图片 All In One open-data https://developers.weixin.qq.com/miniprogram/dev/component/open-dat ...

  6. Google & Chrome console & text adventure game

    Google & Chrome console & text adventure game Google's text adventure game https://www.googl ...

  7. Dart & data type(static / dynamic)

    Dart & data type(static / dynamic) Darts 飞镖 标枪 javelin/darts type https://dartpad.dartlang.org/ ...

  8. node.js & create file

    node.js & create file node js create file if not exists https://nodejs.org/api/fs.html#fs_fs_ope ...

  9. js & Event Bus

    js & Event Bus global event handler (broadcast / trigger / emit / listen ) // 实现一个 EventBus类,这个类 ...

  10. c++ 设置桌面壁纸(win)

    #include <iostream> #include <Windows.h> int main() { const char* path = "C:\\Users ...