实验准备
本博文记录本文采用AFL对在linux编译的CGC程序进行模糊测试的结果。其中CGC程序采用的是github上多系统的移植,虽然部分代码在移植过程中存在问题(存在问题的会在实验中进行标注),同时部分程序也因为环境不同导致在内存布局上与开发者意图出现偏差(例如,部分cgc程序的malloc
和free
是自己写的管理库,而new
和delete
则是依靠系统堆管理)。
由于开发者是面向linux下32位进行移植的,因此在使用AFl时,采用的Qemu是重新编译的32位的afl-qemu-trace。具体编译方法为将build qemu的sh文件中的linux-user-{target}直接改为linux-user-i386,将编译好的qemu-i386文件更名为afl-qemu-trace放到AFL根目录下。
由于32位程序本身的特性,在afl启动时,需要加上内存限制-m none
。同时由于CGC程序是接受stdin输入的,因此命令行程序名后面不需要"@@"。
对于输入来说,除了个别程序的特定输入会在说明中进行说明,其他程序的输入均为100个"A"。
从挖掘时间的角度来说,每个程序采用"-d"模式和正常模式分别挖掘48小时。
实验数据(会一直更新)
程序名称 | 能否挖出 | 说明 |
---|---|---|
Query_Calculator | -d模式和正常模式均可挖掘出crash | - |
The_Longest_Road | -d模式和正常模式均无法挖出crash | |
TFTTP | -d模式和正常模式均无法挖出crash | |
TAINTEDLOVE | -d 模式可挖出crash | - |
Gridder | -d模式和正常模式均可挖掘出crash | - |
simplenote | 挖掘不出 | - |
simple_integer_calculator | -d模式和正常模式均可挖掘出crash | 构造了可防止timeout的输入 |
Tennis Ball Motion Calculator | -d模式和正常模式均无法挖出crash | |
TAINTEDLOVE | -d模式可挖掘出crash | - |
String Storage and Retrieval | - | 出现timeout |
TextSearch | - | 出现timeout |
Terrible_Ticket_Tracker | - | 出现timeout |
Stock_Exchange_Simulator | -d模式和正常模式都无法挖掘出crash | - |
stack_vm | -d模式和正常模式均无法挖出crash | |
stream_vm2 | -d模式和正常模式都无法挖掘出crash | |
stream_vm | -d模式和正常模式都无法挖掘出crash | |
Street_map_service | - | 出现timeout |
Square_Rabbit | -d模式和正常模式都无法挖掘出crash | |
SPIFFS | - | 出现timeout |
Sorter | 导致AFL假死 | |
Space_Attackers | -d模式和正常模式均无法挖出crash | |
SOLFEDGE | -d模式和正常模式均无法挖出crash | |
SLUR_reference_implementation | -d模式和正常模式均无法挖出crash | |
Single-Sign-On | -d模式和正常模式均无法挖出crash | |
simpleOCR | 出现timeout | |
simplenote | -d模式和正常模式均无法挖出crash | |
simple_integer_calculator | -d模式和正常模式均可挖掘出crash | 构造可防止timeout的输入 |
Simple_Stack_Machine | -d模式和正常模式均可挖掘出crash | |
SIGSEGV | -d模式和正常模式均无法挖出crash | |
ShoutCTF | -d模式和正常模式均可挖掘出crash | |
Shortest_Tree_Calculator | -d模式和正常模式均可挖掘出crash | |
SFTSCBISS | -d模式和正常模式均无法挖出crash | |
Secure_Compression | -d模式和正常模式均无法挖出crash | |
SCUBA_Dive_Logging | -d模式和正常模式均可挖掘出crash | 构造了可防止timeout的输入 |
Scrum_Database | -d模式和正常模式均无法挖出crash | |
SAuth | -d模式和正常模式均无法挖出crash | |
Sad_Face_Template_Engine_SFTE | -d模式和正常模式均无法挖出crash | |
Sample_Shipgame | -d模式和正常模式均可挖掘出crash | |
RRPN | AFL似乎无法跑起来 | |
router_simulator | -d模式和正常模式均无法挖出crash | |
root64_and_parcour | -d模式和正常模式均无法挖出crash | |
Resort_Modeller | -d模式和正常模式均无法挖出crash | |
REMATCH_2–Mail_Server–Crackaddr | -d模式和正常模式均无法挖出crash | |
REMATCH_3–Address_Resolution_Service–SQL_Slammer | -d模式和正常模式均可挖掘出crash | |
REMATCH_4–CGCRPC_Server–MS08-067 | 种子直接触发崩溃 | |
REMATCH_5–File_Explorer–LNK_Bug | -d模式和正常模式均可挖掘出crash | |
Rejistar | -d模式和正常模式均无法挖出crash | |
Recipe_Database | -d模式和正常模式均可挖掘出crash | 构造了可防止timeout的输入 |
Recipe_and_Pantry_Manager | -d模式和正常模式均可挖掘出crash | |
reallystream | -d模式和正常模式均无法挖出crash | |
RAM_based_filesystem | -d模式和正常模式均可挖掘出crash | |
QuadtreeConways | -d模式和正常模式均无法挖出crash | |
PTaas | 出现timeout | |
PRU | -d模式和正常模式均可挖掘出crash | |
PKK_Steganography | -d模式和正常模式均无法挖出crash | |
pizza_ordering_system | 出现timeout | |
Personal_Fitness_Manager | -d模式和正常模式均可挖掘出crash | |
payroll | -d模式和正常模式均无法挖出crash | |
Pattern_Finder | -d模式和正常模式均无法挖出crash | |
Particle_Simulator | -d模式和正常模式均无法挖出crash | |
Parking_Permit_Management_System_PPMS | -d模式和正常模式均无法挖出crash | |
Palindrome2 | - | 种子触发crash |
Palindrome | - | 种子触发crash |
Packet_Receiver | -d模式和正常模式均无法挖出crash | |
Packet_Analyzer | -d模式和正常模式均无法挖出crash | |
Pac_for_Edges | -d模式和正常模式均无法挖出crash | |
Overflow_Parkng | -d模式和正常模式均可挖掘出crash | |
oneline_job_applicaton2 | 出现timeout | |
oneline_job_applicaton | 出现timeout | |
One_Amp | -d模式和正常模式均可挖掘出crash | |
On_Sale | 出现timeout | |
NoHic | -d模式和正常模式均无法挖出crash | |
No_Paper._Not_Ever._NOPE | -d模式和正常模式均无法挖出crash | |
Network_Queuing_Simulator | -d模式和正常模式均可挖掘出crash | |
Neural_House | -d模式和正常模式均无法挖出crash | |
Network_File_System | -d模式和正常模式均可挖掘出crash | 产生的用例会导致AFL挂掉 |
netstorage | -d模式和正常模式均无法挖出crash | |
NarfRPN | 出现timeout | |
Music_Store_Client | -d模式和正常模式均无法挖出crash | |
Multipass2 | -d模式和正常模式均无法挖出crash | |
Multipass3 | -d模式和正常模式均可挖掘出crash | |
Multipass | -d模式和正常模式均无法挖出crash | |
Multi_User_Calendar | -d模式和正常模式均无法挖出crash | |
Multi_Arena_Pursuit_Simulator | -d模式和正常模式均无法挖出crash | |
Movie_Rental_Service | 出现timeout | |
Movie_Rental_Service_Redux | 出现timeout | |
Mount_Filemore | - | 种子触发crash |
Monster_Game | -d模式和正常模式均无法挖出crash | |
Modern_Famliy_Tree | -d模式和正常模式均无法挖出crash | |
Mixology | -d模式和正常模式均无法挖出crash | |
Minimalistic_Memo_Manager_3M | -d模式和正常模式均无法挖出crash | |
middleware_handshake | - | 种子触发crash |
middleout | -d模式和正常模式均无法挖出crash | |
Message_Service | -d模式和正常模式均无法挖出crash | |
Matrix_Math_Calculator | -d模式和正常模式均无法挖出crash | |
Mathematical_Solver | -d模式和正常模式均无法挖出crash | |
Material_Temperature_Simulation | -d模式和正常模式均无法挖出crash | |
matrices_for_sale | 出现timeout | |
FASTLANE | -d模式和正常模式均无法挖出crash | |
FileSys | -d模式和正常模式均无法挖出crash | |
Flash_File_System | -d模式和正常模式均可挖掘出crash | |
Fortress | -d模式和正常模式均无法挖出crash | |
FSK_BBS | -d模式和正常模式均无法挖出crash | |
FSK_Messaging_Service | -d模式和正常模式均无法挖出crash | |
FUN | -d模式和正常模式均无法挖出crash | |
Game_Night | -d模式和正常模式均无法挖出crash | |
GPS_Tracker | -d模式和正常模式均可挖掘出crash | |
GreatView | 出现timeout | |
greeter | -d模式和正常模式均无法挖出crash | |
Griswold | -d模式和正常模式均无法挖出crash | |
H20FlowInc | -d模式和正常模式均可挖掘出crash | |
HackMan | -d模式和正常模式均可挖掘出crash | |
hawaii_sets | -d模式和正常模式均无法挖出crash | |
HeartThrob | -d模式和正常模式均无法挖出crash | |
HIGHCOO | -d模式和正常模式均可挖掘出crash | |
HighFrequencyTradingAlgo | - | 种子触发crash |
Hug_Game | 出现timeout | |
humaninterface | -d模式和正常模式均无法挖出crash | |
Image_Compressor | -d模式和正常模式均无法挖出crash | |
Kaprica_Script_Interpreter | -d模式和正常模式均可挖掘出crash | |
KTY_Pretty_Printer | -d模式和正常模式均可挖掘出crash | |
Loud_Square_Instant_Messaging_Protocol_LSIMP | -d模式和正常模式均无法挖出crash | |
Lazybox | 出现timeout | |
LazyCalc | -d模式和正常模式均无法挖出crash | |
LMS | -d模式和正常模式均可挖掘出crash | |
Matchmaker | -d模式和正常模式均无法挖出crash | |
FailAV | -d模式和正常模式均无法挖出crash | |
Facilities_Access_Control_System | -d模式和正常模式均可挖掘出crash | |
FaceMag | -d模式和正常模式均无法挖出crash | |
FablesReport | 出现timeout | |
expression_database | 出现timeout | |
EternalPass | -d模式和正常模式均可挖掘出crash | |
Estadio | -d模式和正常模式均无法挖出crash | |
Email_System_2 | 出现timeout | |
electronictrading | 出现timeout | |
Eddy | 出现timeout | |
Document_Rendering_Engine | -d模式和正常模式均可挖掘出crash | |
Divelogger2 | 出现timeout | |
Dive_logger | 出现timeout | |
Diophantine_Password_Wallet | -d模式和正常模式均无法挖出crash | |
Differ | 出现timeout | |
Diary_Parser | -d模式和正常模式均可挖掘出crash | |
cyber_blogger | 出现timeout | |
CTTP | 出现timeout | |
Cromulence_All_Service | 出现timeout | |
cotton_swab_arithmetic | -d模式和正常模式均可挖掘出crash | |
Corinth | -d模式和正常模式均可挖掘出crash | |
COLLIDEOSCOPE | 出现timeout | |
CNMP | -d模式和正常模式均无法挖出crash | |
CLOUDCOMPUTE | 出现timeout | |
Childs_Game | 出现timeout | |
chess_mimic | 出现timeout | |
Charter | -d模式和正常模式均可挖掘出crash | |
Character_Statistics | -d模式和正常模式均无法挖出crash | |
CGC_Video_Format_Parser_and_Viewer | -d模式和正常模式均无法挖出crash | |
CGC_Symbol_Viewer_CSV | -d模式和正常模式均可挖掘出crash | |
CGC_Planet_Markup_Language_Parser | 出现timeout | |
CGC_Image_Parser | -d模式和正常模式均无法挖出crash | |
CGC_Hangman_Game | -d模式和正常模式均无法挖出crash | |
CGC_File_System | -d模式和正常模式均无法挖出crash | |
CGC_Board | -d模式和正常模式均无法挖出crash | |
Cereal_Mixup_A_Cereal_Vending_Machine_Controller | -d模式和正常模式均可挖掘出crash | |
Casino_Games | 出现timeout | |
Carbonate | -d模式和正常模式均无法挖出crash | |
BudgIT | -d模式和正常模式均可挖掘出crash | |
Bloomy_Sunday | -d模式和正常模式均可挖掘出crash | |
BitBlaster | -d模式和正常模式均无法挖出crash | |
basic_emulator | -d模式和正常模式均无法挖出crash | |
basic_messaging | -d模式和正常模式均无法挖出crash | |
Audio_Visullizer | 出现timeout | |
ASL6parse | -d模式和正常模式均可挖掘出crash | |
ASCII_Content_Server | -d模式和正常模式均无法挖出crash | |
anagram_game | -d模式和正常模式均无法挖出crash | |
AIS-Lite | -d模式和正常模式均无法挖出crash | |
Accel | -d模式和正常模式均无法挖出crash | |
3D_Image_Toolkit | -d模式和正常模式均可挖掘出crash | |
Thermal_Controller_v2 | -d模式和正常模式均可挖掘出crash | |
Thermal_Controller_v3 | -d模式和正常模式均可挖掘出crash | |
TIACA | -d模式和正常模式均无法挖出crash | |
Tick-A-Tack | -d模式和正常模式均无法挖出crash | |
TVS | -d模式和正常模式均可挖掘出crash | |
university_enrollment | -d模式和正常模式均可挖掘出crash | |
User_Manager | 出现timeout | |
UTF-late | 出现timeout | |
ValveChecks | -d模式和正常模式均无法挖出crash | |
Vector_Graphics_2 | -d模式和正常模式均无法挖出crash | |
Vector_Graphics_Format | -d模式和正常模式均可挖掘出crash | |
Virtual_Machine | -d模式和正常模式均无法挖出crash | |
virtual_pet | -d模式和正常模式均无法挖出crash | |
Water_Treatment_Facility_Simulator | -d模式和正常模式均可挖掘出crash | |
WhackJack | -d模式和正常模式均无法挖出crash | |
WordCompletion | -d模式和正常模式均无法挖出crash | |
Xstore | -d模式和正常模式均无法挖出crash | |
Gridder | -d模式和正常模式均可挖掘出crash | |
yolodex | -d模式和正常模式均无法挖出crash |