题目:ezmaze

re选手投递区

链接:https://adworld.xctf.org.cn/challenges/details?hash=8254ba70-6bfd-11ed-ab28-000c29bc20bf&task_category_id=4&rwNmOdr=1676962297545

无壳,64位,打开查看main

__int64 __fastcall main()
{
_main();
printf("Welcome to the maze game. Try to get out of the maze and get the flag.\n");
initmap();
text_55("%s", Input);
if ( check(Input) )
printf("Congratulations on coming out of the maze! The flag is 'flag{your input}'\n");
else
printf("What a pity. You're still trapped in the maze :(\n");
system("pause");
return 0i64;
}

将输入的调入了内部函数check,

bool __fastcall check(char *ch_0)
{
int v2; // eax
char *v3; // rcx
unsigned int v4; // er8
unsigned int v5; // edx
char *v6; // r11
char v7; // al v2 = strlen(ch_0);
if ( v2 > 0 )
{
v3 = ch_0;
v4 = 0;
v5 = 0;
v6 = &ch_0[v2 - 1 + 1];
while ( 1 )
{
v7 = *v3;
if ( *v3 == 's' )
{
++v5;
}
else if ( v7 > 's' )
{
if ( v7 != 'w' )
return 0;
--v5;
}
else if ( v7 == 'a' )
{
--v4;
}
else
{
if ( v7 != 'd' )
return 0;
++v4;
}
if ( !realmap[10 * v5 + v4] || v5 > 9 || v4 > 9 )
break;
if ( v6 == ++v3 )
return v4 == 9 && v5 == 9;
}
}
return 0;
}

很明显的思路从(0,0)->(9,9).wsad控制上下左右

现在就是要找到迷宫了

可以看到这个if ( !realmap[10 * v5 + v4] || v5 > 9 || v4 > 9 ),realamp是我们要找的迷宫了,

但是查看到发现没有。。应该是程序运行时才出来的,

main()函数中的initmap();应该就是生成迷宫的了,动态调试一下

选中edit->Exorp data导出即可得到迷宫

最简单的方法手动走出迷宫

flag{sddssdddwddwddsssaasassssddd}

感兴趣的话可以学习一下优先搜索算法得到路径

攻防世界_ezmaze的更多相关文章

  1. CTF--web 攻防世界web题 robots backup

    攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...

  2. CTF--web 攻防世界web题 get_post

    攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...

  3. 攻防世界 web进阶练习 NewsCenter

    攻防世界 web进阶练习 NewsCenter   题目是NewsCenter,没有提示信息.打开题目,有一处搜索框,搜索新闻.考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有 ...

  4. 【攻防世界】高手进阶 pwn200 WP

    题目链接 PWN200 题目和JarvisOJ level4很像 检查保护 利用checksec --file pwn200可以看到开启了NX防护 静态反编译结构 Main函数反编译结果如下 int ...

  5. XCTF攻防世界Web之WriteUp

    XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...

  6. 攻防世界 | CAT

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

  7. 攻防世界 robots题

    来自攻防世界 robots [原理] robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在, ...

  8. 【攻防世界】 高手进阶区 Recho WP

    0x00 考察点 考察点有三个: ROP链构造 Got表劫持 pwntools的shutdown功能 0x01 程序分析 上来三板斧 file一下 checksec --file XXX chmod ...

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

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

  10. 攻防世界web新手区做题记录

    学校信安协会第一次培训结束后的作业,要求把攻防世界的web新手区题目做一遍并写题解. 第一题 view_source 查看源代码右键不能用,但是F12能用,于是找到源代码 输入到flag框即可 后来在 ...

随机推荐

  1. Nacos 实现 AP+CP原理[Raft 算法 NO]

    来源于网络 一.什么是 Raft算法 Raft 适用于一个管理日志一致性的协议,相比于 Paxos 协议 Raft 更易于理解和去实现它.为了提高理解性,Raft 将一致性算法分为了几个部分,包括领导 ...

  2. MyBatisPlus 逻辑删除演示

    一.数据库 数据库中添加逻辑删除字段:

  3. vue对象深拷贝(避免对象赋值,改变一个对象的值,另一个对象也变化)

    对象直接赋值时,例如 let b = { name: 'name', age: 12} let a=b, a.age = 13 console.log(b.age)  // 13 由此可见,当改变 a ...

  4. do { } while(){ }

    1 var j=10; 2 do{ 3 console.log("十八岁以下禁止观看") 4 console.log(j); 5 j++; //j为18之前都不执行while 6 ...

  5. 超全 泛微 E9 Ecology 9开发资料大全 开源资源下载 泛微E9二次开发 泛微开发实战经验 泛微开发实战例子 泛微二次开发项目例子 泛微二次开发Demo 泛微二次开发完整例子 泛微二次开发入门

    由于工作需要,E9在泛微一推出来,以前所在的企业就第一时间上线了,经过四年多的运行,功能强大再加上在上面开发非常多的业务,一般的企业员工只需要打开泛微就可以处理完平时信息化的业务.后来又去外包公司专业 ...

  6. [灾备]独立磁盘阵列(RAID)技术

    本文是对3个月前临时出差前往客户现场,安装交付我司大数据产品时使用的一项硬件级的灾备技术的简要复盘. 1 独立磁盘阵列--RAID:概述 1.1 定义 RAID := Redundant Arrays ...

  7. idea快捷键--增强for循环

    增强for循环,用于遍历:数组或单列集合 快捷键: 数组.for

  8. Redis分布式锁这样用,有坑?

    背景 在微服务项目中,大家都会去使用到分布式锁,一般也是使用Redis去实现,使用RedisTemplate.Redisson.RedisLockRegistry都行,公司的项目中,使用的是Redis ...

  9. 无法使用Resource注解

    问题描述: 学习Spring框架的时候,发现无法使用@Resource注解,只能使用@Autowired注解. 问题原因: JDK11删除了javax.annotation包,需要导入,否则无法使用@ ...

  10. ansible-kubeadm在线安装k8s v1.19-v1.20版本

    ansible-kubeadm在线安装k8s v1.19-v1.20版本 1. ansible-kubeadm在线安装k8s v1.19-v1.20版本 安装要求 确保所有节点系统时间一致 操作系统要 ...