-
-
[分享]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直播授课