DDisasm:可逆(双方向)ディスアセンブラ

2026/08/03 13:13

DDisasm:可逆(双方向)ディスアセンブラ

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

DDisasm は、Datalog(Souffle)を用いて実装された高速な宣言的ディスアセンブラであり、x86(32/64 ビット)、ARM(32/64 ビット)、および MIPS アーキテクチャにおいて、再組立に適した正確なアセンブリコードの生成が可能です。ELF(Linux)および PE(Windows)のバイナリ形式の両方を処理するように設計されており、ファイルヘッダーをシームレスに解析して命令セットをデコード、関数の境界を特定、コード位置をシンボライズし、発見した情報を GTIRB 中間表現に変換してさらなる分析に供します。本ツールは、事前構築済みの Docker イメージ (

grammatech/ddisasm:latest
)、またはコンテナ内の内部ビルドサポートを通じて利用可能です。主要な機能として
gtirb-pprinter
ユティリティがあり、これは必要なコンパイラコマンドラインオプション、ライブラリ依存関係、リンカスクリプトを自動生成し、手動設定を排除します。当初は ARM64 の初期サポートがシドニー大学のプログラミング言語グループによって提供され、USENIX Security 20(2020 年 8 月)で発表されましたが、現在ではユーザー gogo2464 によるドキュメントのリファクタリングを含む活発なコミュニティ貢献から恩恵を受けています。本プロジェクトは学術協力とオープンソース開発を通じて進化を続けており、直近の進歩として IEEE SP 2025 で発表された「Ddisasm WIS」が研究者に Linux および Windows の両方で強固なバイナリ操作パイプラインの自動化を可能にし、プロジェクトは継続的に発展しています。

本文

Datalog Disassembler (DDisasm) の紹介

DDisasm は、生成されたアセンブリコードを再び連結(リリンク)可能な精度を持ちつつ、高速なディスアセッbler です。本ツールは、disassembly のルールとヒューリスティックを実装するための宣言的論理プログラミング言語である Datalog( souffle )を採用しています。

仕組みとワークフロー

DDisasm の処理プロセスは以下の通りです。

  1. 初期解析
    • ELF/PE ファイルの情報を解析します。
    • 可能な指令のスーパーセットをデコードして、初期の Datalog 事実集合 を作成します。
  2. 分析と特定
    • 作成された事実は分析され、以下の要素が特定されます:
      • コードの位置
      • シンボル
      • 関数の境界
  3. GTIRB への変換
    • 解析結果に基づいて精緻化された Datalog 事実集合を作成し、それを中間表現である GTIRB へと変換します。
  4. 出力と整形
    • GTIRB プレビュープリンターを使用して、連結可能なアセンブリコードとして GTIRB を整形・出力します。

バイナリ対応

DDisasm が対応するフォーマットとアーキテクチャは以下の通りです。

  • ファイルフォーマット
    • ELF(Linux)
    • PE(Windows)
  • 指令セットアーキテクチャ (ISA)
    • x86_32
    • x86_64
    • ARM32
    • ARM64
    • MIPS32

始め方

プレビルド版を Docker を使用して手軽に実行できます。

1. コンテナの起動

まず、サンプルコードの一つを試してみましょう。Docker コンテナを開始します。

docker run -v $PWD/examples:/examples -it grammatech/ddisasm:latest

コンテナ内では、以下の手順でサンプルバイナリを準備します:

  1. GCC をインストールします。
  2. サンプルコード (
    ex.c
    ) をコンパイルしてバイナリを作成します。
apt update && apt install gcc -y
cd /examples/ex1
gcc ex.c -o ex

これでディスアセムブルの準備が完了しました。

2. GTIRB 表現への処理と再構築

GTIRB 表現を取得後、gtirb-rewriting を使用してプログラムを変更できます。その後、新しいバージョンのバイナリを生成します。

  • 自動生成による再コンパイル

    • Docker イメージに含まれる
      gtirb-pprinter
      を使用すると、必要なコマンドラインオプション(コンパイルオプション、ライブラリ依存関係、バージョンリンカースクリプトなど)を自動生成して新しいバイナリを作成します。
    gtirb-pprinter ex.gtirb -b ex_rewritten
    
  • 手動修正用のアセンブリリストの生成

    • gtirb-pprinter
      を使用して、手動での修正を行えるアセンブリリストも出力できます。
    gtirb-pprinter ex.gtirb --asm ex.s
    

    上記で生成されたアセンブリリストを手動で再コンパイルする例:

    gcc -nostartfiles ex.s -o ex_rewritten
    

詳細な情報は当社のドキュメントをご確認ください。

ドキュメントと貢献者

貢献について

詳細は

CONTRIBUTING.md
を参照してください。

外部コントリビューター

  • プログラミング言語グループ、シドニー大学: ARM64 の初期サポートを提供。
  • GitHub ユーザー gogo2464: ドキュメントのリファクタリングに貢献。

引用情報

研究論文に関する引用情報は以下の通りです。

Datalog Disassembly (USENIX Security 20)

@inproceedings{flores-montoya2020,
    author = {Antonio Flores-Montoya and Eric Schulte},
    title = {Datalog Disassembly},
    booktitle = {29th USENIX Security Symposium (USENIX Security 20)},
    year = {2020},
    isbn = {978-1-939133-17-5},
    pages = {1075--1092},
    url = {https://www.usenix.org/conference/usenixsecurity20/presentation/flores-montoya},
    publisher = {USENIX Association},
    month = aug,
}

GTIRB (arXiv)

@misc{schulte2020gtirb,
    title={GTIRB: Intermediate Representation for Binaries},
    author={Eric Schulte and Jonathan Dorn and Antonio Flores-Montoya and Aaron Ballman and Tom Johnson},
    year={2020},
    eprint={1907.02859},
    archivePrefix={arXiv},
    primaryClass={cs.PL}
}

Ddisasm WIS (IEEE Symposium on Security and Privacy 2025)

@INPROCEEDINGS{11023516,
  author={Flores-Montoya, Antonio and Lim, Junghee and Seitz, Adam and Sood, Akshay and Raff, Edward and Holt, James},
  booktitle={2025 IEEE Symposium on Security and Privacy (SP)},
  title={Disassembly as Weighted Interval Scheduling with Learned Weights},
  year={2025},
  volume={},
  number={},
  pages={3033-3050},
  keywords={Measurement;Privacy;Accuracy;Heuristic algorithms;Reverse engineering;Binary codes;Benchmark testing;Scheduling;Inference algorithms;Security;disassembly;reverse engineering;learning;binary analysis},
  doi={10.1109/SP61157.2025.00192}}

同じ日のほかのニュース

一覧に戻る →

2026/08/09 3:09

デンマーク、学生の書面提出物に対する口頭での弁明義務化へ:AIによる不正防止策

## Japanese Translation: デンマークの中等学校では、約 9,000 名の 2 ヶ年制 HF プログラムを受講する生徒に対し、自宅で行う課題について AI で生成されたテキストを明確に制限し、口頭での defended(防衛・説明)を義務付ける厳格な即時規則を導入した。この緊急性な措置は、技術の急速な変化に対応し、不正行為を防ぎ、デジタル補助に依存せずに批判的思考力を育成することを目的とする。当局者は、長期的な解決策が完全に確立される前に迅速な行動が必要であると同時に、執行と生徒の関与を踏まえて将来の枠組みを形成する必要があることを強調している。 デンマーク上級中等学校協会はこの暫定制限を支持するが、教員・機関・生徒を計画に含めた持続可能な戦略の策定を求めている。教育省は実装を精査するための協議を継続し、短期的な規則を進化させることで技術的現実を統合した総合的な戦略へと発展させていく見込みである。そのため、生徒は現在、大規模プロジェクトにおける AI の利用を開示し、学習期間中にインターネットへのアクセスを制限した厳格な口頭防御試験への準備を行わなければならない。学校側には、新しい技術的な監視ツールの導入、オンラインコンテンツを制限するファイアウォールの使用、および監督の強化を目指してより多くの講義をキャンパス内に移すなどの対応が求められている。 ## Text to translate: The original summary is clear and comprehensive. No improvement is necessary; here is an optional minor refinement for flow only: Danish upper-secondary schools have introduced immediate strict rules requiring nearly 9,000 vocational students in the two-year HF program to orally defend written assignments they complete at home, explicitly limiting AI-generated text. This urgent measure addresses rapid technological changes to prevent cheating and foster critical thinking without relying on digital aids. Officials stress that swift action is needed before long-term solutions can be fully developed, while balancing enforcement with student involvement in shaping future frameworks. The Danish Association of Upper-Secondary Schools supports these temporary restrictions but calls for sustainable strategies that include teachers, institutions, and students in planning. The Ministry of Education will continue consultations to refine implementation, evolving short-term rules into comprehensive strategies that integrate technological realities. Consequently, students must now disclose AI usage in major projects and prepare for rigorous oral defenses without internet access during study periods. Schools are expected to adopt new technical monitoring tools, use firewalls to restrict online content, and shift more coursework onto campus to improve supervision against unauthorized digital assistance.

2026/08/09 7:49

我がサーバーは今や電話機です

## Japanese Translation: 著者は、ハードウェアコストの高さと Chrome における共有 CPU 性能の悪化という要因により、高額な Hetzner VPS を使用済みの CMF Phone 1 に代替することに成功した。初期に postmarketOS のフラッシュを試みたところ、破損したドライバーのためデバイスが機能しなくなったが、復旧プロセスでは MediaTek ドライバーの問題を調べるために QEMU で Windows をインストールし、その後標準の Nothing OS に復元を行った。最終的に安定して動作する設定は、仮想マシンを使わずに Android 上で直接 Termux をホスト環境として実行し、管理には OpenSSH、Caddy、Tailscale を活用している。パフォーマンスは、PRoot からネイティブ chroot(特に Surf ブラウザ向け)へのアプリケーション移行によりシステムコールのオーバーヘッドを排除することで最適化され、電源管理は Ansible スクリプトを用いてアイドル状態を無効化し、ウェイクロックを有効化することで確保されている。 システムの信頼性は以下の特殊なブートチェーンに依存する:Android ブート → Tailscale 常時接続 VPN → Termux:Boot → runit → 常驻サービス → ヘルスチェック。インフラストラクチャはプライベート Git リポジトリから Ansible で完全に管理され、バージョン付きファイルは原子シンボリックリンク、秘密情報は 1Password SSH エージェント署名による派生キーではなく格納されたキーを使用しない方式で扱っている。ネットワークトラフィックは以下のように特定の方法で処理されている:HTTP アプリには Cloudflare Tunnel、低遅延要求のある Surf バックエンドにはカスタム WebSocket でラップされた TLS ストリームが使用される。Chromium(Surf)や個人資産トラッカーといった特定の常驻サービスを動作させることで、静かなバッテリーバックアップ付きのホスト環境を提供する。Android カーネルを共有するため OS 更新の影響を受け得るものの、この設定は VPS コストを実質的に排除しながらも、信頼できるリモートアクセス機能を維持することに成功している。

2026/08/09 1:04

Fastmail がEUデータリージョンを提供

## Japanese 翻訳: #### サマリー: Fastmail はアムステルダムに専用セキュアサーバーを配備し、EU ユーザーはプライマリデータを完全に EU 内に保持できるようになり、これにより US への保存が回避されています。この戦略は、高いセキュリティ基準を維持するために Fastmail が自前のハードウェアとソフトウェアを活用しています。システムログは整合性のため引き続き米国で統合されながら、アーキテクチャはアプリが最も近いインフラストラクチャに直接接続できるようにし、自動的なフェイルオーバーを備えています。 オーストラリア企業である Fastmail は、データ所在地にかかわらず法的権限による要求に対応するという厳格な法的コミットメントに従い、管轄区域に関する懸念に対処しています。既存の米国アカウントはフィラデルフィアとセントルイスにおいて同一のセキュリティプロトコルの下で引き続き運用され、EU アカウントは受信メールをローカルサーバー経由で処理し、米国の堅牢なレプリカを備えています。データ安全性は全ユーザーについて地理的に分離されたレプリカによって維持されつつ、特定のエマージェンシーバックアップはフィラデルフィアに保持されています。このアーキテクチャは、これらの場所を超えて電子メールアドレス、ユーザーメタデータ、Files ストレージ、リンクされたサードパーティサービスをサポートしています。 ユーザーは今や、`Settings` メニュー(`Users & Sharing → Team Settings`)を通じて追加料金なしでデータ所在地設定を切り替えることができます。ユーザーのプライマリコピーを移行する場合はメールの同期が必要となり、新規移行では速度が遅くなる可能性がありますが、米国サーバーに戻る既存の米国ユーザーについては最適化されたプロセスが適用されます。Fastmail は初期移行のためにヨーロッパの請求住所を持つユーザーを事前選択し、暗号化データを事前に転送しました。当初選択されなかった場合でも、頻度制限の対象下ではあるものの、その後に地域を変更することも可能です。この変更は、場所に対する完全なコントロールを確保しながら、地域規制に準拠します。