首页
社区
课程
招聘
[原创]看雪CTF2016 第6题分析
发表于: 2016-11-12 21:28 1987

[原创]看雪CTF2016 第6题分析

2016-11-12 21:28
1987
随便输入一个注册码1234567890,触发崩溃;从崩溃点开始分析,发现崩溃是代码从一个未分配的地址读数据导致,分析流程,判断该分支是注册失败执行路径。

考虑另一个分值的执行条件,需要sub_4018e2函数返回0。使用WinDbg调试,强行将该处返回值修改为0,能够注册成功,验证了猜测是正确的。
另外发现了另一处调用sub_4018e2函数的位置:

使用WinDbg调试,在该处下断点,观察该函数的参数输入,其中第一个push的参数是一个指针,指向了0x48b0d0,另一个参数是指针的指针,最终也指向了0x48b0d0的位置,如下所示,另外调试发现此出返回值为0,由此推断两个指针如果最终内容相同可以使函数sub_4018e2返回0。


下面调试第二次调用sub_4018e2函数,分析两个参数的内容

多次测试eax指向的内容一直恒定不变,如下所示:

而第二个参数是指针的指针,最终指向的内容为输入的数据


我们尝试将输入数据构造成与eax指向的相同:33053055C3055C2E3030553055C2,最终成功注册。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//