> For the complete documentation index, see [llms.txt](https://falah.gitbook.io/byethost-support/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://falah.gitbook.io/byethost-support/obsidian-mobile-security-research.md).

# Obsidian — Mobile Security Research

AI-powered mobile application security research platform for iOS & Android. Built with Qt6 C++ — runs on macOS and Linux.

***

Obsidian gives mobile security researchers one desktop workspace for static and dynamic analysis.

It runs on macOS and Linux. It supports iOS and Android research workflows.

{% hint style="warning" %}
Use Obsidian only for authorized security testing and research.
{% endhint %}

### Purchase

Buy Obsidian through the AdaH app.

[Purchase Obsidian on AdaH](https://adah.fun/tool/106)

### Features

#### IPA analysis

* Drag and drop `.ipa` files for automatic analysis
* Browse app contents in a structured file tree
* Preview images, plist files, and raw binary data
* Extract Objective-C and Swift classes from Mach-O binaries
* Demangle Swift symbols with class, struct, enum, and protocol labels
* Analyze app structure with AI, including modules and flow relationships
* Generate Frida scripts from extracted classes
* Search classes with natural language prompts
* Decrypt protected apps over SSH with `frida-ios-dump`

#### Static analysis

* Load Mach-O binaries directly or from an IPA
* Filter functions by name and address
* Review syntax-highlighted ARM64 assembly
* Extract classes with `nm`, `otool -oV`, and `strings`
* Inspect methods, ivars, properties, and protocols
* Trace call chains with cross-references
* Open Ghidra decompiler output inside the workflow
* Ask the AI assistant for code explanations and security analysis
* Export findings as PDF

#### Frida instrumentation

* Start with built-in script templates:
  * ObjC Class Dump
  * ObjC Method Tracer
  * Keychain Dump
  * Network Intercept
  * SSL Pinning Bypass
  * Login Interceptor
* Select iOS USB or local targets
* Choose spawn or attach mode
* Edit JavaScript with syntax highlighting
* Save and reload scripts

#### Objection runtime exploration

* Run 18 preset quick commands, including:
  * Memory enumeration
  * Cookie and keychain dumping
  * Jailbreak detection and SSL pinning bypass
  * Pasteboard monitoring
  * Class and method search
  * UI dump
* Run commands with a double-click
* Get troubleshooting suggestions when commands fail

#### Device management

* Detect connected iOS devices automatically
* View device version and model
* Search installed apps
* Pull IPAs over USB
* Stream live system logs

#### SSH client

* Connect with password or private key authentication
* Work in an interactive terminal
* Clean ANSI and VT100 terminal output

#### AI tool generator

* Generate security tools in Python or Java
* Start from common tool types:
  * Login Bypass
  * Network Interceptor
  * SSL Pinning Bypass
  * Cookie or Token Dumper
  * Class Inspector
  * Custom Tool
* Detect iOS or Android targets from class names
* Copy, save, and run generated code directly
* Reuse classes discovered during IPA or Ghidra analysis

#### AI engine

* Use Claude or OpenAI models
* Generate context-aware Frida scripts
* Analyze app structure and likely weak points
* Search classes semantically
* Chat about binaries and functions in context
* Stream responses in real time

#### Interface

* See connection badges when devices are available
* Monitor device count from the status bar
* Drag and drop files across multiple tabs

***

### Installation

Install the required dependencies first. Ghidra and the Swift toolchain stay optional.

#### macOS

**Requirements**

| Tool             | Description                   | Install command                                                                                   |
| ---------------- | ----------------------------- | ------------------------------------------------------------------------------------------------- |
| Homebrew         | Package manager               | `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` |
| Python 3         | Runtime for supporting tools  | `brew install python`                                                                             |
| libimobiledevice | iOS USB tooling               | `brew install libimobiledevice`                                                                   |
| ideviceinstaller | iOS app management            | `brew install ideviceinstaller`                                                                   |
| sshpass          | Non-interactive SSH           | `brew install hudochenkov/sshpass/sshpass`                                                        |
| class-dump       | Objective-C header extraction | `brew install class-dump`                                                                         |
| Frida            | Dynamic instrumentation       | `pip3 install frida-tools`                                                                        |
| Objection        | Runtime exploration           | `pip3 install objection`                                                                          |
| Ghidra           | Advanced decompiler, optional | [ghidra-sre.org](https://ghidra-sre.org)                                                          |

**Install**

```bash
# 1. Install dependencies
brew install python libimobiledevice ideviceinstaller class-dump
brew install hudochenkov/sshpass/sshpass
pip3 install frida-tools objection

# 2. Download Obsidian-macOS.dmg

# 3. Open the DMG and drag Obsidian to Applications

# 4. Launch the app
# If macOS blocks the first launch:
# System Settings → Privacy & Security → Open Anyway

# 5. Open Settings in the app
# - Add your Claude or OpenAI API key
# - Add SSH credentials if you use a jailbroken device
```

#### Linux

Supported distributions include Ubuntu, Debian, Fedora, and Arch.

**Ubuntu or Debian**

```bash
# Build tools and Qt6
sudo apt update
sudo apt install build-essential cmake qt6-base-dev qt6-svg-dev libgl1-mesa-dev
sudo apt install libimobiledevice-utils ideviceinstaller
# Analysis tools
sudo apt install llvm python3 python3-pip adb sshpass
pip3 install frida-tools 
pip3 install objection
sudo apt install sshpass
sudo apt install adb 
# Optional: Swift toolchain for Swift demangling
# Download from https://swift.org/download/
```

**Fedora**

```bash
sudo dnf install gcc-c++ cmake qt6-qtbase-devel qt6-qtsvg-devel mesa-libGL-devel
sudo dnf install llvm python3 python3-pip android-tools sshpass
pip3 install frida-tools 
pip3 install objection
sudo apt install sshpass
sudo apt install adb 
```

**Arch Linux**

```bash
sudo pacman -S base-devel cmake qt6-base qt6-svg
sudo pacman -S llvm python3 python-pip android-tools sshpass
sudo apt install libimobiledevice-utils ideviceinstaller
sudo apt install sshpass
sudo apt install adb
pip3 install frida-tools
pip3 install objection
```

**Tool mapping**

| macOS tool             | Linux alternative                       | Use case                        |
| ---------------------- | --------------------------------------- | ------------------------------- |
| `otool -oV`            | `llvm-objdump --macho --objc-meta-data` | Objective-C metadata extraction |
| `nm -arch arm64`       | `llvm-nm`                               | Symbol table inspection         |
| `plutil -p`            | `python3 + plistlib`                    | Plist parsing                   |
| `xcrun swift-demangle` | `swift demangle`                        | Swift symbol demangling         |
| `xcrun llvm-objdump`   | `llvm-objdump`                          | ARM64 disassembly               |
| `class-dump`           | Not available                           | Objective-C header extraction   |
| `ideviceinstaller`     | `ideviceinstaller`                      | iOS app management              |
| `libimobiledevice`     | `libimobiledevice`                      | iOS device communication        |

> Obsidian detects the host OS and selects the right tooling automatically.

***

### First-time setup

1. Open **Settings**.
2. Add your API key.
   * Choose Claude or OpenAI.
   * Paste the API key.
   * Select the model.
   * Click **Save**.
3. Add SSH credentials if you use a jailbroken device.
   * Host: device address, such as `localhost` with `iproxy`
   * Port: `2222` for `iproxy`, or `22` for direct access
   * User: `root`
   * Password: `alpine` by default
4. Verify dependencies.
   * Click **Check All**.
   * Missing tools appear with `❌` and an install action.

***

### <mark style="color:$tint;">Platform support</mark>

| Feature           |   macOS   |             Linux            |
| ----------------- | :-------: | :--------------------------: |
| IPA Analysis      |     ✓     |               ✓              |
| Class Extraction  |     ✓     |               ✓              |
| Swift Demangle    |     ✓     | ✓ (requires Swift toolchain) |
| Ghidra Analysis   |     ✓     |               ✓              |
| ARM64 Disassembly |     ✓     |               ✓              |
| class-dump        |     ✓     |        x (macOS only)        |
| Frida             |     ✓     |               ✓              |
| Objection         |     ✓     |               ✓              |
| iOS USB Devices   |     ✓     |               ✓              |
| SSH               |     ✓     |               ✓              |
| ADB (Android)     |     ✓     |               ✓              |
| AI Engine         |     ✓     |               ✓              |
| Tool Generator    |     ✓     |               ✓              |
| Plist Reading     | ✓(plutil) |          ✓ (python3)         |

***

### <mark style="color:$danger;">Security</mark>

API keys stay on the local machine.

* macOS: `~/Library/Preferences/com.SecTools.MobileSecResearch.plist`
* Linux: `~/.config/SecTools/MobileSecResearch.conf`

No API keys or sensitive data ship with the application.

Each user adds their own credentials in **Settings**.
