通过read_testcase函数读取文件
为了研究AFLnet对于输入文件的处理,我们进行调试。
首先需要知道,AFLnet读取输入文件是通过read_testcases读取的。所以我们下断点需要下在这个函数处(2276行)。
我们运行一次,发现程序会尝试将fn定义为..../in-rtsp/queue:
但是由于我们的输入目录里面没有queue这个文件夹,所以在下面这行代码中,程序在尝试给访问queue文件后,发现无法访问,因此free掉fn,只留下in_dir=...../live555/in-rtsp.
然后通过scandir扫描in_dir,按照alphasort(按字母排序)的方式对文件进行排序。这里有个问题,我们的文件夹只有7个文件,但是返回值nl_cnt却等于9。原因是因为扫描的时候,不知道为什么会扫描到.和..这两个东西,然后加上原来的七个文件,就是9了。