SlideShare a Scribd company logo
Practical Malware Analysis
Ch 5: IDA Pro
IDA Pro Versions
• Full-featured pay version
• Old free version
– Both support x86
– Pay version supports x64 and other processors,
such as cell phone processors
• Both have code signatures for common library
code in FLIRT (Fast Library identification and
Recognition Technology)
Graph and
Text Mode
• Spacebar
switches
mode
Default Graph Mode Display
Options, General
Better Graph Mode View
Arrows
• Colors
– Red Conditional jump not taken
– Green Conditional jump taken
– Blue Unconditional jump
• Direction
– Up Loop
Arrow Color Example
Highlighting
• Highlighting text in graph mode highlights
every instance of that text
Text ModeArrows
Solid = Unconditional
Dashed = Conditional
Up = Loop
Section
Address
Comment
Generated by
IDA Pro
Options, General
Adds Comments to Each Instruction
Useful Windows for Analysis
Functions
• Shows each function, length, and flags
– L = Library functions
• Sortable
– Large functions usually more important
Names Window
• Every address with a name
– Functions, named code, named data, strings
Strings
Imports & Exports
Structures
• All active data structures
– Hover to see yellow pop-up window
Cross-
Reference
• Double-
click
function
• Jump to
code in
other
views
Function Call
• Parameters pushed onto stack
• CALL to start function
Returning to the Default View
• Windows, Reset Desktop
• Windows, Save Desktop
– To save a new view
Navigating IDA Pro
Imports or Strings
• Double-click any entry to display it in the
disassembly window
Using Links
• Double-click any address in the disassembly
window to display that location
History
• Forward and Back buttons work like a Web
browser
Navigation Band
• Light blue: Library code
• Red: Compiler-generated code
• Dark blue: User-written code – Analyze this
Jump to Location
• Press G
• Can jump to address or named location
Searching
• Many options
• Search, Text is
handy
Using Cross-References
Code Cross-References
• XREF comment shows where this function is
called
• But it only shows a couple of cross-references
by default
To See All Cross-References
• Click function name and press X
Data Cross-References
• Demo:
– Start with strings
– Double-click an interesting string
– Hover over DATA XREF to see where that string is
used
– X shows all references
Analyzing Functions
Function and Argument Recognition
• IDA Pro identifies a function, names it, and
also names the local variables
• It's not always correct
Using Graphing Options
Graphing Options
+
Graphing
Options
• These are "Legacy Graphs" and cannot be
manipulated with IDA
• The first two seem obsolete
– Flow chart
• Create flow chart of current function
– Function calls
• Graph function calls for entire program
Graphing
Options
• Xrefs to
– Graphs XREFs to get to selected XREF
– Can show all the paths that get to a function
Windows Genuine Status in Calc.exe
Graphing
Options
• Xrefs from
– Graphs XREFs from selected XREF
– Can show all the paths that exit from a function
Graphing
Options
• User xrefs chart...
– Customize graph's recursive depth, symbols
used, to or from symbol, etc.
– The only way to modify legacy graphs
Enhancing Disassembly
Warning
• There's no Undo, so if you make changes and
mess them up, you may be sorry
Renaming Locations
• You can change a name like sub_401000 to
ReverseBackdoorThread
• Change it in one place, IDA will change it
everywhere else
Practical Malware Analysis: Ch 5: IDA Pro
Comments
• Press colon (:) to add a single comment
• Press semicolon (;) to echo this comment to
all Xrefs
Formatting Operands
• Hexadecimal by default
• Right-click to use other formats
Using Named Constants
• Makes Windows API arguments clearer
Extending IDA with Plug-ins
• IDC (IDA's scripting language) and Python
scripts available (link Ch 6a)

More Related Content

PDF
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
PDF
Practical Malware Analysis: Ch 8: Debugging
PDF
Practical Malware Analysis: Ch 11: Malware Behavior
PPT
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs
PDF
CNIT 126 9: OllyDbg
PPTX
Practical Malware Analysis: Ch 2 Malware Analysis in Virtual Machines & 3: Ba...
PDF
CNIT 126 8: Debugging
PDF
Practical Malware Analysis: Ch 9: OllyDbg
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
Practical Malware Analysis: Ch 8: Debugging
Practical Malware Analysis: Ch 11: Malware Behavior
Practical Malware Analysis: Ch 7: Analyzing Malicious Windows Programs
CNIT 126 9: OllyDbg
Practical Malware Analysis: Ch 2 Malware Analysis in Virtual Machines & 3: Ba...
CNIT 126 8: Debugging
Practical Malware Analysis: Ch 9: OllyDbg

What's hot (20)

PDF
CNIT 126 2: Malware Analysis in Virtual Machines & 3: Basic Dynamic Analysis
PDF
CNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static Techniques
PDF
CNIT 126 12: Covert Malware Launching
PPT
Malware Analysis - x86 Disassembly
PDF
Practical Malware Analysis Ch13
PDF
CNIT 126: 10: Kernel Debugging with WinDbg
PPTX
Practical Malware Analysis: Ch 0: Malware Analysis Primer & 1: Basic Static T...
PDF
Practical Malware Analysis Ch12
PPTX
Linux process management
PPTX
Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly
PPTX
Android bootup process
PDF
Practical Malware Analysis Ch 14: Malware-Focused Network Signatures
PDF
Layouts in android
PDF
PPTX
Fortify - Source Code Analyzer
PPTX
Android Booting Sequence
PPT
Linux file system
PDF
CNIT 126 6: Recognizing C Code Constructs in Assembly
PPTX
SOFTWARE TESTING
PPT
Eclipse introduction IDE PRESENTATION
CNIT 126 2: Malware Analysis in Virtual Machines & 3: Basic Dynamic Analysis
CNIT 126 Ch 0: Malware Analysis Primer & 1: Basic Static Techniques
CNIT 126 12: Covert Malware Launching
Malware Analysis - x86 Disassembly
Practical Malware Analysis Ch13
CNIT 126: 10: Kernel Debugging with WinDbg
Practical Malware Analysis: Ch 0: Malware Analysis Primer & 1: Basic Static T...
Practical Malware Analysis Ch12
Linux process management
Practical Malware Analysis: Ch 4 A Crash Course in x86 Disassembly
Android bootup process
Practical Malware Analysis Ch 14: Malware-Focused Network Signatures
Layouts in android
Fortify - Source Code Analyzer
Android Booting Sequence
Linux file system
CNIT 126 6: Recognizing C Code Constructs in Assembly
SOFTWARE TESTING
Eclipse introduction IDE PRESENTATION
Ad

Similar to Practical Malware Analysis: Ch 5: IDA Pro (20)

PDF
CNIT 126 5: IDA Pro
PPTX
IDA pro - Sam Brown
PDF
CNIT 126 5: IDA Pro
PDF
PDF in Smalltalk
PPT
Advanced Data Analytics with R Programming.ppt
ODP
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
PPTX
Funtional Programming
PDF
Functional programming with F#
PDF
Scala Days NYC 2016
PPT
How to obtain and install R.ppt
PPTX
Functional Programming.pptx
PPT
Introduction to R for Data Science Technology
PPT
Python programming
PPT
introduction to R with example, Data science
PPT
Slides on introduction to R by ArinBasu MD
PPT
Basics of R-Progranmming with instata.ppt
PPT
PPT
17641.ppt
PPTX
a brief explanation on the topic of Imperative Programming Paradigm.pptx
PPTX
Python basics
CNIT 126 5: IDA Pro
IDA pro - Sam Brown
CNIT 126 5: IDA Pro
PDF in Smalltalk
Advanced Data Analytics with R Programming.ppt
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Funtional Programming
Functional programming with F#
Scala Days NYC 2016
How to obtain and install R.ppt
Functional Programming.pptx
Introduction to R for Data Science Technology
Python programming
introduction to R with example, Data science
Slides on introduction to R by ArinBasu MD
Basics of R-Progranmming with instata.ppt
17641.ppt
a brief explanation on the topic of Imperative Programming Paradigm.pptx
Python basics
Ad

More from Sam Bowne (20)

PDF
Introduction to the Class & CISSP Certification
PDF
Cyberwar
PDF
3: DNS vulnerabilities
PDF
8. Software Development Security
PDF
4 Mapping the Application
PDF
3. Attacking iOS Applications (Part 2)
PDF
12 Elliptic Curves
PDF
11. Diffie-Hellman
PDF
2a Analyzing iOS Apps Part 1
PDF
9 Writing Secure Android Applications
PDF
12 Investigating Windows Systems (Part 2 of 3)
PDF
10 RSA
PDF
12 Investigating Windows Systems (Part 1 of 3
PDF
9. Hard Problems
PDF
8 Android Implementation Issues (Part 1)
PDF
11 Analysis Methodology
PDF
8. Authenticated Encryption
PDF
7. Attacking Android Applications (Part 2)
PDF
7. Attacking Android Applications (Part 1)
PDF
5. Stream Ciphers
Introduction to the Class & CISSP Certification
Cyberwar
3: DNS vulnerabilities
8. Software Development Security
4 Mapping the Application
3. Attacking iOS Applications (Part 2)
12 Elliptic Curves
11. Diffie-Hellman
2a Analyzing iOS Apps Part 1
9 Writing Secure Android Applications
12 Investigating Windows Systems (Part 2 of 3)
10 RSA
12 Investigating Windows Systems (Part 1 of 3
9. Hard Problems
8 Android Implementation Issues (Part 1)
11 Analysis Methodology
8. Authenticated Encryption
7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 1)
5. Stream Ciphers

Recently uploaded (20)

PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
PPTX
master seminar digital applications in india
PPTX
History, Philosophy and sociology of education (1).pptx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Computing-Curriculum for Schools in Ghana
PPTX
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
PPTX
Cell Structure & Organelles in detailed.
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Lesson notes of climatology university.
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
202450812 BayCHI UCSC-SV 20250812 v17.pptx
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
master seminar digital applications in india
History, Philosophy and sociology of education (1).pptx
2.FourierTransform-ShortQuestionswithAnswers.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Computing-Curriculum for Schools in Ghana
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
Cell Structure & Organelles in detailed.
Final Presentation General Medicine 03-08-2024.pptx
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Lesson notes of climatology university.
Anesthesia in Laparoscopic Surgery in India
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
Chinmaya Tiranga quiz Grand Finale.pdf

Practical Malware Analysis: Ch 5: IDA Pro