SlideShare a Scribd company logo
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Selective Symbolic Execution
Shivkrishna Anil
1
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Agenda
● Introduction
● S2E
● Analysing a simple program
● Demo Video
2
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
@shivnambiar1
● Member of Team bi0s
● Final Year Computer Science student at Amrita University
● Focuses on Memory Forensics, Disk Forensics and
Steganography
● Working on a plugin for S2E
3
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Symbolic??
● Analyzing a program to determine inputs that cause a part of
a program to execute
● S2E, Angr, Mayhem, Triton, KLEE
● Useful for generating test cases with exhaustive code
coverage
● Works on obfuscated binaries
4
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Path Constraints
5Example of Symbolic Execution : https://goo.gl/qqv6Pw
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
S2E
● Selective Symbolic Execution
● Automated path explorer with modular path analyzers
● S2E - A platform for developing multi-path in-vivo analysis
tools
● Contender for CGC 2016
● Emulates an entire virtual machine instead of an executable
● Random path selection and DFS 6
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Why S2E?
● A technique for creating the illusion of full system symbolic
execution, while symbolically running only the code that is of
interest to the developer
● Can interact with the environment
● Input can switch from symbolic to concrete domain and vice
versa
7
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Comparison
● Works for very large programs like a whole windows stack
frame
● Implemented at the Kernel level
● Does not exhaust System resources as compared to other
Symbolic engines
8
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
The Working of Transition
Multi-path / Single-path execution : http://s2e.epfl.ch/images/s2e-sel.png 9
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
S2E Architecture
S2E Architecture : http://s2e.epfl.ch/images/s2e-vm.png 10
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Code Walkthrough
11
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
12
Code Walkthrough (contd)
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Tree Diagram
13
Input Set
of all
characters
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Live Demo
14
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Limitations
● Exhausts memory when state forking increases considerably
● Maximum of 2 arguments can only be passed
● S2E can only run on a shared-memory architecture
● Code coverage is low as it doesn't consider under constrained
and over constrained symbols
15
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Further Reading
● S2E: A Platform for In-Vivo Multi-Path Analysis of Software
Systems
● Selective Symbolic Execution
● A Survey of Symbolic Execution Techniques
16
Team bi0s
Amrita Center for Cybersecurity,
Amritapuri
Questions??
17

More Related Content

PPTX
The Veil-Framework
PDF
Veil-Ordnance
PDF
PDF
syzkaller: the next gen kernel fuzzer
PDF
Higher Level Malware
PDF
A Battle Against the Industry - Beating Antivirus for Meterpreter and More
PDF
Windows 10 - Endpoint Security Improvements and the Implant Since Windows 2000
PDF
Frida Android run time hooking - Bhargav Gajera & Vitthal Shinde
The Veil-Framework
Veil-Ordnance
syzkaller: the next gen kernel fuzzer
Higher Level Malware
A Battle Against the Industry - Beating Antivirus for Meterpreter and More
Windows 10 - Endpoint Security Improvements and the Implant Since Windows 2000
Frida Android run time hooking - Bhargav Gajera & Vitthal Shinde

What's hot (20)

PDF
AntiVirus Evasion Reconstructed - Veil 3.0
PPTX
I believe in rust
PDF
The Supporting Role of Antivirus Evasion while Persisting
KEY
Distributed app development with nodejs and zeromq
PDF
Introduction to Ewasm - crosslink taipei 2019
ODP
Native client (Евгений Эльцин)
PPT
Leveraging zeromq for node.js
PDF
The State of the Veil Framework
PPT
JavaScript Unit Testing
PPT
JavaScript Unit Testing
PPTX
The Saga of JavaScript and Typescript: in Deno land
PPTX
Hacking - Breaking Into It
PDF
Introduction to ZeroMQ - eSpace TechTalk
PDF
Appium & Robot Framework
PDF
Automate Yo' Self
PPTX
Debugging NET Applications With WinDBG
PDF
An EyeWitness View into your Network
PDF
LibreOffice oss-fuzz, crashtesting, coverity
PDF
Swift for back end: A new generation of full stack languages?
PDF
The Art of AV Evasion - Or Lack Thereof
AntiVirus Evasion Reconstructed - Veil 3.0
I believe in rust
The Supporting Role of Antivirus Evasion while Persisting
Distributed app development with nodejs and zeromq
Introduction to Ewasm - crosslink taipei 2019
Native client (Евгений Эльцин)
Leveraging zeromq for node.js
The State of the Veil Framework
JavaScript Unit Testing
JavaScript Unit Testing
The Saga of JavaScript and Typescript: in Deno land
Hacking - Breaking Into It
Introduction to ZeroMQ - eSpace TechTalk
Appium & Robot Framework
Automate Yo' Self
Debugging NET Applications With WinDBG
An EyeWitness View into your Network
LibreOffice oss-fuzz, crashtesting, coverity
Swift for back end: A new generation of full stack languages?
The Art of AV Evasion - Or Lack Thereof
Ad

Similar to S2 e (selective symbolic execution) -shivkrishna a (13)

PDF
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
PDF
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
PDF
Symbolic Execution (introduction and hands-on)
PDF
A Survey of Symbolic Execution Tools
PDF
NSC #2 - D2 06 - Richard Johnson - SAGEly Advice
PPTX
Symbolic Execution And KLEE
PDF
Linaro Connect 2016 (BKK16) - Introduction to LISA
PPTX
Baab (Bug as a Backdoor) through automatic exploit generation (CRAX)
PDF
Automatic Test Data Generation from Embedded C Code 1st Edition by Eileen Dil...
PDF
Dynamic Binary Analysis and Obfuscated Codes
PDF
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
PDF
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
PDF
Model-based Testing Principles
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
Symbolic Execution (introduction and hands-on)
A Survey of Symbolic Execution Tools
NSC #2 - D2 06 - Richard Johnson - SAGEly Advice
Symbolic Execution And KLEE
Linaro Connect 2016 (BKK16) - Introduction to LISA
Baab (Bug as a Backdoor) through automatic exploit generation (CRAX)
Automatic Test Data Generation from Embedded C Code 1st Edition by Eileen Dil...
Dynamic Binary Analysis and Obfuscated Codes
A Survey on Dynamic Symbolic Execution for Automatic Test Generation
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model-based Testing Principles
Ad

More from Cysinfo Cyber Security Community (20)

PDF
Understanding Malware Persistence Techniques by Monnappa K A
PDF
Understanding & analyzing obfuscated malicious web scripts by Vikram Kharvi
PDF
Getting started with cybersecurity through CTFs by Shruti Dixit & Geethna TK
PPTX
Emerging Trends in Cybersecurity by Amar Prusty
PDF
A look into the sanitizer family (ASAN & UBSAN) by Akul Pillai
PDF
Closer look at PHP Unserialization by Ashwin Shenoi
PDF
Unicorn: The Ultimate CPU Emulator by Akshay Ajayan
PDF
The Art of Executing JavaScript by Akhil Mahendra
PDF
Reversing and Decrypting Malware Communications by Monnappa
PPTX
DeViL - Detect Virtual Machine in Linux by Sreelakshmi
PPTX
Analysis of android apk using adhrit by Abhishek J.M
PDF
Understanding evasive hollow process injection techniques monnappa k a
PPTX
Security challenges in d2d communication by ajithkumar vyasarao
PPTX
Dynamic binary analysis using angr siddharth muralee
PPTX
Bit flipping attack on aes cbc - ashutosh ahelleya
PDF
Security Analytics using ELK stack
PDF
Linux Malware Analysis
ODP
Introduction to Binary Exploitation
PDF
ATM Malware: Understanding the threat
PPTX
XXE - XML External Entity Attack
Understanding Malware Persistence Techniques by Monnappa K A
Understanding & analyzing obfuscated malicious web scripts by Vikram Kharvi
Getting started with cybersecurity through CTFs by Shruti Dixit & Geethna TK
Emerging Trends in Cybersecurity by Amar Prusty
A look into the sanitizer family (ASAN & UBSAN) by Akul Pillai
Closer look at PHP Unserialization by Ashwin Shenoi
Unicorn: The Ultimate CPU Emulator by Akshay Ajayan
The Art of Executing JavaScript by Akhil Mahendra
Reversing and Decrypting Malware Communications by Monnappa
DeViL - Detect Virtual Machine in Linux by Sreelakshmi
Analysis of android apk using adhrit by Abhishek J.M
Understanding evasive hollow process injection techniques monnappa k a
Security challenges in d2d communication by ajithkumar vyasarao
Dynamic binary analysis using angr siddharth muralee
Bit flipping attack on aes cbc - ashutosh ahelleya
Security Analytics using ELK stack
Linux Malware Analysis
Introduction to Binary Exploitation
ATM Malware: Understanding the threat
XXE - XML External Entity Attack

Recently uploaded (20)

PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
1. Introduction to Computer Programming.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPT
Teaching material agriculture food technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Getting Started with Data Integration: FME Form 101
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Machine Learning_overview_presentation.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
A Presentation on Artificial Intelligence
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
1. Introduction to Computer Programming.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Univ-Connecticut-ChatGPT-Presentaion.pdf
Teaching material agriculture food technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Advanced methodologies resolving dimensionality complications for autism neur...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Getting Started with Data Integration: FME Form 101
Reach Out and Touch Someone: Haptics and Empathic Computing
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Group 1 Presentation -Planning and Decision Making .pptx
A comparative analysis of optical character recognition models for extracting...
SOPHOS-XG Firewall Administrator PPT.pptx
Network Security Unit 5.pdf for BCA BBA.
Machine Learning_overview_presentation.pptx
Programs and apps: productivity, graphics, security and other tools
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
A Presentation on Artificial Intelligence

S2 e (selective symbolic execution) -shivkrishna a

  • 1. Team bi0s Amrita Center for Cybersecurity, Amritapuri Selective Symbolic Execution Shivkrishna Anil 1
  • 2. Team bi0s Amrita Center for Cybersecurity, Amritapuri Agenda ● Introduction ● S2E ● Analysing a simple program ● Demo Video 2
  • 3. Team bi0s Amrita Center for Cybersecurity, Amritapuri @shivnambiar1 ● Member of Team bi0s ● Final Year Computer Science student at Amrita University ● Focuses on Memory Forensics, Disk Forensics and Steganography ● Working on a plugin for S2E 3
  • 4. Team bi0s Amrita Center for Cybersecurity, Amritapuri Symbolic?? ● Analyzing a program to determine inputs that cause a part of a program to execute ● S2E, Angr, Mayhem, Triton, KLEE ● Useful for generating test cases with exhaustive code coverage ● Works on obfuscated binaries 4
  • 5. Team bi0s Amrita Center for Cybersecurity, Amritapuri Path Constraints 5Example of Symbolic Execution : https://goo.gl/qqv6Pw
  • 6. Team bi0s Amrita Center for Cybersecurity, Amritapuri S2E ● Selective Symbolic Execution ● Automated path explorer with modular path analyzers ● S2E - A platform for developing multi-path in-vivo analysis tools ● Contender for CGC 2016 ● Emulates an entire virtual machine instead of an executable ● Random path selection and DFS 6
  • 7. Team bi0s Amrita Center for Cybersecurity, Amritapuri Why S2E? ● A technique for creating the illusion of full system symbolic execution, while symbolically running only the code that is of interest to the developer ● Can interact with the environment ● Input can switch from symbolic to concrete domain and vice versa 7
  • 8. Team bi0s Amrita Center for Cybersecurity, Amritapuri Comparison ● Works for very large programs like a whole windows stack frame ● Implemented at the Kernel level ● Does not exhaust System resources as compared to other Symbolic engines 8
  • 9. Team bi0s Amrita Center for Cybersecurity, Amritapuri The Working of Transition Multi-path / Single-path execution : http://s2e.epfl.ch/images/s2e-sel.png 9
  • 10. Team bi0s Amrita Center for Cybersecurity, Amritapuri S2E Architecture S2E Architecture : http://s2e.epfl.ch/images/s2e-vm.png 10
  • 11. Team bi0s Amrita Center for Cybersecurity, Amritapuri Code Walkthrough 11
  • 12. Team bi0s Amrita Center for Cybersecurity, Amritapuri 12 Code Walkthrough (contd)
  • 13. Team bi0s Amrita Center for Cybersecurity, Amritapuri Tree Diagram 13 Input Set of all characters
  • 14. Team bi0s Amrita Center for Cybersecurity, Amritapuri Live Demo 14
  • 15. Team bi0s Amrita Center for Cybersecurity, Amritapuri Limitations ● Exhausts memory when state forking increases considerably ● Maximum of 2 arguments can only be passed ● S2E can only run on a shared-memory architecture ● Code coverage is low as it doesn't consider under constrained and over constrained symbols 15
  • 16. Team bi0s Amrita Center for Cybersecurity, Amritapuri Further Reading ● S2E: A Platform for In-Vivo Multi-Path Analysis of Software Systems ● Selective Symbolic Execution ● A Survey of Symbolic Execution Techniques 16
  • 17. Team bi0s Amrita Center for Cybersecurity, Amritapuri Questions?? 17

Editor's Notes

  • #5: A Method of dynamic binary analysis - to get test cases KLEE is a symbolic virtual machine built on top of the LLVM compiler Mayhem - PPP _CMU Angr -Shellphish - UCSB Formal definition of symbolic execution slide needs to be added Symbolic execution: - A mechanism to discover the code coverage -- Translate each instruction into constraints --- constraints: a formula define the operation functionality -- Collect all constraints -- Solve when required condition is met --- e.g. when a branch condition is met Formal definition of Concolic execution: - Number of possible paths increases exponentially -- in symbolic execution, every memory is location is symbolized -- too many symbols to solve - Concolic execution -- only make the interesting memory symbolize -- otherwise give a concrete value Source code not required for code coverage Obfuscated
  • #6: Conflicting path constraints cancels
  • #7: In-vivo : this kind of analysis helps to understand all the interactions of the analysed code in surrounding system Algorithm used DFS and random path STP - Constaint solver automated path explorer with modular path analyzers:the explorer drives the target system down all execution paths of interest, while analyzers check properties of each such path
  • #8: For eg: a malware - classical malware analysis - debuger n sandbox -evade Ptrace - system call
  • #9: If we want to analyse a program in multi-path ; it will also execute the dependent libraries in multi-path which takes up a lot of system resources unnecessarily (Path explosion) Works for large programs because it executes symbolically only the region of interest Kernel level - Does not analyse
  • #12: Explain the code
  • #13: S2e_make_symbolic - to give all possible inputs S2e_enable_forking - to fork different branches for path exploration
  • #15: Talk about different inputs and the various paths it takes. Final messages.txt
  • #16: S2E cannot start on one machine and fork new instances on other machines for now - Shared memory architecure