Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Glass — Glass - 高速かつ無料のIDA Pro代替品 | Kitploit
ツール/GitHubGitHub/azw413/glass
Androidセキュリティ組み込みシステムセキュリティ静的分析iOSセキュリティリバースエンジニアリングスクリプトと自動化デバッガモバイルセキュリティバイナリ解析ファームウェア解析
GitHubazw413/glass

Glass

191122ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Glass - 高速かつ無料のIDA Pro代替品

リポジトリを見る

Glass

透明で滑らか、という意味です

高速でネイティブな、モバイルアプリ最優先のインタラクティブディスアセンブラ。Android / iOS リバースエンジニアリングのワークフローにおける IDA Pro の精神的な後継であり、以下を中心に構築されています:

  • smali — APK / DEX / smali 処理用
  • armv8-encode — AArch64 および ARMv7 (A32 / Thumb) 用 — ネイティブ .so、iOS Mach-O
  • gpui (Zed) — GPU アクセラレーションによるネイティブ UI 用
  • redb — コンテンツアドレス型永続化用
  • 内蔵 MCP サーバーにより、MCP 対応の任意のホスト (Claude Desktop、Cursor、Zed) が Glass を直接操作可能
  • rquickjs — スクリプト可能なプラグイン用 (計画中)

ライセンス: GPL-3.0-only (smali から継承)。

なぜ?

私たちは皆 IDA Pro を使ったことがあります。リバースエンジニアリングの業界標準であり、長年にわたるプラグインの蓄積がありますが、遅く、高価で、時代遅れです。Glass は 100% Rust ネイティブで、流れるような操作を実現する GPU アクセラレーション UI を備えています。また 100% 無料のオープンソースです — ぜひコントリビュートしてください。

特徴

  • バターのように滑らかな 120fps GPU アクセラレーション描画
  • 電光石火の解析速度: ほとんどの大規模バイナリで 1〜2 秒 (IDA Pro では数分かかるのに対し)
  • AArch64 および ARMv7 (ARM モード + Thumb) の逆アセンブル — iOS arm64 / arm64e と、Android で一般的な両 ABI をカバー
  • 完全にリンクされ注釈付けされた逆アセンブル一覧。制御フローライン、コメント内のデータリテラル、他の関数へのクリック可能なリンク付き。すべて見やすく色分けされています
  • 基本ブロックと他の関数へのクリック可能なリンクを表示する制御フローグラフ
  • DEX、コード、データセクションにわたるシンボルまたは文字列リテラルのプロジェクト全体検索
  • セクションデータ付きネイティブバイナリのレイアウト概要
  • 呼び出し元、データへの参照の Xref 検索
  • バンドル内のすべてのネイティブアーティファクトにわたるバイナリ・命令検索 (ライブラリの arm64-v8a と armeabi-v7a の両コピーが 1 回のクエリで検索されます)。マスキング + ギャップ対応のバイトパターン文法、AArch64 および ARMv7 用の型付きアセンブリ文法、ISA 対応のオートコンプリートドロップダウン付き
  • 任意の行 (コードまたはデータ) に色やコメントで注釈を付け、後で簡単に再発見できるようにします
  • 命令とデータのその場編集 (アイテムをダブルクリック)。Smali クラスエディタ + AArch64 / ARMv7 命令エディタ。リストの任意の行を右クリックすると、同じアドレスのバイトレベル 16 進ビューがエスケープハッチとして開きます
  • MCP サーバーはすべての解析操作をツールとして、MCP 対応の任意のホスト — Claude Desktop、Cursor、Zed に公開します
  • Glass 用のテーマに加え、ワークスペースごとに選択可能な背景色

スクリーンショット

メインビューのウォークスルー — サムネイルをクリックするとフルサイズで表示されます。

スクリプティング

Glass が GUI で行うすべての解析は、構造化 JSON を出力する CLI 動詞としても公開されています。同じ glass バイナリが自動化のエントリポイントです — サブコマンドを選択するだけで、ワンショットでスクリプト可能な結果が得られ、jq パイプラインや CI に最適です。```sh

What classes ship in this APK?

glass classes ./app.apk --package com.example. --text

Who calls glass::main, by address?

glass callers ./libfoo.so --artifact libfoo.so --symbol "glass::main"

Every onCreate across DEX, machine-readable:

glass search ./app.apk onCreate | jq '.data.hits[] | select(.kind=="method")'

All ObjC + Swift types in an iOS bundle (filter by kind if you like):

glass types ./app.ipa --kind swift-class --text

Drill into one type — methods, ivars, properties for ObjC;

fields + vtable for Swift:

glass type ./app.ipa --artifact app --name blackjack.ContentView

root@kitploit:~
人間が読める形式にするには `--text` を渡し、JSON の場合は省略します。

完全なリファレンス: **[docs/cli-api.md](https://github.com/azw413/glass/blob/HEAD/docs/cli-api.md)**。

つまり、一般的な操作をスクリプト化して自動化できます。 


## スキルと MCP

CLI のすべての動詞は、組み込みの MCP(Model Context Protocol)サーバーを通じてツールとしても公開されているため、MCP 対応のホスト — Claude Desktop、Cursor、Zed、独自のクライアント — は Glass を直接操作して、リバースエンジニアリングのタスクを支援できます。```sh
# Print the machine-readable skill catalog (one JSON object listing
# every verb with its schema and an example invocation).
glass skills

# Run as an MCP stdio server. Plug into any MCP host's tool list.
glass mcp

Claude Desktop に登録するには、Glass を ~/Library/Application Support/Claude/claude_desktop_config.json に追加します:```json { "mcpServers": { "glass": { "command": "/usr/local/bin/glass", "args": ["mcp"] } } }

root@kitploit:~
The model can then call `inspect`, `symbols`, `disasm`, `cfg-of`, `dex-callers`, `search` and every other verb on any bundle you point it at. Tool results come back as the same JSON envelope you'd get from the CLI.

モデルは、指定した任意のバンドルに対して `inspect`、`symbols`、`disasm`、`cfg-of`、`dex-callers`、`search` など、すべての動詞を呼び出すことができます。ツールの結果は、CLI から得られるものと同じ JSON エンベロープで返されます。


## 検索

3つの補完的なエンジンはすべて、GUI の同じ ⌘F パレットから、また CLI / MCP 動詞として利用できます。

### 全文検索

バンドル全体にわたるファジーマッチで、ネイティブシンボル、DEX クラス / メソッド / フィールド、コードおよびデータセクション内の文字列リテラルを対象とします。入力に応じてライブフィルタリングされ、結果は適切なビューに振り分けられます(ネイティブアドレスにはリスト表示、DEX ターゲットには smali ビューア、データヒットには16進ビュー)。インデックスはロード後にバックグラウンドスレッドで構築され — 処理中は進行状況チップが表示されます。```sh
glass search ./app.apk onCreate                 # all things named like "onCreate"
glass search ./libfoo.so init --limit 20

CLI リファレンス: search 動詞(docs/cli-api.md 内).

バイナリ検索

バイトレベルのパターンエンジン。各アトムは、2文字の16進マスク(c0、e?、?f、??)またはギャップ(* = 0..=32 バイト、*(min..max) は明示的な範囲)です。マッチはセクションをまたぎません。GUIパレットでは、⌘2 でバイナリモードに切り替わり、Code only チェックボックス(デフォルトでオン)がスキャンをテキストセクションに制限するため、命令の形状を探すときにデータヒットに埋もれることはありません。```sh

returning-true stub finder — mov w0, #1 ; ret

glass bin-search ./libfoo.so --artifact libfoo.so --pattern '20 00 80 52 c0 03 5f d6'

any ADRP+ADD pair with no intervening bytes

glass bin-search ./libfoo.so --artifact libfoo.so --pattern '?? ?? ?? 9? ?? ?? 4? 91'

raw data: find embedded magic

glass bin-search ./libfoo.so --artifact libfoo.so --pattern 'de ad be ef'

root@kitploit:~
完全な文法と動作例: [`docs/BinSearch.md`](https://github.com/azw413/glass/blob/HEAD/docs/BinSearch.md)。

### 命令検索

アセンブリを記述すると、Glass がバイト列にコンパイルします。`;` 区切りのシーケンスは、[armv8-encode](https://github.com/azw413/armv8-encode) によってエンコードされます — **AArch64**(`mov w0, #1`、`adrp x1, *`)および **ARMv7** の両モード(Thumb の `mov r1, r7` / `bxeq lr` / `push {r4-r7, lr}` と A32)。ワイルドカードは、バイトエンジンが処理を引き継ぐ前に、オペランドのビットマスクに変換されます。スキャンはグローバルです — バンドル内のすべてのネイティブアーティファクトが、対応する ISA のアトムを取得します(`arm64-v8a` と `armeabi-v7a` の両方のライブラリを持つ Android アプリは、単一のクエリで検索されます)。

GUI の Binary モードでは、⌘B で **Bytes** と **Asm** の文法を切り替えられます。ISA を認識するオートコンプリートドロップダウンには、入力した内容に一致するバリアントが表示されます — `r1` は AArch64 の候補を除外し、`w0` は ARMv7 の候補を除外します。

ワイルドカード:

| トークン | 意味 |
|---|---|
| `*` | 任意のオペランド(種類は選択されたオペコードから推測される) |
| `#*` | 任意の即値(オペコードピッカーへのヒント) |
| `x`, `w` | 任意の AArch64 X クラスまたは W クラスのレジスタ |
| `r` | 任意の ARMv7 GPR(`r0..r15`、`sp`、`lr`、`pc`) |
| `<*>`, `<X>`, `<W>`, `<R>`, `<imm>` | 括弧付きの等価表現。他の構文内にネストする場合に便利(`[x, #*]`、`[r, #*]`) |```sh
# AArch64 — every `mov w0, #N` (any N)
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'mov w0, #*'

# AArch64 — any ADRP into x1 followed immediately by ADD into the same reg
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'adrp x1, * ; add x1, x1, #*'

# ARMv7 (Thumb) — `mov r1, r*` followed by a return
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'mov r1, r* ; bx lr'

# ARMv7 (any cond) — conditional bx in literal-pool callers
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'bxeq lr'

# every `ret x30` — concrete, no wildcards
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'ret'

レスポンスは、コンパイルされたマスクを示す bytes_hex を保持します(例: adrp x1, * の場合は 01/1f ?? ?? 90/9f)。これにより、どのビットが固定され、どのビットがワイルドカードかを正確に確認できます。キャプチャ(パターン内の後続の同じオペランドを相互参照する <name:kind>)は設計済みですが、まだ実装されていません。

完全な設計とフェーズ分け: docs/InsnPattern.md。CLI/MCP リファレンス: docs/cli-api.md 内の insn-search。

現在のステータス

Glass は現在、AArch64 および 32 ビット ARMv7(armeabi-v7a ライブラリ、A32 + Thumb)をターゲットとする Android(APK / DEX / ネイティブ .so)および iOS(IPA / Mach-O)アプリのリバースエンジニアリングに利用できます。

動作するもの

ファイル読み込み

  • Android バンドル(.apk, .aab)、iOS バンドル(.ipa)、または任意のスタンドアロン ELF / Mach-O バイナリ(.so, .dylib、生の実行ファイル)を直接開くことができます — Glass がフォーマットを自動検出します。
  • Fat / ユニバーサル Mach-O は透過的に処理されます: arm64e が優先され、プレーンな arm64 がフォールバックです。バンドルでもスタンドアロンファイルでも動作します(例: glass gui /usr/lib/dyld)。
  • ローダーパイプラインが進捗を報告します(アーカイブの読み取り → DEX の解析 / ネイティブの逆アセンブル → シンボルの構築)。
  • アーティファクトごとのコンテンツアドレス ID(blake3、大きなライブラリでは rayon 並列処理)。アノテーションはコンテナではなくアーティファクトに追従します — 2 つの APK に同梱されている同じ libfoo.so(または 2 つの IPA に含まれる同じ libswiftCore.dylib)は解析状態を共有します。
  • AndroidManifest ビューア(バイナリ XML を smali 経由でデコード)。
  • iOS バンドル用の Info.plist ビューア — バンドル ID、実行可能ファイル名、バージョン、最小 OS、および plist の残りが色分けされた XML として表示されます。

iOS — IPA / Mach-O

  • IPA を展開し、Payload/*.app/ を見つけ、Info.plist を解析し、内部の任意の fat バイナリから arm64 / arm64e スライスを選択します。
  • メインの実行可能ファイルとすべての Frameworks/*.framework + *.dylib がそれぞれ独立したネイティブアーティファクトとして読み込まれ、Android の .so ファイルと同じ Overview + セクションごとの逆アセンブリビューが使用されます。
  • __objc_classlist から取得した Objective-C クラスブラウザ — クラス、カテゴリ、メソッド、ivar、プロパティ — デマングルされた名前(レガシーな _TtC... Swift マングリングを含む)と、メソッドアドレスからリスティングへのクリック可能なジャンプを備えています。
  • __swift5_types から取得した Swift タイプブラウザ — クラス、構造体、列挙型とそのフィールド、および(クラスの場合)vtable が表示され、こちらもリスティングにクリック可能です。
  • Objective-C メソッドシンボルと Swift タイプシンボルでシンボルマップが拡張され、以前は生のアドレスにフォールバックしていたリスティング行が、解決された名前を表示するようになりました。

Android — APK / DEX / ネイティブ

  • APK 内のすべての DEX ファイルにわたるクラスツリー。
  • 構文認識トークン化(ディレクティブ、型、メソッド名、文字列リテラルなど)を備えたクラスごとの Smali リスティング。
  • メソッドの相互参照が正しいクラス + 行に解決されます。
  • lib/<abi>/ 配下のネイティブ .so ファイルが ABI ごとに読み込まれます。AArch64(arm64-v8a)と ARMv7(armeabi-v7a)の両方に完全な逆アセンブリビューが提供されます。他の ABI(x86 / x86_64)は、デコーダが登場するまで hex ビューにルーティングされます。

編集

  • Smali クラスエディタ(クラスヘッダー / フィールド / メソッドをダブルクリックするとインラインエディタが開きます)。
  • AArch64 インプレース命令編集: 新しいアセンブリを入力すると、Glass がそれをバイトにエンコードし直します。ステージングされた変更は、新しい APK / IPA にエクスポートするまでリスティングに緑色の着色として表示されます。
  • ARMv7 インプレース編集: 同幅の置換、4 バイト → 2 バイトの縮小(Thumb-1 NOP で自動パディング)、および後続の NOP を消費する 2 バイト → 4 バイトの拡張を処理します。下流のコードをシフトさせる安全でない拡張は拒否します。
  • インラインエディタでの ISA 認識オートコンプリート — r1 と入力すると ARMv7 のバリアントのみが表示され、w0 と入力すると AArch64 のみが表示されます。
  • 任意のリスティング行を右クリック → Open hex view here で、型付きアセンブリエディタでは表現できない場合に、同じアドレスのバイトレベルの hex エディタに移動できます。

AArch64 ネイティブ(ELF + thin Mach-O)

  • 仮想化レンダリングによるリニアスイープ逆アセンブル — 大きなライブラリも数分ではなく数秒で開きます。
  • ELF symtab、dynsym、DWARF、.eh_frame FDE、および合成された <name>@plt エントリからマージされたシンボルマップ。C++/Rust/Swift のデマングリングは symbolic-demangle 経由。
  • ブランチオペランドはクリック可能なシンボル参照としてレンダリングされます。adrp + add/ldr のペアはデータターゲットに解決され、インラインのコメントとして表示される文字列リテラルも含まれます。
  • セクションごとのビュー(コードセクションは逆アセンブリ、データセクションは hex ビュー)。

ARMv7 ネイティブ(ELF)

  • シンボルエントリポイントからの再帰下降逆アセンブルにより、リテラルプール、ジャンプテーブル、インラインデータが命令として誤デコードされません。低ビットマーカーによるシンボルごとのモード(ARM vs Thumb)が尊重されます。
  • 可変幅 Thumb レンダリング: 16 ビット Thumb-1 行は 2 バイトを表示し(幻の 00 00 パディングなし)、32 ビット Thumb-2 と A32 は 4 バイトを表示します。
  • シンボルマップ: ELF symtab、DWARF、.eh_frame、および合成された <name>@plt エントリ(12 バイトスタブ)。
  • movw + movt 融合: movw R, #lo16 ; movt R, #hi16 が命令ペア間で検出され、解決された 32 ビット定数には movt 行に ; "..." の rodata 文字列コメントが付けられます。
  • Thumb ldr Rt, [pc, #imm] リテラルプールロードは、AArch64 の ADRP+ADD パスと同じ種類のインライン文字列コメントのために、rodata への 1 レベルの逆参照を行います。
  • 条件付きおよび無条件ブランチ上の制御フロー矢印ガター(AArch64 と同じレーン割り当て)。

UI

  • タブ付き右ペイン、オーバーフローセーフなドロップダウン、閉じるボタン、クリックでアクティブ化。
  • リスティング、hex、マニフェストビューに水平 + 垂直スクロールバー。
  • ファジーフィルター付きの Cmd-F シンボルパレット。複数トークンのクエリは順序どおりに AND 一致します(change me は changeMessage と change_me_count を見つけますが、dispatchMenuVisibilityChanged は見つけません)。
  • バイナリ / 命令パレット(⌘2 で切り替え)は、すべてのネイティブアーティファクトをグローバルにスキャンします — arm64-v8a + armeabi-v7a を含む Android アプリでは、一致ごとにアーティファクト + セクションがラベル付けされた統合結果が得られます。
  • すべてのビューで相互参照を右クリック: リスティング、hex、CFG では References to address / Callers of function / Open hex view here、smali では Callers of method / References to field。結果はスコープチップ付きでパレットに表示されます。Esc でスコープがクリアされ、バンドル全体の検索に戻ります。インデックスは読み込み後にバックグラウンドスレッドで構築され、進行中は進捗チップが表示されます。
  • テーマ(View → Theme)、ウィンドウごとに選択可能な背景色調。
  • Cmd-O で開く、Cmd-N で新しいウィンドウ、Cmd-W でウィンドウを閉じる、Cmd-⇧W でファイルを閉じる(ウィンドウを起動時の空の状態に戻す)— Linux / Windows では同じショートカットが Cmd の代わりに Ctrl を使用します。File → Open Recent(最後の 10 バンドル、パスで重複排除)と View → Theme。macOS ではこれらはネイティブメニューバーにあります。Linux / Windows(gpui がネイティブメニューを描画しない場合)では、Glass がウィンドウヘッダーに独自の Glass / File / View メニューバーをレンダリングします。
  • ウィンドウ境界 + 開いているタブ + ツリー展開状態がバンドルごとに redb に永続化され、再起動すると中断した場所から再開されます。

不足しているもの

  • x86 / x86_64 逆アセンブル(これらのコードセクションは現在 hex ビューにルーティングされます)。
  • 隣接する NOP なしで 拡張する必要がある ARMv7 インプレース編集 — 現在は明確なエラーで拒否されます。サポートするにはセクションレベルの再レイアウトとブランチターゲットの再バインドが必要になります。
  • iOS のエンタイトルメントと embedded.mobileprovision の解析。
  • JNI シグネチャを介した DEX ↔ ネイティブの相互参照。
  • QuickJS スクリプティングホスト。
  • スクロールバーのドラッグスクロール(現在は視覚のみ — トラックパッド / ホイールを使用してください)。
  • マニフェスト内のリソース ID デコード(resources.arsc の解析が必要になります)。
  • ARMv7 型付きアセンブリエディタ: 一般的な形式では動作します。シフトオペランド(r0, lsl #2)やプリ / ポストインデックスメモリ([rN, #imm]!, [rN], #imm)は解析されますが、具体的な場合のみです — ブラケット内のワイルドカードはありません。

ビルド

Glass は macOS 13+(プライマリターゲット、Metal 経由で GPU アクセラレーション — 追加の SDK は不要で、Metal フレームワークは OS に同梱)、Linux(gpui_linux 経由の X11 または Wayland、Vulkan バックエンド)、および Windows 10/11(gpui 経由の Direct3D バックエンド、MSVC ツールチェーンでビルド)で動作します。

Releases には macOS 用のビルド済みバイナリがありますが、ソースからビルドする必要がある場合: 良い知らせは、2 つのコマンドだけであることです。

  1. Rust をインストール(まだお持ちでない場合): ```sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    root@kitploit:~
  2. Linux のみ — gpui のネイティブ依存関係をインストールします。 最も簡単な方法は、apt / dnf / pacman などを認識する Zed のセットアップスクリプトを実行することです: ```sh curl -sSL https://raw.githubusercontent.com/zed-industries/zed/main/script/linux | bash
    root@kitploit:~

This pulls in libxkbcommon-dev, the Wayland and XCB headers, Vulkan, ALSA, and the rest of the toolchain gpui_linux needs to link. Without these the build fails at link time with missing xkbcommon / wayland-client symbols.

これにより、libxkbcommon-dev、Wayland および XCB ヘッダー、Vulkan、ALSA、そして gpui_linux がリンクするために必要なその他のツールチェーンが取り込まれます。これらがないと、ビルドはリンク時に xkbcommon / wayland-client のシンボルが見つからず失敗します。

If you'd rather not run the script, the equivalent packages on Debian / Ubuntu (amd64) are:

スクリプトを実行したくない場合は、Debian / Ubuntu (amd64) の同等パッケージは次のとおりです。 ```sh sudo apt-get update && sudo apt-get install -y
build-essential clang cmake pkg-config
libfontconfig-dev libfreetype-dev
libwayland-dev libxkbcommon-x11-dev
libasound2-dev libvulkan-dev
libzstd-dev libsqlite3-dev libssl-dev
libglib2.0-dev

root@kitploit:~
`libfontconfig-dev` が不足している場合、依存関係のビルドスクリプトの初期段階でビルドが失敗し(`fontconfig was not found in the pkg-config search path`)、その後、X11/Wayland/Vulkan ライブラリのリンク時にも失敗します。Frida ドライバーが Linux では GLib を動的にリンクするため、`libglib2.0-dev` が必要です(macOS では Frida devkit が静的にバンドルします)— これがないと `undefined symbol: g_object_unref` でリンクが失敗します。

**Windows のみ — ネイティブビルドツールチェーンをインストールしてください。** `gpui` は MSVC ツールチェーンを必要とします(GNU/MinGW ターゲットはサポートされていません)。[winget](https://learn.microsoft.com/windows/package-manager/winget/) を使用する場合:   ```powershell
# 1. MSVC compiler, linker, and Windows SDK (the "Desktop development with C++" workload).
winget install --id Microsoft.VisualStudio.2022.BuildTools `
  --override "--quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"

# 2. CMake — tree-sitter (via the Zed `language` crates) builds wasmtime's C API with it.
winget install --id Kitware.CMake

# 3. LLVM/Clang — `bindgen` (frida-sys, gpui, media) needs libclang.dll.
winget install --id LLVM.LLVM

LLVM インストーラーは PATH に自身を追加しません。そのため、ビルド前に bindgen が libclang.dll を指すように設定してください(システム → 環境変数 で恒久的に設定するか、シェルごとに設定してください): ```powershell $env:LIBCLANG_PATH = "C:\Program Files\LLVM\bin"

root@kitploit:~
これらがないと、依存関係のビルドスクリプトでビルドが失敗します: `linker 'link.exe' not found` (MSVC がない場合)、`failed to spawn 'cmake'` (CMake がない場合)、または `Unable to find libclang` (`LIBCLANG_PATH` がない場合)。`glass` バイナリのスタック予約領域は MSVC 上で自動的に拡大されます (`crates/glass-cli/build.rs` を参照)。そのため、CLI が Windows の小さな既定のメインスレッドスタックをオーバーフローすることはありません — 操作は不要です。

3. **クローンとビルド**:   ```sh
git clone https://github.com/azw413/Glass.git
cd glass
cargo build --release -p glass-cli
cp target/release/glass <to somewhere on your PATH>

The first build will compile gpui and friends and will take several minutes. Subsequent builds are fast.

最初のビルドは gpui とその関連をコンパイルするため、数分かかります。以降のビルドは高速です。

  1. 実行する: ```sh

    Open the GUI on an Android APK or iOS IPA — no subcommand needed.

    glass ~/path/to/app.apk glass ~/path/to/app.ipa

    Or on a standalone binary — ELF .so, Mach-O .dylib, or raw

    executable. Fat / universal Mach-O is sliced automatically.

    glass ~/path/to/libfoo.so glass ~/path/to/libBar.dylib glass /usr/lib/dyld

    No args → opens an empty Glass window; use File → Open.

    glass

    Headless bundle inspect

    glass bundle ~/path/to/app.apk

    Inspect persisted state for a bundle

    glass db-dump ~/path/to/app.apk

    root@kitploit:~

常にリリースビルドを使用してください — デバッグビルドは逆アセンブルが桁違いに遅くなります。

.app バンドルのパッケージング

Finder からダブルクリックで起動できるように、リリースバイナリを Glass.app バンドルにラップするには:```sh cargo build --release -p glass-cli ./packaging/make-app.sh open dist/Glass.app

root@kitploit:~
このバンドルはアドホック署名(Developer ID 署名・公証なし)のため、初回起動時に macOS は開くことを拒否します。右クリック → **開く** で Gatekeeper を一度だけ迂回できます。

ローカルでビルドせずにプリビルド zip を取得する方法は 2 つあります:

- **最新の `main`** — プッシュのたびに `Glass-app-<sha>.zip` が 14 日間保持されるワークフローアーティファクトとしてアップロードされます。[Actions タブ](https://github.com/azw413/Glass/actions) から取得してください。
- **タグ付きリリース** — `v*` タグ(例: `v0.1.0`)をプッシュすると同じワークフローが実行され、さらに `Glass-<tag>-macOS.zip` が自動生成されたリリースノート付きで [Releases ページ](https://github.com/azw413/Glass/releases) に公開されます。

## Workspace

| Crate            | Purpose                                                          |
|------------------|------------------------------------------------------------------|
| `glass-core`     | 共有型(`CodeKind`、ID)                                          |
| `glass-arch-arm` | AArch64 + ARMv7 逆アセンブル、シンボルマップ、PLT 合成、デマングリング |
| `glass-arch-dex` | `smali` 上に構築された DEX / smali ファサード                     |
| `glass-mobile`   | APK + IPA バンドルの読み込み、ネイティブライブラリ抽出、マニフェスト |
| `glass-db`       | コンテンツアドレス方式の永続化(redb): バンドル、タブ、設定       |
| `glass-device`   | Android(adb)+ iOS(usbmux)デバイス検出                        |
| `glass-api`      | 解析動詞(検索、xrefs、CFG、編集)。CLI + MCP + GUI で共有        |
| `glass-ui`       | `gpui` フロントエンド: ツリー、リスト、hex、マニフェスト、パレット |
| `glass-cli`      | ヘッドレスインスペクタ + GUI ランチャー                           |
| `glass-mcp`      | すべての CLI 動詞をツールとして公開する MCP サーバー              |
| `glass-script`   | QuickJS プラグインランタイム(プレースホルダー)                  |

## Roadmap

- **iOS のさらなる深掘り** — Entitlements と `embedded.mobileprovision` の解析。(ObjC `__objc_classlist` と Swift `__swift5_types` メタデータパスは実装済み — `glass types` / `glass type` を参照。)
- **x86 / x86_64** — Android `.so` ファイルのエミュレータビルド向け逆アセンブル。
- **内部スクリプティング** — 解析パスのための安定した API を備えた QuickJS プラグインホスト。
- **高度な機能** — 署名付き APK の再構築、ARMv7 インプレース編集におけるダウンストリームシフト(2→4 バイトへの拡張が拒否される代わりに隣接コードを越えてスプライス可能)。
ツールをダウンロード
矢印ガター、解決済み文字列リテラル、クリック可能なシンボル参照を備えた AArch64 逆アセンブル一覧
逆アセンブル一覧
色分けされたオペランド、制御フロー矢印、インラインの解決済み文字列リテラル
基本ブロックと条件付き・無条件エッジを表示するネイティブ関数の制御フローグラフ
制御フローグラフ
点線の条件付きエッジとルーティングされたマルチランクレーンを備えた関数ごとの CFG
smali メソッドをルートとする DEX メソッド呼び出しグラフ。ホバーで展開可能な呼び出し先ノード
DEX 呼び出しグラフ
ホバーで呼び出し先を展開、クリックでメソッドの smali にジャンプ
色付き比例バーとセクション別詳細を備えたネイティブバイナリのセクションマップ概要
セクションマップ概要
セクションサイズに応じた比例バー。クリックで一覧 / 16 進ビューにジャンプ