[RCTF2019]DontEatMe
前言
一道迷宫题,但是输入被加密后使用,迷宫也需要在程序中找出并没有直接输出
分析
反调试

发现有两个比较特殊的地方,随机数和创建了新线程,随机数后面又被重新赋值给覆盖了,暂时不用管,ZwSetInformationThread函数
NTSYSAPI NTSTATUS ZwSetInformationThread([in] HANDLE ThreadHandle, [in] THREADINFOCLASS ThreadInformationClass,[in] PVOID ThreadInformation,[in] ULONG ThreadInformationLength
);
发现类型参数传入17造成反调试
typedef enum _THREADINFOCLASS {ThreadBasicInformation,ThreadTimes,ThreadPriority,ThreadBasePriority,ThreadAffinityMask,ThreadImpersonationToken,ThreadDescriptorTableEntry,ThreadEnableAlignmentFaultFixup,ThreadEventPair,ThreadQuerySetWin32StartAddress,ThreadZeroTlsCell,ThreadPerformanceCount,ThreadAmILastThread,ThreadIdealProcessor,ThreadPriorityBoost,ThreadSetTlsArrayAddress,ThreadIsIoPending,ThreadHideFromDebugger
}THREAD_INFO_CLASS;
ThreadHiderFromDebugger如果为一个线程设置了这个标志,那么这个线程就不会再发送关于调试事件的通知,可以直接改为0,避免反调试
maze

直接让程序执行到这,switch上面区域对迷宫进行生成,可以发现是上下左右的移动判断,发现迷宫被存在BA53a8,dump出来
dword_BA53A8 dd 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
.data:00BA53A8 dd 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1
.data:00BA53A8 dd 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1
.data:00BA53A8 dd 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1
.data:00BA53A8 dd 1, 0, 1, 1, 1, 1, 0, 0, 0, 0@, 0, 0, 0, 1, 1, 1
.data:00BA53A8 dd 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1
.data:00BA53A8 dd 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1
.data:00BA53A8 dd 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1
.data:00BA53A8 dd 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1
.data:00BA53A8 dd 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1
.data:00BA53A8 dd 1, 0, 0, 0, 0, 0#, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1
.data:00BA53A8 dd 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1
.data:00BA53A8 dd 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1
.data:00BA53A8 dd 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
.data:00BA53A8 dd 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
.data:00BA53A8 dd 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
.data:00BA57A8 ; char byte_BA57A8[]
根据程序发现从#号到@这里路径为ddddwwwaaawwwddd
blowfish
根据findcrypt插件发现是belowfish加密,第一次看见这个加密
Blowfish 是一种可变密钥长度的 64 位分组密码。该算法由两部分组成:密钥扩展部分和数据加密部分。
算法实现直接放在了主函数密钥为覆盖随机数的值
00 0f 1a 01 35 3a 3b 20
因为字符串长度为16多余的八位是空格产生的,所以flag{db824ef8605c5235b4bbacfa2ff8e087}
相关文章:
[RCTF2019]DontEatMe
前言 一道迷宫题,但是输入被加密后使用,迷宫也需要在程序中找出并没有直接输出 分析 反调试 发现有两个比较特殊的地方,随机数和创建了新线程,随机数后面又被重新赋值给覆盖了,暂时不用管,ZwSetInformat…...
6. CSS(三)
目录 一、盒子模型 (一)网页布局的本质 (二)盒子模型组成 (三)边框(border) (四)表格的细线边框 (五)内边距(padding…...
计算机网络—HTTP
这里写目录标题 HTTP是什么HTTP常见状态码HTTP常见字段GET与POST的区别Get和Post是安全和幂等吗PUT幂等,不安全DELETE幂等,不是安全 HTTP缓存技术HTTP缓存实现技术 HTTP1.0优缺点和性能HTTP1.1优缺点和性能HTTP2优缺点和性能HTTP3优缺点和性能HTTP和HTTP…...
Tomcat线程池原理
1. 一个 SpringBoot 项目能同时处理多少请求?tomcat容器, 200 次。 2. 怎么来的? 而点击这些线程,查看其堆栈消息,可以看到 Tomcat、threads、ThreadPoolExecutor 等关键字 基于“短时间内有 200 个请求被立马处理…...
踩坑 视觉SLAM 十四讲第二版 ch13 编译及运行问题
一、安装Geset 库 sudo apt-get install libgtest-dev cd /usr/src/gtest sudo mkdir build cd build sudo cmake .. //一定要以sudo的方式运行,否则没有写入权限 sudo make //这个也一样要以sudo的方式 sudo cp libgtest*.a /usr/local/lib //将生成…...
【设计模式】-装饰器模式
Java 设计模式之装饰器模式 前言 在软件开发中,经常有需求对已有的对象进行功能的扩展,但是传统的继承方式会导致类的数量快速增多,且难以维护。为了解决这个问题,装饰器模式应运而生。 装饰器模式是一种结构型设计模式ÿ…...
七月学习总结
一晃暑期七月份已经结束了,八月份需要做的事情更多。 在成长的路上不断地迷茫,不断地前进。到底才能完成对自己地救赎。 目前想的就是以后走软件开发,往架构方向做,主语言Java或者go,408基础一定要扎实,计…...
Camunda 7.x 系列【6】Spring Boot 集成 Camunda 7.19
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 前言2. Camunda Platform Run3. Spring Boot 版本兼容性4. 集成 Spring Boot5. 启动项目…...
Kubernetes —调度器配置
目录 配置文件 扩展点 调度插件 多配置文件 应用于多个扩展点的插件 调度程序配置迁移 你可以通过编写配置文件,并将其路径传给 kube-scheduler 的命令行参数,定制 kube-scheduler 的行为。 调度模板(Profile)允许你配置 k…...
【微信小程序】申请蓝牙、位置和数据库等相关权限
在小程序的app.json文件中配置requiredPermissions字段,并在其中添加相应的权限。 以下是一个示例app.json文件的配置,包括了蓝牙、位置和数据库等权限的申请: {"pages": ["pages/index/index"],"requiredPermiss…...
ORB-SLAM2学习笔记6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic
文章目录 0 引言1 D435i相机配置2 新增发布双目位姿功能2.1 新增d435i_stereo.cc代码2.2 修改CMakeLists.txt2.3 新增配置文件D435i.yaml 3 编译运行和结果3.1 编译运行3.2 结果3.3 可能出现的问题 0 引言 ORB-SLAM2学习笔记1已成功编译安装ROS版本ORB-SLAM2到本地,…...
【数据结构与算法——TypeScript】哈希表
【数据结构与算法——TypeScript】 哈希表(HashTable) 哈希表介绍和特性 哈希表是一种非常重要的数据结构,但是很多学习编程的人一直搞不懂哈希表到底是如何实现的。 在这一章节中,我门就一点点来实现一个自己的哈希表。通过实现来理解哈希表背后的原理…...
JavaScript 中常用简写语法技巧总结
分享一些自己常用的js简写技巧,长期更新,会着重挑选一些实用的简写技巧,使自己的代码更简洁优雅~ 这里只会收集一些大多数人不知道的用法,但是确实能提高自己的编码技巧,像ES6那些基础的简写语法或者是三目运算符代替i…...
漫画算法做题笔记
诸神缄默不语-个人CSDN博文目录 哦这是我三年前写的,我现在Java语法都快忘光了…… 反正之前的博文也发一下好了。这个因为我当年是用有道云笔记而不是直接用CSDN编辑器写的,所以后面有些内容写乱了,因为我现在猛的一看有点看不懂࿰…...
JDBC学习笔记
1 JDBC简介 1.1 前言 当谈论JDBC时,我们可以将其看作是一种用于Java程序与数据库进行通信的方式。如果你想编写一个Java程序,并且希望能够连接到数据 库、执行查询或更新数据,JDBC就是你需要的工具。 JDBC提供了一组类和接口,…...
亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证,联合方案带来约20%性能提升
近日,亚信科技AntDB数据库与苏州库瀚信息科技有限公司自主研发的RISC-V数据库存储解决方案进行了产品兼容测试。经过双方团队的严格测试,亚信科技AntDB数据库与库瀚数据库存储解决方案完全兼容、运行稳定。除高可用性测试外,双方进一步开展TP…...
【MySQL】基础知识(一)
MySQL基础知识(一) 文章目录 MySQL基础知识(一)00 MySQL安装01 数据库介绍1.1 什么是数据库1.2数据库分类 02 SQL分类03 数据库操作3.1显示数据库3.2创建数据库3.3选中数据库3.4删除数据库 04 常用数据类型4.1数值类型4.2字符串类…...
Ansible专栏目录
我的博客:www.itwk.cc 希望能够给大家带来帮助! 1、什么是Ansible?Ansible 简介及核心概念详解 https://blog.csdn.net/qq_34185638/article/details/131079320 2、Ansible Inventory 主机清单的作用、使用方法及示例详解 https://blog.cs…...
【locust】使用locust + boomer实现对接口的压测
目录 背景 环境安装 脚本编写 master slave节点(golang/boomer) 问题 资料获取方法 背景 很早之前,考虑单机执行能力,使用locust做过公司短信网关的压测工作,后来发现了一个golang版本的locust,性能…...
亿欧智库:2023中国宠物行业新趋势洞察报告(附下载)
关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 户外赛道本质上迎合了全球共性需求的增长,从养宠意愿的转化到养宠生活的需求,多层次的需求推动行业发展新趋势 从需求端进行分析,可以将养宠意愿的转化分为三个层…...
别再一页页改了!用OrCAD Capture CIS高效管理原理图文档与BOM
用OrCAD CIS实现原理图文档与BOM的智能化协同管理 在硬件工程团队协作中,原理图文档与物料清单(BOM)的一致性管理常成为效率瓶颈。传统手工维护方式不仅耗时费力,更可能因人为疏忽导致版本混乱。OrCAD Capture CIS的元件信息系统为…...
别再手动调字体了!用iSlide的「一键优化」5分钟搞定PPT排版(附主题色设置技巧)
职场效率革命:用iSlide「一键优化」实现PPT排版自动化 凌晨两点的办公室,咖啡杯见底,李婷盯着屏幕上第37页格式混乱的PPT,光标在字号不一的标题间来回切换——这是她本周第三次为团队修改汇报材料。这种场景对职场人来说再熟悉不过…...
Claude 模型重度用户如何借助 Taotoken 规避官方额度限制并节省费用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude 模型重度用户如何借助 Taotoken 规避官方额度限制并节省费用 1. 问题背景:Claude 重度用户的现实挑战 对于频繁…...
在Python项目中快速接入Taotoken多模型API的完整步骤指南
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Python项目中快速接入Taotoken多模型API的完整步骤指南 对于希望将大模型能力集成到Python应用中的开发者而言,直接对…...
当 ABAP 代码想走出 SAP 系统:一个标准化文件格式的故事
当 ABAP 代码想走出 SAP 系统:一个标准化文件格式的故事 当我第一次用 abapGit 时,我有个困惑。 把一个 ABAP class 序列化成 XML 文件,推到 GitHub,再从另一个 ABAP 系统 pull 回来,重建 class 对象。 这个流程挺顺的。 但我当时不太理解。 为什么 abapGit 选择这种…...
QQ音乐格式转换终极指南:如何3步将.qmc文件转为MP3/FLAC
QQ音乐格式转换终极指南:如何3步将.qmc文件转为MP3/FLAC 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾在QQ音乐下载了心爱的歌曲,却发现它…...
书匠策AI:你的论文过不了关?http://www.shujiangce.com这套组合拳直接救场!
开篇一句话:2025年写论文,拼的不是文笔,是"过关能力"。 查重40%以上被打回,AIGC检测疑似度超标被标记——这两座大山压在每个毕业生头上。你是不是也经历过这种绝望:明明每个字都是自己敲的,系统…...
AI音频转封面终极指南:3步打造专业音乐封面
AI音频转封面终极指南:3步打造专业音乐封面 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen 想要为你的音乐作…...
CANN/asc-devkit向量取反API
asc_neg 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/ca…...
CANN/pypto填充操作API
pypto.pad 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atla…...

