-
-
[原创] 看雪CTF2018-第二题writeup
-
发表于:
2018-6-20 11:56
4575
-
[原创] 看雪CTF2018-第二题writeup
拿到程序strings一下,发现提示:
根据提示以及题目知道是考察字典树(Trietree),字典树是一种用于快速检索字符串的数据结构。
IDA打开进入main函数,发现先调用checkformat函数校验输入,必须符合在A-Z a-z 0-9范围:
拿到程序strings一下,发现提示:
根据提示以及题目知道是考察字典树(Trietree),字典树是一种用于快速检索字符串的数据结构。
IDA打开进入main函数,发现先调用checkformat函数校验输入,必须符合在A-Z a-z 0-9范围:
之后对输入的长度进行校验,需满足22个字节:
接着进入主要的校验函数check,在函数中首先对输入分割:
因为IDA中变量名排序和内存位置有关,因此可以整理出分割并乱序后的输入如下:
之后开始使用分割后的各个字符串插入字典树:
按照插入顺序应该是:
进入第二层check2函数,可以看到有两个校验,根据上面的插入过程,可以知道索引66和索引67分别对应的是该结点的分支数以及到达该结点的字符串出现的频率,a2是用于校验的另一个字典树,可以通过动态调试获得正确的值:
接着进入字符的比较:
[注意]APP应用上架合规检测服务,协助应用顺利上架!