KEMBAR78
Dynamic binary analysis using angr siddharth muralee | PPTX
DYNAMIC BINARY
ANALYSIS USING
ANGR
Presented by :
Siddharth M
Cysinfo Meetup - July ‘17
1
About me
●Siddharth M ( @tr3x)
●2nd Year BTech CSE student at Amrita
University
●Member of team bi0s
●Focusing on Reverse Engineering
2
www.ctftime.org3
Outline
●What is Binary Analysis ?
●Introduction to Angr
●Various uses of Angr
●Symbolic Execution
●Using Angr to perform SE
●Hooking
●Using Angr to perform Hooking
4
“ Process of analysing an
executable to gain a better
idea of its working is called
Binary analysis
5
Why do we need to Automate it?
●Save a lot of time and effort
●Avoid human error
●Cost - effective
●Boring
●All factors accounted for
6
Angr
●Shellphish’s entry for DARPA’s CGC - came 3rd
●Python based framework
●Open Source
●Can detect and exploit vulnerabilities
Installation instructions at angr.io
www.angr.io7
Various uses of Angr
●Control Flow Graph recovery
●Symbolic Execution
●ROP chain generation
●Binary Hardening
●Exploit Generation
8
Symbolic Execution
Analysing a program to determine the input/inputs
to be given to make each part of the program to
execute.
9
www.shellstorm.org
10
Angr and Symbolic Execution
● Symbolic variables
● Finds paths that are important
● Makes constrains related to the variable
● Solves those constraints using z3
11
Demo
Challenge : unbreakable-enterprise
Google CTF 2016
12
Hooking
Hooking is a technique used while reverse
engineering where certain instructions/calls are
replaced with custom made functions and calls.
13
Hooking is used for
●Faster Reverse Engineering
●Tracing function calls
●Parameter checking
●Logging
14
Demo 2
15
Summary
●Angr uses symbolic variables and constraints to
find out more about executable.
●Angr can hook functions
●Paths , Path groups
●States - entry state , blank state
●explore - find, avoid
●se - solver engine
● Claripy
●Library functions
16

Dynamic binary analysis using angr siddharth muralee

  • 1.
    DYNAMIC BINARY ANALYSIS USING ANGR Presentedby : Siddharth M Cysinfo Meetup - July ‘17 1
  • 2.
    About me ●Siddharth M( @tr3x) ●2nd Year BTech CSE student at Amrita University ●Member of team bi0s ●Focusing on Reverse Engineering 2
  • 3.
  • 4.
    Outline ●What is BinaryAnalysis ? ●Introduction to Angr ●Various uses of Angr ●Symbolic Execution ●Using Angr to perform SE ●Hooking ●Using Angr to perform Hooking 4
  • 5.
    “ Process ofanalysing an executable to gain a better idea of its working is called Binary analysis 5
  • 6.
    Why do weneed to Automate it? ●Save a lot of time and effort ●Avoid human error ●Cost - effective ●Boring ●All factors accounted for 6
  • 7.
    Angr ●Shellphish’s entry forDARPA’s CGC - came 3rd ●Python based framework ●Open Source ●Can detect and exploit vulnerabilities Installation instructions at angr.io www.angr.io7
  • 8.
    Various uses ofAngr ●Control Flow Graph recovery ●Symbolic Execution ●ROP chain generation ●Binary Hardening ●Exploit Generation 8
  • 9.
    Symbolic Execution Analysing aprogram to determine the input/inputs to be given to make each part of the program to execute. 9
  • 10.
  • 11.
    Angr and SymbolicExecution ● Symbolic variables ● Finds paths that are important ● Makes constrains related to the variable ● Solves those constraints using z3 11
  • 12.
  • 13.
    Hooking Hooking is atechnique used while reverse engineering where certain instructions/calls are replaced with custom made functions and calls. 13
  • 14.
    Hooking is usedfor ●Faster Reverse Engineering ●Tracing function calls ●Parameter checking ●Logging 14
  • 15.
  • 16.
    Summary ●Angr uses symbolicvariables and constraints to find out more about executable. ●Angr can hook functions ●Paths , Path groups ●States - entry state , blank state ●explore - find, avoid ●se - solver engine ● Claripy ●Library functions 16