1 int __cdecl main(int argc, const char **argv, const char **envp)
2 {
3 void *v3; // eax
4 int v4; // edx
5 void *v5; // eax
6 int result; // eax
7 void *v7; // eax
8 void *v8; // eax
9 void *v9; // eax
10 size_t i; // [esp+4Ch] [ebp-8Ch]
11 char s[4]; // [esp+50h] [ebp-88h]
12 char input[28]; // [esp+58h] [ebp-80h]
13 char v13; // [esp+74h] [ebp-64h]
14
15 v3 = (void *)print_402B30(&unk_446360, "Give me your flag:");
16 sub_4013F0(v3, (int (__cdecl *)(void *))sub_403670);
17 scanf_401440((int)&dword_4463F0, v4, (int)input, 127);
18 if ( strlen(input) < 30 && strlen(input) > 4 )
19 {
20 strcpy(s, "EIS{");
21 for ( i = 0; i < strlen(s); ++i )
22 {
23 if ( input[i] != s[i] ) // 输入前四位为:EIS{
24 {
25 v7 = (void *)print_402B30(&unk_446360, "Sorry, keep trying! ");
26 sub_4013F0(v7, (int (__cdecl *)(void *))sub_403670);
27 return 0;
28 }
29 }
30 if ( v13 == '}' ) // 输入的最后一位
31 {
32 if ( sub_4011C0(input) ) // 关键函数
33 v9 = (void *)print_402B30(&unk_446360, "Congratulations! ");
34 else
35 v9 = (void *)print_402B30(&unk_446360, "Sorry, keep trying! ");
36 sub_4013F0(v9, (int (__cdecl *)(void *))sub_403670);
37 result = 0;
38 }
39 else
40 {
41 v8 = (void *)print_402B30(&unk_446360, "Sorry, keep trying! ");
42 sub_4013F0(v8, (int (__cdecl *)(void *))sub_403670);
43 result = 0;
44 }
45 }
46 else
47 {
48 v5 = (void *)print_402B30(&unk_446360, "Sorry, keep trying!");
49 sub_4013F0(v5, (int (__cdecl *)(void *))sub_403670);
50 result = 0;
51 }
52 return result;
53 }

查看关键函数

 1 bool __cdecl sub_4011C0(char *a1)
2 {
3 size_t v2; // eax
4 signed int v3; // [esp+50h] [ebp-B0h]
5 char str[32]; // [esp+54h] [ebp-ACh]
6 int v5; // [esp+74h] [ebp-8Ch]
7 int j; // [esp+78h] [ebp-88h]
8 size_t i; // [esp+7Ch] [ebp-84h]
9 char s_mid[128]; // [esp+80h] [ebp-80h]
10
11 if ( strlen(a1) <= 4 )
12 return 0;
13 i = 4;
14 j = 0;
15 while ( i < strlen(a1) - 1 )
16 s_mid[j++] = a1[i++];
17 s_mid[j] = 0;
18 v5 = 0;
19 v3 = 0;
20 memset(str, 0, 0x20u);
21 for ( i = 0; ; ++i )
22 {
23 v2 = strlen(s_mid);
24 if ( i >= v2 )
25 break;
26 if ( s_mid[i] >= 'a' && s_mid[i] <= 'z' )
27 {
28 s_mid[i] -= 32; // 小写转大写
29 v3 = 1;
30 }
31 if ( !v3 && s_mid[i] >= 'A' && s_mid[i] <= 'Z' )
32 s_mid[i] += 32; // 大写转小写
33 str[i] = byte_4420B0[i] ^ sub_4013C0(s_mid[i]);// 异或
34 v3 = 0;
35 }
36 return strcmp("GONDPHyGjPEKruv{{pj]X@rF", str) == 0;
37 }

wp:

 1 date1=[ 0x0D, 0x13, 0x17, 0x11, 0x02, 0x01, 0x20, 0x1D, 0x0C, 0x02,
2 0x19, 0x2F, 0x17, 0x2B, 0x24, 0x1F, 0x1E, 0x16, 0x09, 0x0F,
3 0x15, 0x27, 0x13, 0x26, 0x0A, 0x2F, 0x1E, 0x1A, 0x2D, 0x0C,
4 0x22, 0x04]
5 # s=inpt(a1 ^ 0x55) + 72
6 s='GONDPHyGjPEKruv{{pj]X@rF'
7 s=list(s)
8 t=''
9 for x in range(len(s)):
10 c=chr(((ord(s[x])^date1[x])-72)^0x55)
11 if c.islower():
12 t+=c.upper()
13 else:
14 t+=c.lower()
15
16 print('EIS{'+t+'}')

EIS{wadx_tdgk_aihc_ihkn_pjlm}

IgniteMe -高校网络信息安全运维挑战赛的更多相关文章

  1. Reverse 高校网络信息安全运维挑战赛

    Reverse 高校网络信息安全运维挑战赛 1 signed int sub_403CC0() 2 { 3 unsigned int v0; // eax 4 int key_lens; // eax ...

  2. 【NetDevops】网络自动化运维--1获取用户基本信息

     版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.  之前博客的云主机到期了没续费,被删啦最重要的是没有备份!此处省略几个字.....      ...

  3. python网络自动化运维之环境搭建(EVE-NG+pycharm)

    参考了很多资料,发现现在很多环境用的都是GNS3加linux下的python,几乎没有是用EVE-NG加上pycharm的教程,EVE的功能如此强大,存在的教程却较少,这里我出一篇教程供使用EVE作为 ...

  4. python网络自动化运维paramiko实验

    运行环境: 物理机:win10 1903 网络设备:EVE-NG模拟器上运行思科三层路由器 网络设备OS版本:cisco ios(versions 15.6) python环境:pycharm 3.5 ...

  5. python网络自动化运维之telnetlib实验(EVE-NG+pycharm)

    运行环境: 物理机:win10 1903 网络设备:EVE-NG模拟器上运行思科三层路由器 网络设备OS版本:cisco ios(versions 15.6) python环境:pycharm 3.3 ...

  6. 浅谈SDN架构下的运维工作

    导读 目前国内的网络运维还处于初级阶段,工作人员每天就像救火一样,天天疲于奔命.运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所获,作为运维工程师的你,有木有遇到过类 ...

  7. [Linux] day01——运维

    开发和运维,本质都是提供一种服务. ---------------------------------(最终用户)1 应用2 中间件 服务平台 存储 架构 3 操作系统 硬件驱动4 计算机 网络设备 ...

  8. 网易OpenStack部署运维实战

    OpenStack自2010年项目成立以来,已经有超过200个公司加入了 OpenStack 项目,目前参与 OpenStack 项目的开发人员有 17,000+,而且这些数字还在增加,作为一个开源的 ...

  9. [转] 运维知识体系 -v3.1 作者:赵舜东(赵班长)转载请注明来自于-新运维社区:https://www.unixhot.com

    [From]https://www.unixhot.com/page/ops [运维知识体系]-v3.1 作者:赵舜东(赵班长) (转载请注明来自于-新运维社区:https://www.unixhot ...

随机推荐

  1. GitHub in depth

    GitHub in depth GitHub 高级玩法 / 进阶教程 https://github.com/trending/dart?since=daily https://github.com/t ...

  2. Gradle & Java

    Gradle & Java Gradle Build Tool I Modern Open Source Build Automation https://gradle.org/ https: ...

  3. 移动端 CSS 1px 问题及解决方案

    移动端 CSS 1px 问题及解决方案 viewport & transfrom: scale viewport 的 initial-scale 设为 1 UI 设计稿用rem 和 trans ...

  4. js inheritance all in one

    js inheritance all in one prototype & proto constructor Object.definepropety Object.create() js ...

  5. how to tell a function arguments length in js

    how to tell a function arguments length in js JavaScript函数不对参数值(参数)执行任何检查 https://www.w3schools.com/ ...

  6. Flutter & UI system & GUI & API & SDK

    Flutter & UI system & GUI & API & SDK https://book.flutterchina.club/chapter14/flutt ...

  7. Taro API

    Taro API Taro 的 API 包括 Taro 内置提供的 API 以及对小程序的端能力 API 的封装. https://taro-docs.jd.com/taro/docs/apis/ab ...

  8. React In Depth

    React In Depth React Component Lifecycle https://reactjs.org/docs/react-component.html https://react ...

  9. how to get window width in javascript

    how to get window width in javascript how to get window width in js How to Detect Screen Resolution ...

  10. MySQL切换版本踩坑记录(包括恢复数据方法)

    踩坑起因:在创建数据库时, 字段:create_time datetime DEFAULT CURRENT_TIMESTAMP, 报异常--Error Code: 1067 - Invalid def ...