最終更新: 2026年7月13日 バージョン: 1.2.0
概要
Ourinプロジェクトは、依存関係を最小限に抑えた設計を採用しています。このドキュメントでは、すべての依存関係、その用途、セキュリティに関する考慮事項について説明します。
メインアプリケーション (Swift/SwiftUI)
外部依存関係
なし - Ourinのメインアプリケーションは外部依存関係を持ちません。
システムフレームワーク
Ourinは以下のApple公式フレームワークのみを使用しています:
| フレームワーク | バージョン | 用途 |
|---|---|---|
| Foundation | macOS SDK | 基本的なデータ型、コレクション、ファイルシステムアクセス |
| AppKit | macOS SDK | macOSネイティブUI(ウィンドウ管理、メニューなど) |
| SwiftUI | macOS SDK | モダンな宣言的UI |
| OSLog | macOS SDK | システムログ・デバッグ出力 |
| UserNotifications | macOS SDK | 通知機能 |
| CoreImage | macOS SDK | 画像処理・フィルター |
| Combine | macOS SDK | リアクティブプログラミング・非同期処理 |
| Darwin | macOS SDK | POSIXシステムコール(セマフォ、共有メモリなど) |
| Network | macOS SDK | ネットワーク通信(SSTP TCPサーバー) |
| UniformTypeIdentifiers | macOS SDK | ファイルタイプ識別 |
| CoreGraphics | macOS SDK | 2D描画 |
| ImageIO | macOS SDK | 画像入出力 |
セキュリティステータス: ✅ すべてのフレームワークはAppleにより継続的にメンテナンスされています。
DevTools Migrator (オプション / Optional)
Ghidra
- バージョン: 11.x 以上推奨(開発環境では 12.0.4 で検証)
- ライセンス: Apache License 2.0
- 著作権者: National Security Agency (NSA)
- 用途: SSP 互換 Windows DLL/EXE の逆コンパイル・解析(Migrator 機能)
- リポジトリ: https://github.com/NationalSecurityAgency/ghidra
- 公式サイト: https://ghidra-sre.org/
重要: Ghidra は Ourin に同梱されません。ユーザーが別途インストールした
analyzeHeadless を外部プロセスとして呼び出します。通常起動時は Ghidra / Java に依存しません。
DecompileAll.java(Ourin/DevTools/Migrator/Resources/)は Ghidra のスクリプト API を使用し、
実行時に GhidraScriptSource.swift から一時ファイルとして実体化されます。
セキュリティステータス: ⚠️ Migrator は未信頼バイナリを扱いますが、解析は Ourin 本体 プロセス外の Ghidra サブプロセスで行われます(参考: 計画「注意点」)。
アプリ内の About → 「ライセンスを表示…」から Ghidra ライセンス文を参照できます。
YAYA Core (C++実装)
外部依存関係
1. nlohmann/json
- バージョン: 3.11.0以上(
yaya_core/CMakeLists.txtは 3.11.0 を指定) - ライセンス: MIT License
- 用途: JSON形式でのプロセス間通信(IPC)
- リポジトリ: https://github.com/nlohmann/json
- インストール方法:
bash brew install nlohmann-json
セキュリティステータス: ✅ 最新バージョン(3.12.0、2025年4月リリース)に既知の重大な脆弱性はありません。
既知の過去の脆弱性: - バージョン2.0.10以前: ヒープベースのバッファオーバーフロー脆弱性(CBOR解析時) - 対策: バージョン3.12.0を使用することで回避済み
バンドル済みサードパーティコード
以下のコードは yaya_core/third_party/yaya/ に含まれています(yaya-shiori-500からの移植):
1. MD5実装 (md5.c/md5.h)
- 用途: YAYAの
FILEDIGESTおよびSTRDIGEST関数(MD5モード) - ライセンス: BSD-3-Clause(YAYA projectより)
- セキュリティ警告: ⚠️ MD5は暗号学的に破られています(2004年以降)
- 重要: この実装はセキュリティ目的では使用していません
- YAYA言語仕様との互換性のためのみ提供
- 認証・署名検証・パスワードハッシュなどには使用禁止
2. SHA-1実装 (sha1.c/sha1.h)
- 用途: YAYAの
FILEDIGESTおよびSTRDIGEST関数(SHA-1モード) - ライセンス: BSD-3-Clause(YAYA projectより)
- セキュリティ警告: ⚠️ SHA-1は非推奨です(2017年以降)
- 重要: この実装はセキュリティ目的では使用していません
- YAYA言語仕様との互換性のためのみ提供
- 認証・署名検証などには使用禁止
3. CRC32実装 (crc32.c/crc32.h)
- 用途: YAYAの
FILEDIGESTおよびSTRDIGEST関数(CRC32モード) - ライセンス: BSD-3-Clause(YAYA projectより)
- 用途制限: チェックサムのみ(暗号学的ハッシュではありません)
4. POSIX Utilities (posix_utils.cpp/posix_utils.h)
- 用途: POSIX APIラッパー(ファイル操作、エンコーディング変換など)
- ライセンス: BSD-3-Clause(YAYA projectより)
SATORI Core (C++実装)
| ライブラリ | バージョン | 用途 | ライセンス |
|---|---|---|---|
| satoriya-shiori | Mc172-3 / a5746694... |
里々辞書評価器 | BSD-2-Clause |
| nlohmann/json | 3.11.0以上 | SwiftとのJSON Lines IPC | MIT |
| libiconv | macOS system | CP932/UTF-8変換 | システムライブラリ |
| CMake | 3.20以上 | Universal 2ビルド | BSD-3-Clause |
上流ソースはsatori_core/third_party/satoriya-shiori/へ固定して同梱し、ライセンス本文を保持します。ローカルpatchはsatori_core/PATCHES.md、tag/commit/treeはsatori_core/UPSTREAM.mdを正本とします。生成済みhelperはアプリへ署名して同梱され、実行時に外部パッケージを必要としません。
ビルドツール依存関係
必須ツール
| ツール | 最小バージョン | 用途 |
|---|---|---|
| Xcode | 16.4+ | Swiftコンパイル・アプリビルド |
| CMake | 3.20+ | YAYA Coreビルドシステム |
| make | GNU Make | CMakeからの呼び出し |
| Clang | 14+ (Xcode付属) | C++17コンパイル |
インストール方法
## Xcode Command Line Tools
xcode-select --install
## CMake(Homebrew経由)
brew install cmake
## nlohmann-json
brew install nlohmann-json
最小システム要件
現在の設定
- 最小macOSバージョン: 11.0 (Big Sur)
- 推奨macOSバージョン: 13.0 (Ventura) 以上
セキュリティに関する注意
⚠️ 重要: macOS 11.0 (Big Sur)は2023年9月にサポート終了しており、セキュリティアップデートを受信していません。
推奨事項: 今後のリリースでは最小バージョンをmacOS 13.0 (Ventura)に引き上げることを検討してください。
CI/CD依存関係
GitHub Actionsワークフロー (.github/workflows/macOS.yml)で使用されているツール:
| ツール | バージョン | 用途 |
|---|---|---|
actions/checkout |
v4 | リポジトリチェックアウト |
maxim-lobanov/setup-xcode |
v1 | Xcode選択 |
actions/cache |
v4 | SwiftPMキャッシュ |
xcbeautify |
latest | ビルドログの整形 |
セキュリティベストプラクティス
✅ 実施済み
- 最小依存関係: 外部依存関係は1つのみ(nlohmann/json)
- 公式フレームワーク: Appleの公式フレームワークのみ使用
- 定期監査: 依存関係の定期的なレビュー
⚠️ 検討事項
-
バージョン固定:
CMakeLists.txtでnlohmann/jsonのバージョンを固定cmake find_package(nlohmann_json 3.12.0 REQUIRED) -
最小macOSバージョンの更新: - 現在: macOS 11.0 (サポート終了) - 推奨: macOS 13.0+ (セキュリティサポート継続中)
-
ハッシュ関数の文書化: - MD5/SHA-1はYAYA互換性のみ - 新規コードでは使用禁止を明示
依存関係の更新方法
nlohmann/jsonの更新
## Homebrewで最新版に更新
brew upgrade nlohmann-json
## バージョン確認
brew info nlohmann-json
## YAYA Coreを再ビルド
cd yaya_core
rm -rf build
./build.sh
Xcodeの更新
## 最新のXcodeをApp Storeからインストール後
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
トラブルシューティング
nlohmann/jsonが見つからない
## パッケージが正しくインストールされているか確認
brew list nlohmann-json
## CMakeのパッケージ検索パスを確認
cmake --find-package -DNAME=nlohmann_json -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST
## 再インストール
brew uninstall nlohmann-json
brew install nlohmann-json
ビルドエラー: "nlohmann/json.hpp not found"
原因: Homebrewのインストールパスが認識されていない
解決策:
## Intel Mac
export CMAKE_PREFIX_PATH=/usr/local
## Apple Silicon Mac
export CMAKE_PREFIX_PATH=/opt/homebrew
## 環境変数を設定してから再ビルド
cd yaya_core
rm -rf build
./build.sh
参考リンク
公式ドキュメント
セキュリティ情報
変更履歴
| 日付 | バージョン | 変更内容 |
|---|---|---|
| 2025-12-11 | 1.0.0 | 初版作成 - 依存関係の完全な文書化 |
| 2026-06-26 | 1.1.0 | DevTools Migrator / Ghidra(Apache 2.0)セクション追加 |
| 2026-07-13 | 1.2.0 | 固定版SATORI Core、Universal 2 helper、BSD-2-Clause情報を追加 |
お問い合わせ
依存関係やセキュリティに関する質問は以下までお問い合わせください:
📧 [email protected] 🌐 https://github.com/eightman999/Ourin
出典と編集について
Ourin / Furin Lab・contributors。文書はCC BY-SA 4.0(第三者の個別表記を除く)。Web版は見出し・リンクの整備とローカルパスの一般化を行っています。更新基準日: 2026-10-30。
元資料: docs/DEPENDENCIES_ja-jp.md
ソース SHA-256: 8608e170a3f4c5b59c307ddef00a35557ba9dabf2bc19402a14e210d75659718