一个CTF的题目,拿来学习学习

玩了好久,再加上学校一堆破事,最近又开始瞎弄了,找了几个CTF的题目,和别人写的一些内容,也当是学习,也当是看完之后的小结。顺便也说一下如果自己拿到这题目会从哪做起。

这个,由于之前IDA学的等于没学,一些神操作比如F5大法什么的,只是知道,具体也没怎么用,还需多实践啊!

废话不多说,开搞

瞎比看

拿到了先运行下,这个,画风一如既往有点low逼,随便输入肯定不对,稍微记一下输出内容吧,毕竟字符串还是有用的。猜一下估计就知道如果对的话,应该就是所谓的好啊正确啊什么玩意的。

拖到IDA中,图啊啥的就不贴了,看看函数吧,有个main,所以习惯性的瞅一眼吧

看看代码,哦,应该就是跟一下call sub_4011E0

大致看一下吧,应该就是这堆逻辑内容吧啊,一般需要注意一下这个输入的内容的判断,就是看看是不是字母啊数字啊大小写转化啊等等,还有就是长度什么的限制吧,同样这里也有

这里我们还可以看到var_88是输入字符串的内容吧,再结合一下下面的比较语句应该这个var_10对应的就是与输入比较的东西吧

没错就这样

瞎比捣

拖到od看看吧,简单的F7+F8走啊走啊就到了人生的十字路口了

按照原来的分析的话,他继续走下去了,走的话得去模块分析,然后继续走,然后找啊找找到所谓的算法。脑洞好大。。。。。。我就不走了,反正我是不走了。

但是,但是,机智的我看到了一个东西00401000,这还走个啥,直接过去不就得了改个代码走过去

这里你就看到了你想看到一堆字符串吧,开心了吧,保存一下吧。

再来吧,拖到IDA看看,然后和之前的一样走一下,就会来到这个地方,哎哟哟哟哟,好黑啊,这。。

接下来就是F5大法了,呵呵呵,算了自行解决吧,我还是用OD看吧。

首先我们看一下这几个报错的地方,看看吧

第一个,看看上下文,应该是算长度的,然后比较长度和0x19也就是25比较一下,不是就出错,也就是输入时25个字符吧。

然后下面就是定义的一个******的字符串吧,鬼知道是啥,不管它

接着走接着看,做了几个比较,对al中的数据和6A/68/6B/6C作比较,不是的话就报错,al应该比较的是ascll码吧,对应的就是J/H/K/L,也就是说输入的25个字符必须是这4个之一

这样吧,我们试试输入25个h看看,嘛情况?一路F8,果然走到h对应的case

纵观这几个case,都有个共同点,和00409030的数据作比较,我们走去看看这到底是个啥?

哦,好像迷宫啊,别问我咋知道的,多看看帖子就晓得。把它拉下来吧,那个记事本,然而这屌迷宫走不通。。。。。。。数数个数,调整调整,正好搞成8*8的,哎哟,还真能走通

走迷宫嘛,习惯性想到上下左右,再看看刚才说的hjkl,应该就是对应的上下左右吧,具体看一下代码。case6B也就是对应的k,我们看下能看见对应的是004010C3 . 83EE 08 sub esi,0x8

由于做的事一个8*8的迷宫,所以这个减8对应的就是迷宫中的向上,同样我们可以找到对应关系

K--上

J--下

h--左

l--右

这里l对应代码没有写是右,但是由于之前排除掉其他字母的对应关系,然后这里只有l能对应右,所以那就右吧。。。。。

然后还能看到表示的就是所谓的墙吧,因为移动之后做了下比较,是就报错。

继续往下看,看到了good,这里看到了一个比较,0x23,对应的就是#也就是我们迷宫中终点吧,完美!

来吧走迷宫吧,对应结果khkhhhjhjjjjjljlllklkkhhh,试试吧,没问题

瞎比想

1、呵呵呵,好像有啥问题没搞明白,起点为啥是那?回来看看代码。哦,没问题啊,眼瞎了。

2、好吧,弄完了感觉好麻烦,总觉得不爆一下不爽。呵呵呵,就这吧

让你瞎判断,改了你,直接jmp到good的位置

保存,运行,随便输入点东西试试,搞定!

小结一下:这题很好玩,嘿嘿嘿。

附上原分析帖子链接:http://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=15539&highlight=ctf

一个好玩的CTF题的更多相关文章

  1. 利用简易爬虫完成一道基础CTF题

    利用简易爬虫完成一道基础CTF题 声明:本文主要写给新手,侧重于表现使用爬虫爬取页面并提交数据的大致过程,所以没有对一些东西解释的很详细,比如表单,post,get方法,感兴趣的可以私信或评论给我.如 ...

  2. [BZOJ 2759] 一个动态树好题

    [BZOJ 2759] 一个动态树好题 题目描述 首先这是个基环树. 然后根节点一定会连出去一条非树边.通过一个环就可以解除根的答案,然后其他节点的答案就可以由根解出来. 因为要修改\(p_i\),所 ...

  3. 一个好玩的计算题目(c++ 位运算)

    2015/11/10 在一个qq群里面,看到一个好玩的题目.“int foo(int x){return x&-x}   foo(2^31-3)这个怎么算 ?” 1.自己也就开始算了: (1) ...

  4. BZOJ2759: 一个动态树好题

    BZOJ2759: 一个动态树好题 Description 有N个未知数x[1..n]和N个等式组成的同余方程组:x[i]=k[i]*x[p[i]]+b[i] mod 10007其中,k[i],b[i ...

  5. C# PDF Page操作——设置页面切换按钮 C# 添加、读取Word脚注尾注 C#为什么不能像C/C++一样的支持函数只读传参 web 给大家分享一个好玩的东西,也许你那块就用的到

    C# PDF Page操作——设置页面切换按钮   概述 在以下示例中,将介绍在PDF文档页面设置页面切换按钮的方法.示例中将页面切换按钮的添加分为了两种情况,一种是设置按钮跳转到首页.下页.上页或者 ...

  6. PHP中一个好玩的性别判断扩展

    今天我们来学习的一个扩展同时它也是非常小众的一个扩展,其实说白了,或许是根本没什么人用过得扩展.当然,我们也只是出于学习的目的来看看这个扩展到底是什么东西,有什么好玩的地方. 扩展说明 Gender ...

  7. 实验吧CTF题库-WEB题(部分)

    看起来有点难 提交admin http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&actio ...

  8. union注入的几道ctf题,实验吧简单的sql注入1,2,这个看起来有点简单和bugku的成绩单

    这几天在做CTF当中遇到了几次sql注入都是union,写篇博客记录学习一下. 首先推荐一篇文章“https://blog.csdn.net/Litbai_zhang/article/details/ ...

  9. 【洛谷】 cpp-->c 一道好玩的显示题

    P1538 这题真的好玩 题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同 ...

随机推荐

  1. poj_3662 最小化第k大的值

    题目大意 有N个节点以及连接的P个无向边,现在要通过这P条边从1号节点连接到N号节点.若无法连接成功,则返回-1:若能够连接成功,那么其中用到了L条边,这L条边中有K条边可以免费,L-K条边不能免费, ...

  2. handlebars的使用

    web 开发中,js 解析JSON 是经常的事情.非常繁琐.handlebars 使用了模版,只要你定义一个模版,提供一个json对象,handlebars 就能吧json对象放到你定的模版中 htm ...

  3. hdu5305 Friends[状压dp]

    Friends Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Su ...

  4. 获取鼠标经过位置的X、Y坐标

    利用JavaScript获取鼠标经过位置的X.Y坐标方法. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...

  5. php 自带的过滤函数和转义函数

    函数名 释义 介绍 htmlspecialchars 将与.单双引号.大于和小于号化成HTML格式 &转成&"转成"' 转成'<转成<>转成> ...

  6. 南京网络赛G-Lpl and Energy【线段树】

    During tea-drinking, princess, amongst other things, asked why has such a good-natured and cute Drag ...

  7. ArcGIS API for JavaScript开发笔记(一)——ArcGIS for Javascript API 3.14本地部署

    堪称史上最详细的< ArcGIS forJavascript API 3.14本地部署>文档,有图有真相~~~ ---------环境:Windows server 2012R2,IIS ...

  8. Django之urls.py详解

    urls.py:URL分发器(路由配置文件)URL配置(URLconf)就像是Django所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表.你就是以这种方式告诉Dj ...

  9. 创建WCF服务的过程

    一.创建控制台WCF工程 1.创建一个控制台工程2.System.ServiceModel的引用3.可创建多个WCF服务,如:IService.cs和Service.cs    顺序:右键->添 ...

  10. SQL Server分区键列必须是主键一部分

    SQL Server分区键列必须是主键一部分. 必须把分区列包含在主键/唯一约束/唯一索引的键列中. USE tempdb GO -- 测试表 CREATE TABLE dbo.tb( id int, ...