看雪ctf2017第一题详解
来源:互联网 发布:大数据与经济发展 编辑:程序博客网 时间:2024/05/18 01:25
第一步、先瞅瞅
随便输入点啥,发现如下报错
第二步、Od加载程序,下断点
一般这种程序,第一感觉就是在下api断点,右键->查找->当前模块中的名称
找到getDlgItemTextA
右键->在输入函数上切换断点 设置断点
F9运行程序,程序断在了此处
第三步,算法分析
一路f8执行到retn返回,来到
这里我们看到它调用了一个wannaLOL.00401300这么个函数,
执行返回后比较eax和4是否相等,这里我们不难想到,这里应该是判断输入的序列号的位数。
这里我们设[ebp-0x1c]=f(1),[ebp-0x1b]=f(2),ebp-0x1a=(3),ebp-0x19=f(4)
紧接着,下面判断这四个数是否为0,然后判断f(1)是否为1,f(2)是否为5。图上已经标注得很清楚了。
这里我们为了进一步调试,需要在判断跳转时候将z标志位置1。在判断f(1)和f(2)时。
接着我们便来到了这里,需要进行一些简单的浮点计算,最后和[0x407118]处数值比较
如图,我已经分析得很清楚了
我们可以整理得这个浮点计算的公式为 (f(3)-0.2)*f(4)*[0x40711c]=[0x407118]
其中根据od的提示,我们可以知道[0x407118]=384,[0x40711c]=16
所以公式整理得(f(3)-0.2)*f(4)=24,易估得,f(3)=5,f(4)=5
最后得序列号为:1555
输入验证下:
破解成功!
阅读全文
1 0
- 看雪ctf2017第一题详解
- 看雪CTF2017第一题简单分析
- 看雪CTF2017第二题lelfeiCM的writeup
- 看雪CTF2017第五题 独行孤客CrackMe的writeup
- 看雪CTF2017第六题 Ericky-apk writeup(安卓so逆向)
- 看雪ctf记录第一题
- 2015阿里&看雪移动安全挑战赛-第一题
- 0CTF2017 WEB WriteUp
- 看雪论坛 第一届软件设计大赛
- 【看雪】第一课 逆向分析基础知识
- Writeup for 0CTF2017 web
- 连连看第一更
- 南京的第一场雪,看我堆得雪人
- MSC阿里比赛第一题详解
- 看《深入详解VC++》
- 2016看雪等安全网站android安全最新经典文章第一期总结
- 第一个bfs题目 hdu1175连连看
- 看qt书的第一个作品
- 数据压缩算法实现
- request.getRequestURI()的使用
- maven
- JSP内置对象的使用:request,cookie,session
- Android启动流程(一)
- 看雪ctf2017第一题详解
- Properties配置文件数据加密
- Java抽象类
- shell-grammar
- Android Studio 使用教程(二十一)之Android Studio如何快速生成get和set
- map根据其value值进行排序
- 关于SpringDataJPA的一些小知识
- Hdu A+B for Input-Output Practice (VII)
- Java指定保留小数位数的方法