首页
社区
课程
招聘
[分享]Q1晋级赛第一题writeup,新手入坑
发表于: 2019-3-11 21:35 3396

[分享]Q1晋级赛第一题writeup,新手入坑

2019-3-11 21:35
3396
第一次参加比赛,还有点小激动,菜鸡做题,大佬轻喷。
我想把这篇writeup写的详细一点,希望能帮到那些刚刚入门的人,不废话了进入主题。
一般看雪ctf的crack me 是没有加壳的,拿到题目运行一下,,看看有那些字符串,是不是窗口化程序,还是控制台程序(找线索)
好了知道了,猜测这个窗口化程序可能是用API函数GetWindowText这个函数获取文本框的数据的(因为之前没考虑到这点卡了好一会儿,稍后说明)
接下来放进ida pro开始分析,先string了一下,根据字符串直接交叉引用xref来到了这个函数,
再f5反编译出伪码,如下图:
看到这里我就理所当然的以为a1是文本框的输入值,以为是在这个字符串中根据输入字符的10进制ascii码对应下面这个字符串每个字符的位置,把KanXueCTF2019JustForhappy拼凑出来。
但是我嫌这25个字符太长了,我就用winhex把这个字符串改来只有字符Kan,这样方便看我的猜想是不是对的。
我打开16位编辑器,定位到这个字符,然后把K后面的全部填充为0,不能剪切,这样会影响程序格式,使程序无法运行。
修改过后:

但是并没有我想象的那么简单K在第二十位,没有ascii码为20的字符,有的话也是键盘不能输入的,所以我的猜想错了,
这里就要说到前面的GetWindowText了,当我没有思绪的时候,想到a1不一定是用户输入啊,突然恍然大悟,去ida的Imports表中搜索这个API,再交叉引用xref,找到这里

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 10902
活跃值: (3288)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
2
不错
2019-3-12 09:26
0
游客
登录 | 注册 方可回帖
返回
//