0-knowledge fuzzing

Z
zynamics GmbHzynamics GmbH
0-Knowledge Fuzzing,[object Object],VincenzoIozzo,[object Object],vincenzo.iozzo@zynamics.com,[object Object]
Disclaimer,[object Object],In this talk you won’t see all those formulas, formal definition, code snippets and bullets. ,[object Object],From past experiences the speaker learned that all the aforementioned elements are no useful in making people understand your idea.,[object Object],You instead will see a lot of funny pictures which the speaker hopes will convey better the understanding of the ideas explained in the talk,[object Object],You don’t want slides like this, do you?,[object Object]
Motivations,[object Object]
Questions!,[object Object]
Fuzzing,[object Object]
How it used to be,[object Object]
How it is today                               (aka the reason of this talk),[object Object]
Dumb fuzzing,[object Object]
Smart Fuzzing,[object Object]
Evolutionary Based Fuzzing,[object Object]
The idea,[object Object]
The surface,[object Object]
We need a filter,[object Object]
Cyclomatic complexity,[object Object]
This one,[object Object]
Not this one,[object Object]
Original formula,[object Object],				M = E – N + 2P,[object Object],Number of edges,[object Object],Number of nodes,[object Object],Connected components,[object Object]
Why? Cyclomatic number,[object Object],				M = E – N + P,[object Object]
Simplify,[object Object]
Formula,[object Object],M = E – N + 2,[object Object]
Problem,[object Object]
Loop detection,[object Object]
Dominator tree,[object Object]
Dominators,[object Object]
Function,[object Object]
Dominator tree,[object Object]
Dominators,[object Object]
Implicit loops,[object Object]
REIL,[object Object]
This one…,[object Object]
…to this one,[object Object]
Is that enough?,[object Object]
Not enough,[object Object],Of course not, more heuristics needed,[object Object],void*safe_strcpy(void*old_dest,void *src, intsize){,[object Object],void*dst = realloc(old_dest, size +1);    	,[object Object],strncpy(dst, src, size);   ,[object Object],returndst;,[object Object],},[object Object]
Add your own,[object Object],For static analysis we use,[object Object]
DEMO,[object Object]
Questions!,[object Object]
Data Tainting,[object Object]
Example,[object Object],Taint Source,[object Object],Taint mark,[object Object],movl0x4[eax], ebx,[object Object]
Dytan,[object Object]
PIN,[object Object]
Taint sources,[object Object]
Markings granularity,[object Object]
Propagation ,[object Object],add eax, ebx, edx,[object Object]
Output,[object Object],				Registers,[object Object],			Memory locations,[object Object]
DEMO,[object Object]
Questions!,[object Object]
In-memory fuzzing,[object Object]
Example,[object Object],esi= 0x30f064 ,[object Object],Original loc ,[object Object],esi= 0x30f0A4 ,[object Object],Fuzzed loc ,[object Object],rep movs,[object Object]
Why?,[object Object]
Problems,[object Object]
Expertise and patience,[object Object]
Memory instability,[object Object]
False positives,[object Object]
False negatives,[object Object]
Mutation loop insertion,[object Object]
Snapshot mutation restoration,[object Object]
What do we do?,[object Object],Hook image,[object Object],Hook functions,[object Object],Hook instructions,[object Object],Hook ,[object Object]
First approach,[object Object]
For instance…,[object Object],30f064-30f068,[object Object],	0x8a Y 0x00 K,[object Object],ABCD,[object Object]
Second approach,[object Object]
Example,[object Object],30f064-30f068,[object Object],30f084-30f098,[object Object],0x89 K D F 0x96,[object Object],0x00 J K U Y W 0xA7,[object Object],0xB8 0x00 0x10 A T N,[object Object],0x00 0xD3,[object Object],ABCD,[object Object]
Code coverage,[object Object]
Score,[object Object],BBexecuted/BBtotal,[object Object],Basic Blocks executed,[object Object],Total Basic Blocks ,[object Object]
Halting,[object Object],Cevil = Cgood + t,[object Object],Code coverage evil sample,[object Object],Code coverage good sample,[object Object],User-supplied threshold,[object Object]
How??,[object Object],Good sample,[object Object],Evil sample,[object Object],Compare,[object Object],Score ,[object Object],Score ,[object Object]
What do we use?,[object Object],Code coverage,[object Object],Faults monitor,[object Object]
DEMO,[object Object]
Future – A reasoner,[object Object]
Thanks,[object Object]
Questions!,[object Object]
More Info,[object Object],viozzo.wordpress.com,[object Object],				@_snagg,[object Object],vincenzo.iozzo@zynamics.com,[object Object]
1 of 71

Recommended

Applications of the Reverse Engineering Language REIL by
Applications of the Reverse Engineering Language REILApplications of the Reverse Engineering Language REIL
Applications of the Reverse Engineering Language REILzynamics GmbH
500 views39 slides
Everybody be cool, this is a roppery! by
Everybody be cool, this is a roppery!Everybody be cool, this is a roppery!
Everybody be cool, this is a roppery!zynamics GmbH
788 views46 slides
Hitb by
HitbHitb
Hitbzynamics GmbH
489 views42 slides
Steve Jobs Inspirational Quotes by
Steve Jobs Inspirational QuotesSteve Jobs Inspirational Quotes
Steve Jobs Inspirational QuotesInsideView
204K views29 slides
Using binary classifiers by
Using binary classifiersUsing binary classifiers
Using binary classifiersbutest
460 views39 slides
Deep Learning from Scratch - Building with Python from First Principles.pdf by
Deep Learning from Scratch - Building with Python from First Principles.pdfDeep Learning from Scratch - Building with Python from First Principles.pdf
Deep Learning from Scratch - Building with Python from First Principles.pdfYungSang1
237 views269 slides

More Related Content

Similar to 0-knowledge fuzzing

Speakers tips by
Speakers tipsSpeakers tips
Speakers tipsDiego Fabra Rivière
3.2K views57 slides
Deep Learning with Audio Signals: Prepare, Process, Design, Expect by
Deep Learning with Audio Signals: Prepare, Process, Design, ExpectDeep Learning with Audio Signals: Prepare, Process, Design, Expect
Deep Learning with Audio Signals: Prepare, Process, Design, ExpectKeunwoo Choi
1K views33 slides
An Introduction to Deep Learning I AWS Dev Day 2018 by
An Introduction to Deep Learning I AWS Dev Day 2018An Introduction to Deep Learning I AWS Dev Day 2018
An Introduction to Deep Learning I AWS Dev Day 2018AWS Germany
194 views31 slides
An Introduction to Deep Learning (April 2018) by
An Introduction to Deep Learning (April 2018)An Introduction to Deep Learning (April 2018)
An Introduction to Deep Learning (April 2018)Julien SIMON
689 views31 slides
Chatbots and Deep Learning by
Chatbots and Deep LearningChatbots and Deep Learning
Chatbots and Deep LearningAndherson Maeda
904 views33 slides
An introduction to deep learning concepts by
An introduction to deep learning conceptsAn introduction to deep learning concepts
An introduction to deep learning conceptsAmazon Web Services
181 views30 slides

Similar to 0-knowledge fuzzing(20)

Deep Learning with Audio Signals: Prepare, Process, Design, Expect by Keunwoo Choi
Deep Learning with Audio Signals: Prepare, Process, Design, ExpectDeep Learning with Audio Signals: Prepare, Process, Design, Expect
Deep Learning with Audio Signals: Prepare, Process, Design, Expect
Keunwoo Choi1K views
An Introduction to Deep Learning I AWS Dev Day 2018 by AWS Germany
An Introduction to Deep Learning I AWS Dev Day 2018An Introduction to Deep Learning I AWS Dev Day 2018
An Introduction to Deep Learning I AWS Dev Day 2018
AWS Germany194 views
An Introduction to Deep Learning (April 2018) by Julien SIMON
An Introduction to Deep Learning (April 2018)An Introduction to Deep Learning (April 2018)
An Introduction to Deep Learning (April 2018)
Julien SIMON689 views
Ruby object model by mbeizer
Ruby object modelRuby object model
Ruby object model
mbeizer672 views
What does OOP stand for? by Colin Riley
What does OOP stand for?What does OOP stand for?
What does OOP stand for?
Colin Riley3.1K views
Automating Tinder w/ Eigenfaces and StanfordNLP by Justin Long
Automating Tinder w/ Eigenfaces and StanfordNLPAutomating Tinder w/ Eigenfaces and StanfordNLP
Automating Tinder w/ Eigenfaces and StanfordNLP
Justin Long1.3K views
Four Languages From Forty Years Ago (NewCrafts 2019) by Scott Wlaschin
Four Languages From Forty Years Ago (NewCrafts 2019)Four Languages From Forty Years Ago (NewCrafts 2019)
Four Languages From Forty Years Ago (NewCrafts 2019)
Scott Wlaschin2.1K views
NLP Bootcamp by Anuj Gupta
NLP BootcampNLP Bootcamp
NLP Bootcamp
Anuj Gupta1.6K views
What Developers Need To Know About Visual Design by Ben Hall
What Developers Need To Know About Visual DesignWhat Developers Need To Know About Visual Design
What Developers Need To Know About Visual Design
Ben Hall4.1K views
Deep learning introduction by Adwait Bhave
Deep learning introductionDeep learning introduction
Deep learning introduction
Adwait Bhave382 views
Pointers lesson 4 (malloc and its use) by SetuMaheshwari1
Pointers lesson 4 (malloc and its use)Pointers lesson 4 (malloc and its use)
Pointers lesson 4 (malloc and its use)
SetuMaheshwari126 views
MLlecture1.ppt by butest
MLlecture1.pptMLlecture1.ppt
MLlecture1.ppt
butest424 views
MLlecture1.ppt by butest
MLlecture1.pptMLlecture1.ppt
MLlecture1.ppt
butest310 views
Machine learning the next revolution or just another hype by Jorge Ferrer
Machine learning   the next revolution or just another hypeMachine learning   the next revolution or just another hype
Machine learning the next revolution or just another hype
Jorge Ferrer1.4K views
When indexes are not enough by Davide Mauri
When indexes are not enoughWhen indexes are not enough
When indexes are not enough
Davide Mauri383 views

More from zynamics GmbH

How to really obfuscate your pdf malware by
How to really obfuscate   your pdf malwareHow to really obfuscate   your pdf malware
How to really obfuscate your pdf malwarezynamics GmbH
3.5K views52 slides
How to really obfuscate your pdf malware by
How to really obfuscate your pdf malwareHow to really obfuscate your pdf malware
How to really obfuscate your pdf malwarezynamics GmbH
1.6K views52 slides
Architectural Diversity (German) by
Architectural Diversity (German)Architectural Diversity (German)
Architectural Diversity (German)zynamics GmbH
2.1K views40 slides
Architectural Diversity (German) by
Architectural Diversity (German)Architectural Diversity (German)
Architectural Diversity (German)zynamics GmbH
556 views40 slides
Uni mannheim debuggers by
Uni mannheim debuggersUni mannheim debuggers
Uni mannheim debuggerszynamics GmbH
1.7K views53 slides
Introduction to mobile reversing by
Introduction to mobile reversingIntroduction to mobile reversing
Introduction to mobile reversingzynamics GmbH
963 views32 slides

More from zynamics GmbH(10)

How to really obfuscate your pdf malware by zynamics GmbH
How to really obfuscate   your pdf malwareHow to really obfuscate   your pdf malware
How to really obfuscate your pdf malware
zynamics GmbH3.5K views
How to really obfuscate your pdf malware by zynamics GmbH
How to really obfuscate your pdf malwareHow to really obfuscate your pdf malware
How to really obfuscate your pdf malware
zynamics GmbH1.6K views
Architectural Diversity (German) by zynamics GmbH
Architectural Diversity (German)Architectural Diversity (German)
Architectural Diversity (German)
zynamics GmbH2.1K views
Architectural Diversity (German) by zynamics GmbH
Architectural Diversity (German)Architectural Diversity (German)
Architectural Diversity (German)
zynamics GmbH556 views
Uni mannheim debuggers by zynamics GmbH
Uni mannheim debuggersUni mannheim debuggers
Uni mannheim debuggers
zynamics GmbH1.7K views
Introduction to mobile reversing by zynamics GmbH
Introduction to mobile reversingIntroduction to mobile reversing
Introduction to mobile reversing
zynamics GmbH963 views
0-knowledge fuzzing white paper by zynamics GmbH
0-knowledge fuzzing white paper0-knowledge fuzzing white paper
0-knowledge fuzzing white paper
zynamics GmbH488 views
Formale Methoden im Reverse Engineering by zynamics GmbH
Formale Methoden im Reverse EngineeringFormale Methoden im Reverse Engineering
Formale Methoden im Reverse Engineering
zynamics GmbH1.2K views

0-knowledge fuzzing

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.

Editor's Notes

  1. babic