All Projects → cocoahuke → Ioskextdump

cocoahuke / Ioskextdump

Licence: mit
Dump Kext information from iOS kernel cache. Applicable to the kernel which dump from memory

Projects that are alternatives of or similar to Ioskextdump

Detekt
Static code analysis for Kotlin
Stars: ✭ 4,169 (+5111.25%)
Mutual labels:  analysis, static
gochk
Static Dependency Analysis Tool for Go Files
Stars: ✭ 68 (-15%)
Mutual labels:  analysis, static
Security Code Scan
Vulnerability Patterns Detector for C# and VB.NET
Stars: ✭ 550 (+587.5%)
Mutual labels:  analysis, static
vulnscan
A static binary vulnerability scanner
Stars: ✭ 47 (-41.25%)
Mutual labels:  analysis, static
Manalyze
A static analyzer for PE executables.
Stars: ✭ 701 (+776.25%)
Mutual labels:  analysis, static
Blocksci
A high-performance tool for blockchain science and exploration
Stars: ✭ 1,127 (+1308.75%)
Mutual labels:  analysis
Garbagecat
Parses Java garbage collection logging and analyzes collectors, triggers, JVM version, JVM options, and OS information and reports error/warn/info level analysis and recommendations to support JVM tuning and troubleshooting for OpenJDK and Sun/Oracle JDK.
Stars: ✭ 73 (-8.75%)
Mutual labels:  analysis
Data
APTnotes data
Stars: ✭ 1,126 (+1307.5%)
Mutual labels:  analysis
Osint Tools
OSINT tools catalog
Stars: ✭ 62 (-22.5%)
Mutual labels:  analysis
Macho Browser
Mac browser for Mach-O binaries (macOS, iOS, watchOS, and tvOS)
Stars: ✭ 77 (-3.75%)
Mutual labels:  dump
Elasticsearch Analysis Hanlp
HanLP Analysis for Elasticsearch
Stars: ✭ 77 (-3.75%)
Mutual labels:  analysis
Enex Dump
Dump the content of .enex files, preserving attachements, some metadata and optionally converting notes to Markdown.
Stars: ✭ 73 (-8.75%)
Mutual labels:  dump
Kube Score
Kubernetes object analysis with recommendations for improved reliability and security
Stars: ✭ 1,128 (+1310%)
Mutual labels:  analysis
Nuxt Memwatch
Quickly watch real-time memory stats of your nuxt app
Stars: ✭ 76 (-5%)
Mutual labels:  dump
Splunk Apps
Palo Alto Networks App for Splunk leverages the data visibility provided by Palo Alto Networks next-generation firewalls and endpoint security with Splunk's extensive investigation and visualization capabilities to deliver an advanced security reporting and analysis tool.
Stars: ✭ 63 (-21.25%)
Mutual labels:  analysis
Pyscenedetect
🎥 Python and OpenCV-based scene cut/transition detection program & library.
Stars: ✭ 1,203 (+1403.75%)
Mutual labels:  analysis
Terpene Profile Parser For Cannabis Strains
Parser and database to index the terpene profile of different strains of Cannabis from online databases
Stars: ✭ 63 (-21.25%)
Mutual labels:  analysis
Mirdeep2
Discovering known and novel miRNAs from small RNA sequencing data
Stars: ✭ 70 (-12.5%)
Mutual labels:  analysis
Cat
Plain C library for parsing AT commands for use in host devices.
Stars: ✭ 77 (-3.75%)
Mutual labels:  static
Andes
Python toolbox / library for power system transient dynamics simulation with symbolic modeling and numerical analysis 🔥
Stars: ✭ 68 (-15%)
Mutual labels:  analysis

ioskextdump

Dump Kext information from iOS kernel cache. Applicable to the kernel which dump from memory. The disassembly framework used is Capstone

Contact build license paypal

32bit version of iOS:

32bit(arm): ioskextdump_32

64bit version of iOS10:

64bit(arm): ioskextdump_ios10

Dump Kext info For Mac:

64bit(x86_64): mackextdump

Analyze kernel extension information from iOS kernel cache with arm instructions and extract information, information including the basic IOKit classes construction parameters, inheritance relationship of the IOKit class and subclass methods override.

I finished this dirty project a year ago. Have been tested at iOS8& (64bit iOS9) kernel cache, Does not support iOS10, iOS10 Kext format has some changing, For example, sections of kernel cache is changed __DATA -> __DATA_CONST. I haven't studied the kernel of iOS10 yet because I spend time to learn something else

The project will begin from __DATA.__ mod_init_func as start point. Get all basic IOKit class construction functions first, and then export Kexts from __PRELINK_TEXT.__text one by one. According to basic IOKit classes’s VM address get a different inheritance relationship of IOKit classes of Kexts so this program could analyze different table and compare to its superclass, The result obtained is determine which functions this IOKit class override. So it needs to execute twice to get the inheritance order of all classes, first time was record information

And also will determine structure of IOExternalMethodDispatch if its a Userclient class, but many classes implements their own externalMethod, didn’t use any IOExternalMethodDispatch, IOExternalMethod or IOExternalTrap So still need lots of manual analysis to find interface of Kext

For kernel which dump from memory

Use iosdumpkernelfix to correct the Mach-O header before analyze it, Otherwise The analysis results are not complete list of Kexts

How to use

Download

git clone https://github.com/cocoahuke/ioskextdump.git && cd ioskextdump

Compile and install to /usr/local/bin/

make
make install

Usage

Usage: ioskextdump [-e] [-p <access directory path>] <kernelcache>

-e Specify the export mode
-p Specifiy a folder path that contains the data file or export data file to there


Example to use I left a sample iOS8.3 kernelcache in the test directory, try to run this command

ioskextdump -e -p test test/iPhone6p_8.3_kernel.arm

You will see all Inheritance relationship is empty and allClass_relation.plist saved success should be at end of program print

Inheritance relationship:

Then try same command removes -e

ioskextdump -p test test/iPhone6p_8.3_kernel.arm

ioskextdump will print contain lists of inheritance and override functions:

******** 3:com.apple.iokit.IOAcceleratorFamily2 *******
(0xffffff801ce66998)->OSMetaClass:OSMetaClass call 4 args list
x0:0xffffff801ce93588
x1:IOAccelCLContext2
x2:0xffffff801ce935d8
x3:0xfc8
vtable start from addr 0xffffff801ce8bb70
Inheritance relationship: IOAccelContext2->IOAccelSubmitter2->IOUserClient->IOService->IORegistryEntry->OSObject

override: IOUserClient_IOUserClient loc:0xffffff801ce8bb70 imp:0xffffff801ce66818
override: IOUserClient_~IOUserClient loc:0xffffff801ce8bb78 imp:0xffffff801ce6681c
override: IOUserClient_getMetaClass loc:0xffffff801ce8bba8 imp:0xffffff801ce66834
override: IOUserClient_free loc:0xffffff801ce8bbd8 imp:0xffffff801ce68618
...

Any question just Email me

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].