首页
社区
课程
招聘
[原创]ctf2018初世纪 writup
2018-12-1 20:34 1626

[原创]ctf2018初世纪 writup

2018-12-1 20:34
1626
送分题,没
程序是64位的Windows程序,执行后看到有文本输入框,首先猜测可能会有GetDlgItemText之类获取输入框内容的函数。IDA打开, Imports中搜索GetDlgItemText,看到有GetDlgItemTextA的输入,查找交叉引用,只在sub_13FEA1340函数里面找到调用:

获取到输入后,接下来的一个if, 查看条件成立的情况时String2指向的数据内容:
 strcpy(String2, "序列号错误,再来一次!");

正好是输入错误的提示框。因此, 猜测 if 不应该成立,输入长就为6个字符。if条件长度判断后面正好是对连续内存的6个字符进行检测,把检测的常量转成char后:
if ( v9 != '\x06' || Dst != '6' || v19 != 'E' || v20 != 'w' || v21 != 'i' || v22 != '9' || v23 != 'H' )

得到 6Ewi9H, 验证通过。


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回