SlideShare a Scribd company logo
FuzzyDbg
1 / 12
Department of Computer Science & Engineering Amrita School of
Engineering
Amrita Vishwa Vidyapeetham
Name Roll No
Ritvik Tanksalkar AM.EN.U4CSE18148
Sandhra Bino AM.EN.U4CSE18049
Vivek Kamisetty AM.EN.U4CSE18061
Vishnu Madhav AM.EN.U4CSE18144
Guide Vipin Pavithran
2 / 12
➔ Problem Definition
➔ Problem Description
➔ Block Diagram
➔ Module Description
OUTLINE
Problem Statement
3 / 12
Generic debuggers like GDB don’t have functionalities like viewing call graphs
generated and an efficient fuzzing functionality. Fuzzing is the most advanced and
fastest way to find bugs in software. This project aims to build a simple and fast
debugger with an implementation of graph view and fuzzing functionality.
In our implementation, the tool would let the user debug and test their binary using the
fuzzing engine.
The end product would include a generic interface with the debugger, dump program state,
stack, memory maps, registers etc. An automated mutation engine would generate input
logs and crash logs along with a backtrace at the instance of a crash.
4 / 12
Problem Description
Block Diagram - fdb
Block Diagram - Debugger
Our implementation of the debugger has the following features:
➔ Attach to running process
➔ Set breakpoints and delete them
➔ View registers
Stages of Implementation
Stages of Implementation
➔ Debugger Attach to a process
◆ Fork and execve the target process
◆ Get address of entryPoint from elf header.
◆ Use ptrace to Set breakpoint at entryPoint.
◆ Continue execution and handle to user.
➔ Debugger Context
◆ Register values at every instruction
9 / 12
Stages of Implementation
➔ Debugger Breakpoints
◆ Set breakpoint at a given address
◆ Use of a breakpoint structure table to save original address values.
◆ Await for events in the traced process.
◆ Handle events like Signals, termination conditions etc.
10 / 12
The WIP project implementation consists of a Command line based debugger divided into the following major
modules:
➔ FuzzyDbg
◆ The main debugger interface
◆ Handles commands given by user
◆ Reads the elf-header for future use.
➔ fdb-utils
◆ Implementation of debugger helper functions like parsing inputs.
◆ Functionality to get and set register values from traced process.
Modules
11 / 12
Module Description
➔ Breakpoints
◆ Functionality to set and delete breakpoints.
◆ Patching the required instruction with xcc debugger interrupt.
◆ Saving the patched address along with the original address into a breakpoint structure.
◆ Use this to repatch the address back to original state.
➔ Elf-utils
◆ Functionality to parse elf header.
◆ Useful to find information like entryPoint.
◆ Also helps in detecting if binary is dynamic executable , whether it is Position Independent or not
(PIE).
◆ Provides functionality to efficiently print out the elf header in an order.
12 / 12
Module Description
➔ Context
◆ The main debugger interface
◆ Handles commands given by user
➔ Attach
◆ Implementation of attach functionality
◆ Responsible for forking the debugger and tracing the child process
◆ Execve the target process and trace it with parent.
◆ Handle events that occur in child with every functionality
Test binaries
Performance Metrics
Results
13 / 12
Experimental
Test Binaries
➔ Basic testing with test binaries
◆ Binaries can be dynamic or static executables.
◆ Binaries can be position dependent or not.
Performance Metrics
This unique implementation of a combination of debugger and Fuzz tester
has multiple variable for performance:
● The fuzzer efficiency result wrt number of faults found within the
test/debuggee application.
● Also corner cases and test cases of types of binaries that can work
smoothly on this fuzzer
Results
Results
Major Project milestones
Modules to be completed
Expected Deadlines
18 / 12
Future Work
The full completed project is a Debugger with added support to fuzz
test the binary or process loaded to the debugger using a Radamsa
based mutation generation engine.
The current implementation is complete in its first phase having the
basic features of a debugger.
The modules currently under WIP status are :
● Making debugger more robust and full of features.
● Graph View of the disassembly for easier visual static analysis
and
● Radamsa Integration for fuzzing the test binary passed as
argument to the debugger.
Modules to be Completed
Expected date to be Completed
The expected date of Completion for the Project is estimated to be around
April 2022 along with the Paper publication and submission for CFP at a
major conference for acceptance.
Thank You

More Related Content

PDF
FuzzyDbg_Report.pdf
PDF
Fuzzing - Part 2
PDF
Fuzzing - Part 1
PDF
Fuzzing softwares for bugs - OWASP Seasides
PPT
PHP - Introduction to PHP Bugs - Debugging
PPTX
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
PDF
Fuzzing: The New Unit Testing
PPTX
Blaze Information Security: Slaying bugs and improving software security thro...
FuzzyDbg_Report.pdf
Fuzzing - Part 2
Fuzzing - Part 1
Fuzzing softwares for bugs - OWASP Seasides
PHP - Introduction to PHP Bugs - Debugging
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
Fuzzing: The New Unit Testing
Blaze Information Security: Slaying bugs and improving software security thro...

Similar to FuzzyDebugger.pdf (20)

PDF
FUZZING & SOFTWARE SECURITY TESTING
PPTX
NBTC#2 - Why instrumentation is cooler then ice
PPTX
Ss debuggers
PDF
Fuzzing underestimated method of finding hidden bugs
PPT
myslide6
PPT
myslide1
PPT
NewSeriesSlideShare
PDF
Appsec obfuscator reloaded
PPTX
C# Production Debugging Made Easy
PPT
nullcon 2010 - Intelligent debugging and in memory fuzzing
PPT
debugging (1).ppt
PPT
An important characteristic of a test suite that is computed by a dynamic ana...
ODP
Preventing Complexity in Game Programming
PPTX
Binary Analysis - Luxembourg
PDF
Make static instrumentation great again, High performance fuzzing for Windows...
PDF
Distributed Fuzzing Framework Design
PPTX
Principles in software debugging
PPT
gdb-debug analysis and commnds on gcc.ppt
PPTX
Debugging multiplayer games
PPTX
Driver Debugging Basics
FUZZING & SOFTWARE SECURITY TESTING
NBTC#2 - Why instrumentation is cooler then ice
Ss debuggers
Fuzzing underestimated method of finding hidden bugs
myslide6
myslide1
NewSeriesSlideShare
Appsec obfuscator reloaded
C# Production Debugging Made Easy
nullcon 2010 - Intelligent debugging and in memory fuzzing
debugging (1).ppt
An important characteristic of a test suite that is computed by a dynamic ana...
Preventing Complexity in Game Programming
Binary Analysis - Luxembourg
Make static instrumentation great again, High performance fuzzing for Windows...
Distributed Fuzzing Framework Design
Principles in software debugging
gdb-debug analysis and commnds on gcc.ppt
Debugging multiplayer games
Driver Debugging Basics

Recently uploaded (20)

PPTX
Derivatives of integument scales, beaks, horns,.pptx
PPTX
INTRODUCTION TO EVS | Concept of sustainability
PPTX
Comparative Structure of Integument in Vertebrates.pptx
PDF
The scientific heritage No 166 (166) (2025)
PPT
The World of Physical Science, • Labs: Safety Simulation, Measurement Practice
PDF
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
PDF
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
PPTX
Protein & Amino Acid Structures Levels of protein structure (primary, seconda...
PPTX
BIOMOLECULES PPT........................
PPTX
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
PPTX
The KM-GBF monitoring framework – status & key messages.pptx
PDF
Mastering Bioreactors and Media Sterilization: A Complete Guide to Sterile Fe...
PPTX
Microbiology with diagram medical studies .pptx
PPTX
cpcsea ppt.pptxssssssssssssssjjdjdndndddd
PPTX
Introduction to Cardiovascular system_structure and functions-1
PDF
SEHH2274 Organic Chemistry Notes 1 Structure and Bonding.pdf
PPT
protein biochemistry.ppt for university classes
PDF
CAPERS-LRD-z9:AGas-enshroudedLittleRedDotHostingaBroad-lineActive GalacticNuc...
PDF
Phytochemical Investigation of Miliusa longipes.pdf
PDF
bbec55_b34400a7914c42429908233dbd381773.pdf
Derivatives of integument scales, beaks, horns,.pptx
INTRODUCTION TO EVS | Concept of sustainability
Comparative Structure of Integument in Vertebrates.pptx
The scientific heritage No 166 (166) (2025)
The World of Physical Science, • Labs: Safety Simulation, Measurement Practice
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
Protein & Amino Acid Structures Levels of protein structure (primary, seconda...
BIOMOLECULES PPT........................
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
The KM-GBF monitoring framework – status & key messages.pptx
Mastering Bioreactors and Media Sterilization: A Complete Guide to Sterile Fe...
Microbiology with diagram medical studies .pptx
cpcsea ppt.pptxssssssssssssssjjdjdndndddd
Introduction to Cardiovascular system_structure and functions-1
SEHH2274 Organic Chemistry Notes 1 Structure and Bonding.pdf
protein biochemistry.ppt for university classes
CAPERS-LRD-z9:AGas-enshroudedLittleRedDotHostingaBroad-lineActive GalacticNuc...
Phytochemical Investigation of Miliusa longipes.pdf
bbec55_b34400a7914c42429908233dbd381773.pdf

FuzzyDebugger.pdf

  • 1. FuzzyDbg 1 / 12 Department of Computer Science & Engineering Amrita School of Engineering Amrita Vishwa Vidyapeetham Name Roll No Ritvik Tanksalkar AM.EN.U4CSE18148 Sandhra Bino AM.EN.U4CSE18049 Vivek Kamisetty AM.EN.U4CSE18061 Vishnu Madhav AM.EN.U4CSE18144 Guide Vipin Pavithran
  • 2. 2 / 12 ➔ Problem Definition ➔ Problem Description ➔ Block Diagram ➔ Module Description OUTLINE
  • 3. Problem Statement 3 / 12 Generic debuggers like GDB don’t have functionalities like viewing call graphs generated and an efficient fuzzing functionality. Fuzzing is the most advanced and fastest way to find bugs in software. This project aims to build a simple and fast debugger with an implementation of graph view and fuzzing functionality.
  • 4. In our implementation, the tool would let the user debug and test their binary using the fuzzing engine. The end product would include a generic interface with the debugger, dump program state, stack, memory maps, registers etc. An automated mutation engine would generate input logs and crash logs along with a backtrace at the instance of a crash. 4 / 12 Problem Description
  • 6. Block Diagram - Debugger
  • 7. Our implementation of the debugger has the following features: ➔ Attach to running process ➔ Set breakpoints and delete them ➔ View registers Stages of Implementation
  • 8. Stages of Implementation ➔ Debugger Attach to a process ◆ Fork and execve the target process ◆ Get address of entryPoint from elf header. ◆ Use ptrace to Set breakpoint at entryPoint. ◆ Continue execution and handle to user. ➔ Debugger Context ◆ Register values at every instruction
  • 9. 9 / 12 Stages of Implementation ➔ Debugger Breakpoints ◆ Set breakpoint at a given address ◆ Use of a breakpoint structure table to save original address values. ◆ Await for events in the traced process. ◆ Handle events like Signals, termination conditions etc.
  • 10. 10 / 12 The WIP project implementation consists of a Command line based debugger divided into the following major modules: ➔ FuzzyDbg ◆ The main debugger interface ◆ Handles commands given by user ◆ Reads the elf-header for future use. ➔ fdb-utils ◆ Implementation of debugger helper functions like parsing inputs. ◆ Functionality to get and set register values from traced process. Modules
  • 11. 11 / 12 Module Description ➔ Breakpoints ◆ Functionality to set and delete breakpoints. ◆ Patching the required instruction with xcc debugger interrupt. ◆ Saving the patched address along with the original address into a breakpoint structure. ◆ Use this to repatch the address back to original state. ➔ Elf-utils ◆ Functionality to parse elf header. ◆ Useful to find information like entryPoint. ◆ Also helps in detecting if binary is dynamic executable , whether it is Position Independent or not (PIE). ◆ Provides functionality to efficiently print out the elf header in an order.
  • 12. 12 / 12 Module Description ➔ Context ◆ The main debugger interface ◆ Handles commands given by user ➔ Attach ◆ Implementation of attach functionality ◆ Responsible for forking the debugger and tracing the child process ◆ Execve the target process and trace it with parent. ◆ Handle events that occur in child with every functionality
  • 14. Test Binaries ➔ Basic testing with test binaries ◆ Binaries can be dynamic or static executables. ◆ Binaries can be position dependent or not.
  • 15. Performance Metrics This unique implementation of a combination of debugger and Fuzz tester has multiple variable for performance: ● The fuzzer efficiency result wrt number of faults found within the test/debuggee application. ● Also corner cases and test cases of types of binaries that can work smoothly on this fuzzer
  • 18. Major Project milestones Modules to be completed Expected Deadlines 18 / 12 Future Work
  • 19. The full completed project is a Debugger with added support to fuzz test the binary or process loaded to the debugger using a Radamsa based mutation generation engine. The current implementation is complete in its first phase having the basic features of a debugger. The modules currently under WIP status are : ● Making debugger more robust and full of features. ● Graph View of the disassembly for easier visual static analysis and ● Radamsa Integration for fuzzing the test binary passed as argument to the debugger. Modules to be Completed
  • 20. Expected date to be Completed The expected date of Completion for the Project is estimated to be around April 2022 along with the Paper publication and submission for CFP at a major conference for acceptance.