SlideShare una empresa de Scribd logo
1 de 23
Slicing into Apple: iPhone Reverse Engineering Ryan PermehTrace TeamMcAfee
Introduction Reverse engineering is taking a finished product and working back towards it’s constituent artifacts Gives us a peek behind the curtains of software Helpful for a variety of legitimate uses Better understanding how software works Recovering lost knowledge Interfacing to closed systems Finding security issues May be used illegally DCMA, software piracy, IP theft
Skill Outlay Reverse engineering is a very technical subject Requires a deep understanding of several topics Hardware Architecture Software Architecture Operating system internals Assembly language Higher level languages Compiler, linker, and loader internals Debugging The better you understand how software is made, the easier it is to reverse engineer it.
JailBreak your iPhone You really need to be jailbroken to have a platform to work from Jailbreak breaks signing requirements for applications Opens the phone up to a variety of new uses Run software from other sources Develop software without need for Apple Developer cost Allows you access to the internals of the iPhone Jailbreak for 4.3.3 and beyond This changes often, so do your research Jailbreaking happens via an exploit, leveraged to patch the kernel Install Cydia and use that to install your tools Gcc/gdb SSH access Class-dump Whatever else you want
Tools used Reverse engineering leverages several tools to get a better understanding of the code Disassembler Parses finished code into assembly language Understand and visualize program flow  Provides cross references, searching, and other useful tools We use IDA Pro 6.0 in these examples Debugger Offers a view of the program at runtime Helpful for dynamic analysis Can tie into other reverse engineering artifacts We use gdb in these examples
Tools - iPhone Specific Clutch – http://clutch.hackulo.us Tool to crack software Handles decrypting binaries automatically class-dump - http://www.codethecode.com/projects/class-dump/ Dumps internal Objective-C objects Helps understand interfaces, objects in project Itunnel - http://www.cs.toronto.edu/~jingsu/itunnel/ Useful for connecting from a host machine directly to a jailbrokeniphone For windows and unix (windows – search for itunnel.exe) Used in lieu of a WIFI connection
Inside the iPhone
Hardware Processor: ARM Cortex A8 Developed by Apple and Samsung Latest devices use A4 designation 32 bit RISC architecture Uses thumb extensions Radio functionality 3g Wifi Bluetooth Nordic Semiconductor proprietary chipset Camera Touch Screen
Operating System  iOS(previously iPhone OS) is currently at 4.3.3 Darwin based kernel Unix platform Ships drivers for all hardware OS versions defines support for various features iOS 4 brought multitasking, Game Center iOS 3 brought video, improved GPS Security Mechanisms Code Signing Sandboxing
Programming on the iPhone Objective-C  A superset of the C language Uses an Object oriented model Uses messages instead of calls Uses late runtime binding of objects Cocoa Appkit Graphics that fit UI guidelines FoundationKit Containers Value manipulation
iPhone Binary Format Uses MACH-O format Comprised of a standard header a series of load commands a series of segments Sections within the segments The process of loading is Loader recognizes header Processes each load command Expands each segment Maps each section to memory Universal Binaries pair multiple platforms in one package iPhone binaries often have both ARM 6 and ARM 7
Examining a Binary Key Steps to Disassemble an iPhone Binary Get the Binary Put it on the phone Decrypt the segments Transfer it off the phone Load it in your Disassembler PROFIT!
Getting the Binary You can get the binary in a number of ways Download via iTunes Use iPhone Store app on device iPhone Backup Find third party place (be careful) Binary locations Itunes:   My MusicTunesTunes Mediaobile Applications On Phone:  /Applications /private/var/mobile/Applications
Getting Files On and Off the Phone If you downloaded from the appstore, you can skip this step Itunes Do a simple sync Third party (and getting apps off the phone) Use SCP or iPhone Browser Clutch puts binaries here /var/root/Documents/Cracked/
WinSCP Demo Demo 1
Installing From the Appstore Demo 2
Decrypt the segments Appstore iPhone binaries are encrypted and signed Tied to the phone it is to be installed on Code segments are encrypted, so look like gibberish We need a way to decrypt The hard way Calculate encryption offsets Run program with debugger Dump unecrypted memory segment Patch binary with unecrypted segment Update references to crypto The easy way Clutch
Clutch Demo Demo 3
Load It into the Disassembler Unpack the clutch output ipa Ipa files are just zip files, you can rename them to .zip  Should have a directory structure /some GUID /App files App is probably the largest file, has no extension Explore other files Use plist editor to examine .plist files DB/data files often SQLLite Load File into the Disassembler
Unpacking the IPA Demo 4
iPhone Binary Internals Uses Objective-C and Cocoa Calls are non-obvious Use python tool to fixup calls Reanalyze with new markup Code is ARM assembler Areas to look at Strings Areas of import Network calls Crypto Calls to key iPhone areas (mail, sms, calendar, etc) Key functionality per app Graphs help understand flow
Analyzing the Binary Demo 5
Questions? Ryan_Permeh@mcafee.com http://www.mcafee.com

Más contenido relacionado

Destacado

iOS App Reverse Engineering
iOS App Reverse EngineeringiOS App Reverse Engineering
iOS App Reverse EngineeringZishe Sha
 
Understanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolUnderstanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolGabor Paller
 
Elementary µprocessor tutorial
Elementary µprocessor tutorial Elementary µprocessor tutorial
Elementary µprocessor tutorial Nabil Chouba
 
iOS Application Penetation Test
iOS Application Penetation TestiOS Application Penetation Test
iOS Application Penetation TestJongWon Kim
 
A New Approach to Social Mobility Models: Simulation as “Reverse Engineering”
A New Approach to Social Mobility Models: Simulation as “Reverse Engineering”A New Approach to Social Mobility Models: Simulation as “Reverse Engineering”
A New Approach to Social Mobility Models: Simulation as “Reverse Engineering”Edmund Chattoe-Brown
 
Null Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat DasNull Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat Dasnullowaspmumbai
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineeringParminder Singh
 
8 bit single cycle processor
8 bit single cycle processor8 bit single cycle processor
8 bit single cycle processorDhaval Kaneria
 
型態與運算子
型態與運算子型態與運算子
型態與運算子Justin Lin
 
Total Quality Management and i phone
Total Quality Management and i phoneTotal Quality Management and i phone
Total Quality Management and i phoneJawad Ali
 
MakerBoard: MT7688 Emulator
MakerBoard: MT7688 EmulatorMakerBoard: MT7688 Emulator
MakerBoard: MT7688 EmulatorFred Chien
 
Introduction to Reverse Engineering
Introduction to Reverse EngineeringIntroduction to Reverse Engineering
Introduction to Reverse EngineeringGopinath Chintala
 
Reverse Engineering (EVO 2008)
Reverse Engineering (EVO 2008)Reverse Engineering (EVO 2008)
Reverse Engineering (EVO 2008)Tudor Girba
 
Apple iphone 6 and 6 plus front camera module teardown reverse costing report...
Apple iphone 6 and 6 plus front camera module teardown reverse costing report...Apple iphone 6 and 6 plus front camera module teardown reverse costing report...
Apple iphone 6 and 6 plus front camera module teardown reverse costing report...Yole Developpement
 
Mi 291 chapter 3 (reverse engineering)(1)
Mi 291 chapter 3 (reverse engineering)(1)Mi 291 chapter 3 (reverse engineering)(1)
Mi 291 chapter 3 (reverse engineering)(1)varun teja G.V.V
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineeringYuffie Valen
 
Introduction to Operations and Supply Chain Management
Introduction to Operations and Supply Chain ManagementIntroduction to Operations and Supply Chain Management
Introduction to Operations and Supply Chain ManagementDr. Prashant Kalaskar
 

Destacado (20)

iOS App Reverse Engineering
iOS App Reverse EngineeringiOS App Reverse Engineering
iOS App Reverse Engineering
 
Understanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolUnderstanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer tool
 
Elementary µprocessor tutorial
Elementary µprocessor tutorial Elementary µprocessor tutorial
Elementary µprocessor tutorial
 
iOS Application Penetation Test
iOS Application Penetation TestiOS Application Penetation Test
iOS Application Penetation Test
 
A New Approach to Social Mobility Models: Simulation as “Reverse Engineering”
A New Approach to Social Mobility Models: Simulation as “Reverse Engineering”A New Approach to Social Mobility Models: Simulation as “Reverse Engineering”
A New Approach to Social Mobility Models: Simulation as “Reverse Engineering”
 
Null Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat DasNull Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat Das
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
 
8 Bit A L U
8 Bit  A L U8 Bit  A L U
8 Bit A L U
 
8 bit single cycle processor
8 bit single cycle processor8 bit single cycle processor
8 bit single cycle processor
 
型態與運算子
型態與運算子型態與運算子
型態與運算子
 
Total Quality Management and i phone
Total Quality Management and i phoneTotal Quality Management and i phone
Total Quality Management and i phone
 
Innovation Secrets of Steve Jobs
Innovation Secrets of Steve JobsInnovation Secrets of Steve Jobs
Innovation Secrets of Steve Jobs
 
MakerBoard: MT7688 Emulator
MakerBoard: MT7688 EmulatorMakerBoard: MT7688 Emulator
MakerBoard: MT7688 Emulator
 
Introduction to Reverse Engineering
Introduction to Reverse EngineeringIntroduction to Reverse Engineering
Introduction to Reverse Engineering
 
Reverse Engineering (EVO 2008)
Reverse Engineering (EVO 2008)Reverse Engineering (EVO 2008)
Reverse Engineering (EVO 2008)
 
Apple iphone 6 and 6 plus front camera module teardown reverse costing report...
Apple iphone 6 and 6 plus front camera module teardown reverse costing report...Apple iphone 6 and 6 plus front camera module teardown reverse costing report...
Apple iphone 6 and 6 plus front camera module teardown reverse costing report...
 
Mi 291 chapter 3 (reverse engineering)(1)
Mi 291 chapter 3 (reverse engineering)(1)Mi 291 chapter 3 (reverse engineering)(1)
Mi 291 chapter 3 (reverse engineering)(1)
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineering
 
Introduction to Operations and Supply Chain Management
Introduction to Operations and Supply Chain ManagementIntroduction to Operations and Supply Chain Management
Introduction to Operations and Supply Chain Management
 
Ios vs android
Ios vs androidIos vs android
Ios vs android
 

Más de Source Conference

iBanking - a botnet on Android
iBanking - a botnet on AndroidiBanking - a botnet on Android
iBanking - a botnet on AndroidSource Conference
 
I want the next generation web here SPDY QUIC
I want the next generation web here SPDY QUICI want the next generation web here SPDY QUIC
I want the next generation web here SPDY QUICSource Conference
 
From DNA Sequence Variation to .NET Bits and Bobs
From DNA Sequence Variation to .NET Bits and BobsFrom DNA Sequence Variation to .NET Bits and Bobs
From DNA Sequence Variation to .NET Bits and BobsSource Conference
 
Extracting Forensic Information From Zeus Derivatives
Extracting Forensic Information From Zeus DerivativesExtracting Forensic Information From Zeus Derivatives
Extracting Forensic Information From Zeus DerivativesSource Conference
 
How to Like Social Media Network Security
How to Like Social Media Network SecurityHow to Like Social Media Network Security
How to Like Social Media Network SecuritySource Conference
 
Wfuzz para Penetration Testers
Wfuzz para Penetration TestersWfuzz para Penetration Testers
Wfuzz para Penetration TestersSource Conference
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSource Conference
 
Securty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSecurty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSource Conference
 
Men in the Server Meet the Man in the Browser
Men in the Server Meet the Man in the BrowserMen in the Server Meet the Man in the Browser
Men in the Server Meet the Man in the BrowserSource Conference
 
Advanced Data Exfiltration The Way Q Would Have Done It
Advanced Data Exfiltration The Way Q Would Have Done ItAdvanced Data Exfiltration The Way Q Would Have Done It
Advanced Data Exfiltration The Way Q Would Have Done ItSource Conference
 
Adapting To The Age Of Anonymous
Adapting To The Age Of AnonymousAdapting To The Age Of Anonymous
Adapting To The Age Of AnonymousSource Conference
 
Are Agile And Secure Development Mutually Exclusive?
Are Agile And Secure Development Mutually Exclusive?Are Agile And Secure Development Mutually Exclusive?
Are Agile And Secure Development Mutually Exclusive?Source Conference
 
Advanced (persistent) binary planting
Advanced (persistent) binary plantingAdvanced (persistent) binary planting
Advanced (persistent) binary plantingSource Conference
 
Legal/technical strategies addressing data risks as perimeter shifts to Cloud
Legal/technical strategies addressing data risks as perimeter shifts to CloudLegal/technical strategies addressing data risks as perimeter shifts to Cloud
Legal/technical strategies addressing data risks as perimeter shifts to CloudSource Conference
 
Who should the security team hire next?
Who should the security team hire next?Who should the security team hire next?
Who should the security team hire next?Source Conference
 
The Latest Developments in Computer Crime Law
The Latest Developments in Computer Crime LawThe Latest Developments in Computer Crime Law
The Latest Developments in Computer Crime LawSource Conference
 
How To: Find The Right Amount Of Security Spend
How To: Find The Right Amount Of Security SpendHow To: Find The Right Amount Of Security Spend
How To: Find The Right Amount Of Security SpendSource Conference
 

Más de Source Conference (20)

Million Browser Botnet
Million Browser BotnetMillion Browser Botnet
Million Browser Botnet
 
iBanking - a botnet on Android
iBanking - a botnet on AndroidiBanking - a botnet on Android
iBanking - a botnet on Android
 
I want the next generation web here SPDY QUIC
I want the next generation web here SPDY QUICI want the next generation web here SPDY QUIC
I want the next generation web here SPDY QUIC
 
From DNA Sequence Variation to .NET Bits and Bobs
From DNA Sequence Variation to .NET Bits and BobsFrom DNA Sequence Variation to .NET Bits and Bobs
From DNA Sequence Variation to .NET Bits and Bobs
 
Extracting Forensic Information From Zeus Derivatives
Extracting Forensic Information From Zeus DerivativesExtracting Forensic Information From Zeus Derivatives
Extracting Forensic Information From Zeus Derivatives
 
How to Like Social Media Network Security
How to Like Social Media Network SecurityHow to Like Social Media Network Security
How to Like Social Media Network Security
 
Wfuzz para Penetration Testers
Wfuzz para Penetration TestersWfuzz para Penetration Testers
Wfuzz para Penetration Testers
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on Rails
 
Securty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSecurty Testing For RESTful Applications
Securty Testing For RESTful Applications
 
Esteganografia
EsteganografiaEsteganografia
Esteganografia
 
Men in the Server Meet the Man in the Browser
Men in the Server Meet the Man in the BrowserMen in the Server Meet the Man in the Browser
Men in the Server Meet the Man in the Browser
 
Advanced Data Exfiltration The Way Q Would Have Done It
Advanced Data Exfiltration The Way Q Would Have Done ItAdvanced Data Exfiltration The Way Q Would Have Done It
Advanced Data Exfiltration The Way Q Would Have Done It
 
Adapting To The Age Of Anonymous
Adapting To The Age Of AnonymousAdapting To The Age Of Anonymous
Adapting To The Age Of Anonymous
 
Are Agile And Secure Development Mutually Exclusive?
Are Agile And Secure Development Mutually Exclusive?Are Agile And Secure Development Mutually Exclusive?
Are Agile And Secure Development Mutually Exclusive?
 
Advanced (persistent) binary planting
Advanced (persistent) binary plantingAdvanced (persistent) binary planting
Advanced (persistent) binary planting
 
Legal/technical strategies addressing data risks as perimeter shifts to Cloud
Legal/technical strategies addressing data risks as perimeter shifts to CloudLegal/technical strategies addressing data risks as perimeter shifts to Cloud
Legal/technical strategies addressing data risks as perimeter shifts to Cloud
 
Who should the security team hire next?
Who should the security team hire next?Who should the security team hire next?
Who should the security team hire next?
 
The Latest Developments in Computer Crime Law
The Latest Developments in Computer Crime LawThe Latest Developments in Computer Crime Law
The Latest Developments in Computer Crime Law
 
JSF Security
JSF SecurityJSF Security
JSF Security
 
How To: Find The Right Amount Of Security Spend
How To: Find The Right Amount Of Security SpendHow To: Find The Right Amount Of Security Spend
How To: Find The Right Amount Of Security Spend
 

Último

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Último (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Slicing into Apple: iPhone Reverse Engineering

  • 1. Slicing into Apple: iPhone Reverse Engineering Ryan PermehTrace TeamMcAfee
  • 2. Introduction Reverse engineering is taking a finished product and working back towards it’s constituent artifacts Gives us a peek behind the curtains of software Helpful for a variety of legitimate uses Better understanding how software works Recovering lost knowledge Interfacing to closed systems Finding security issues May be used illegally DCMA, software piracy, IP theft
  • 3. Skill Outlay Reverse engineering is a very technical subject Requires a deep understanding of several topics Hardware Architecture Software Architecture Operating system internals Assembly language Higher level languages Compiler, linker, and loader internals Debugging The better you understand how software is made, the easier it is to reverse engineer it.
  • 4. JailBreak your iPhone You really need to be jailbroken to have a platform to work from Jailbreak breaks signing requirements for applications Opens the phone up to a variety of new uses Run software from other sources Develop software without need for Apple Developer cost Allows you access to the internals of the iPhone Jailbreak for 4.3.3 and beyond This changes often, so do your research Jailbreaking happens via an exploit, leveraged to patch the kernel Install Cydia and use that to install your tools Gcc/gdb SSH access Class-dump Whatever else you want
  • 5. Tools used Reverse engineering leverages several tools to get a better understanding of the code Disassembler Parses finished code into assembly language Understand and visualize program flow Provides cross references, searching, and other useful tools We use IDA Pro 6.0 in these examples Debugger Offers a view of the program at runtime Helpful for dynamic analysis Can tie into other reverse engineering artifacts We use gdb in these examples
  • 6. Tools - iPhone Specific Clutch – http://clutch.hackulo.us Tool to crack software Handles decrypting binaries automatically class-dump - http://www.codethecode.com/projects/class-dump/ Dumps internal Objective-C objects Helps understand interfaces, objects in project Itunnel - http://www.cs.toronto.edu/~jingsu/itunnel/ Useful for connecting from a host machine directly to a jailbrokeniphone For windows and unix (windows – search for itunnel.exe) Used in lieu of a WIFI connection
  • 8. Hardware Processor: ARM Cortex A8 Developed by Apple and Samsung Latest devices use A4 designation 32 bit RISC architecture Uses thumb extensions Radio functionality 3g Wifi Bluetooth Nordic Semiconductor proprietary chipset Camera Touch Screen
  • 9. Operating System iOS(previously iPhone OS) is currently at 4.3.3 Darwin based kernel Unix platform Ships drivers for all hardware OS versions defines support for various features iOS 4 brought multitasking, Game Center iOS 3 brought video, improved GPS Security Mechanisms Code Signing Sandboxing
  • 10. Programming on the iPhone Objective-C A superset of the C language Uses an Object oriented model Uses messages instead of calls Uses late runtime binding of objects Cocoa Appkit Graphics that fit UI guidelines FoundationKit Containers Value manipulation
  • 11. iPhone Binary Format Uses MACH-O format Comprised of a standard header a series of load commands a series of segments Sections within the segments The process of loading is Loader recognizes header Processes each load command Expands each segment Maps each section to memory Universal Binaries pair multiple platforms in one package iPhone binaries often have both ARM 6 and ARM 7
  • 12. Examining a Binary Key Steps to Disassemble an iPhone Binary Get the Binary Put it on the phone Decrypt the segments Transfer it off the phone Load it in your Disassembler PROFIT!
  • 13. Getting the Binary You can get the binary in a number of ways Download via iTunes Use iPhone Store app on device iPhone Backup Find third party place (be careful) Binary locations Itunes: My MusicTunesTunes Mediaobile Applications On Phone: /Applications /private/var/mobile/Applications
  • 14. Getting Files On and Off the Phone If you downloaded from the appstore, you can skip this step Itunes Do a simple sync Third party (and getting apps off the phone) Use SCP or iPhone Browser Clutch puts binaries here /var/root/Documents/Cracked/
  • 16. Installing From the Appstore Demo 2
  • 17. Decrypt the segments Appstore iPhone binaries are encrypted and signed Tied to the phone it is to be installed on Code segments are encrypted, so look like gibberish We need a way to decrypt The hard way Calculate encryption offsets Run program with debugger Dump unecrypted memory segment Patch binary with unecrypted segment Update references to crypto The easy way Clutch
  • 19. Load It into the Disassembler Unpack the clutch output ipa Ipa files are just zip files, you can rename them to .zip Should have a directory structure /some GUID /App files App is probably the largest file, has no extension Explore other files Use plist editor to examine .plist files DB/data files often SQLLite Load File into the Disassembler
  • 21. iPhone Binary Internals Uses Objective-C and Cocoa Calls are non-obvious Use python tool to fixup calls Reanalyze with new markup Code is ARM assembler Areas to look at Strings Areas of import Network calls Crypto Calls to key iPhone areas (mail, sms, calendar, etc) Key functionality per app Graphs help understand flow