############################################################################### # # # Example configuration file for crash_logger.py # # # ############################################################################### # Target programs to execute. You can specify one or more of each type. # Target type: attach to process (by name or PID) #attach calc.exe #attach 1234 # Target type: console process #console cmd.exe /C target.bat # Target type: windowed process #windowed iexplore.exe http://localhost:1234/iefuzzer # Target type: attach to service (by service name or display name) #service WSearch #service "Windows Search" ############################################################################### # Options. If duplicated, the last occurrence takes precedence. # Output options: #---------------- # Database connection URI. You may only have one. Some examples: #database sqlite:///fuzzer/crashes.db #database mysql://user:pass@localhost/database # Log file. #logfile fuzzer\crashes.txt # Verbose mode. Prints the log on the console. verbose true # Ignore all Python errors and just keep going. (Use with care!) ignore_python_errors false # Allow duplicated crashes in the database. # Normally you don't need to discard duplicates unless you're getting a # massive amount of similar crashes. duplicates true # Consider first chance exceptions as crashes. # Turning this on may yield false positives. firstchance false # Save a memory snapshot for every crash. # Use 0 for no memory snapshot, 1 for small snapshot and 2 for full snapshot. memory 0 # Debugging options: #------------------- # Hostile mode. (Prevents some antidebug measures). hostile false # Attach to child processes automatically. follow true # Detach from the targets on exit, instead of killing them. autodetach true # Restart the target process after every crash. # If the target process contains other services, they are restarted as well. restart false # Tracing options: #----------------- # Start an interactive debugging session after every crash. # Useful for manual fuzzing. interactive false # Pause after every crash until the user hits Enter. # Useful for manual fuzzing. pause false # Timeout in milliseconds. # After it expires the target process is killed or detached from. # Set to 0 for no timeout. time_limit 0 # Output debug messages from the targets as our own debug messages. # Only useful if you plan to debug the debugger itself. echo false # Debugging events to run take action on, separated by commas. # This controls the conditions on which the 'action', 'interactive' and 'pause' # options are applied. Normally you don't need to change this. action_events exception, output_string # Debugging events to treat as crashes, separated by commas. # This controls the conditions on which the crash info is captured and stored # into the database. Normally you don't need to change this. crash_events exception, output_string ############################################################################### # Actions and breakpoints. # # Unlike the previous options, these can be specified many times in the config # file. Instead of overriding each other they are added in order. # # For example, this: # break_at main!start, kernel32!CreateFileA, kernel32!CreateFileW # # Is the same as this: # break_at main!start # break_at kernel32!CreateFileA # break_at kernel32!CreateFileW # Run a command when a *new* crash is found, and wait for it to complete. # If duplicates filtering is disabled, all crashes are treated as new. # # The command can be an executable file or any cmd.exe supported command. # To avoid waiting you can use the "start" command. # # The following expressions are replaced by the corresponding value: # %COUNT% - Number of crashes currently stored in the database # %EXCEPTIONCODE% - Exception code in hexa # %EVENTCODE% - Event code in hexa # %EXCEPTION% - Exception name, human readable # %EVENT% - Event name, human readable # %PC% - Contents of EIP, in hexa # %SP% - Contents of ESP, in hexa # %FP% - Contents of EBP, in hexa # %WHERE% - Location of the event (a label or address) # #action curl "http://fuzzer.com/success.php?i=%COUNT%&&exc=%EXCEPTIONCODE%&pc=%WHERE%" #action curl -F "fuzzer\current.avi" http://fuzzer.com/new_sample.php # Set breakpoints at the given locations, separated by commas. #break_at kernel32!CreateFileA, kernel32!CreateFileW # Set one-shot breakpoints at the given locations, separated by commas. #stalk_at main!start #stalk_at kernel32!ExitProcess