您现在的位置: Tracy‘Blog > 博客 > 一些破文 > 正文
BCTF——【最难的题目】

再来一篇没技术含量的。


描述
米特尼克路被各路大神追查痛苦饥渴难耐。顺手捡起身边一个水杯,打开瓶盖,居然写着one more,实在太神奇了。 http://bctf.cn/files/downloads/re_100.8cd4820cbd1300bda951e694298f73a0


这个是真没技术含量了~直接下载附件。拖到winhex看了下。

果断改后缀为.exe。

运行,弹框:


各种摁,各种弹。od进去peid查下,没壳,od加载。运行


嘿嘿报错

有ant_debug的。其实这次比赛最大的收获,可能是比以前会静态了~没办法,被各种linux下的程序折磨出来的。为了再学习一次IDA,教程就不用OD了。

丢到IDA中看看。自动定位到main()。如下,按下F5,都快出源码了。发现四次调用某一函数:


于是,十分好奇,401A70里面是啥?双击进去,再F5:


哦,这就是刚打印的地方。前面还有几个函数是啥?

进去你就会发现,这里是三个ant_debug,有兴趣你可以给爆破了。但我觉着没必要。在往后看。401960和401920是什么呢?

稍微一分析就知道,401960是计算生成key,然后401920则是负责打印出来。

这题要我们做啥?前面几个ant_debug似乎把大家吓住了,一个个的去爆破了。其实,这题也就只是让你把MessageBoxA(NULL,"bctf","hello word",0)给注释掉。

办法?有啊,汇编代码如下:


做法两种,第一个是在00401B36哪里直接改成jmp 00401B4A。第二种是把00401B36-00401B4A全部改成90(nop)。之后,运行等结果就是了。

其实我第一次分析的时候,总以为401960那里是用来延时的。我就把每个传进去的初始值改小,果然,结果出的快了很多。可~是错的~


——Tracy_梓朋

2014年3月12日17:34:04

发表评论(2)
1楼 Garging  发表于  2014-3-15 1:48:39
你们比赛的时候只要提交最后输出的字符串就算解出了吗?
[博主回复]  输出四个字符串组合~ 连起来就是flag
2楼 JonirRings  发表于  2014-3-12 19:46:22
这一题考爆破的么?
[博主回复]  只能说考你分析吧,你要是纠结去ant_debug的话,还得折腾一会儿~
姓名 *
电子邮件
QQ
评论内容 *
验证码 *图片看不清?点击重新得到验证码请输入图片后链接字符‘a’