リバースエンジニアリングにおける心理戦(2015)

2026/08/08 3:51

リバースエンジニアリングにおける心理戦(2015)

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

要約

Japanese Translation:

Christopher Domas(@xoreaxeaxeax)が開発した REpsych ツールセットは、プログラムからの制御フローグラフ(CFG)に直接画像生成を実行します。これは視覚データを実行可能なロジックに変換し、IDA Pro で確実に動作する 2 つのバイナリ

repsych_v1
repsych_v2
を生成します。また、Hopper、BinNavi、radare2 のような他のディスアセッブラでも半分的に動作します。使用するには、
gfx/
フォルダに 24 ビット画像(24 BPP)を配置し、
make image
を実行します。テキスト画像から始める場合は、まずそれらを 2 BPP の黒白ビットマップに変換してから、最適な結果を得るために 24 BPP に変換してください。各ピクセルが基本ブロックに対応するため、効果的な利用には小さい画像(≤100×100)に限定されなければなりません。このプロジェクトは実用ソリューションではなく概念検証であり、作者による DEF CON プレゼンテーションで、今後の方向性と潜在的な用途についてさらに詳しく説明されています。

本文

REpsych: 逆エンジニアリングにおける「心理戦」の実装

REpsych ツールセットは、画像をプログラムに変換し、その制御フローグラフ(CFG)が元の画像を描画するコンセプトを実証したプロジェクトです。通常は関数の構造を示す CFG を生成しますが、ここでは逆に画像そのものがコードの構造となるという驚くべき逆転を実現しています。

注意: 本ツールには実用的な攻撃目的ではなく、「実現可能か」を示す実験的側面が強く、DEF CON プレゼンテーションで紹介されています。IDA Pro で動作確認され、Hopper や BinNavi など他ツールでも準信頼性あり。

📂 使用方法

画像からプログラムを生成するには、以下の手順を実行します。

1. 画像の準備

  • 対象画像を
    gfx/
    フォルダ内に保存します。
  • 形式: 24 ビット・PPM(色深度 24)のビットマップ必須。
  • ファイル名は拡張子を除いた文字列を使用します(例:
    image.ppm
    → コマンドで
    image
    と指定)。

2. コンパイル

プロジェクトルートディレクトリへ移動し、以下を実行してください。

make image

これにより、以下の 2 つの実行ファイルが作成されます:

  • repsych_v1
  • repsych_v2

それぞれ異なる戦略を採用しており、CFG のノード配置を保証する設計になっています。

💡 ヒントと最適化

ソース画像のサイズについて

ツールは画像の1 ピクセルごとに基本ブロック(CFG ノード)を作成するため、以下の点に注意してください。

  • 推奨サイズ:
    100×100
    ピクセル未満(できるだけ小さく)。
  • 必要に応じて CFG 表示ツールの許容ノード数を増やす準備が必要になる場合があります。

テキスト画像の場合

テキストを直接入力したい場合は、以下の手順で変換してください。

  1. まず 2 ビット・PPM(白黒のみ)に変換する。
  2. 次に 24 ビット・PPM に変換する。

これにより非黒白の色が除去され、制御フローグラフ上で最適の結果を得ることができます。

📖 参照・著者

  • 詳細解説: DEF CON プレゼンテーションのスライドを参照してください。
  • リポジトリ: github.com/xoreaxeaxeax/repsych
  • 著者: Christopher Domas (@xoreaxeaxeax)

このプロジェクトは、単なるコード生成ではなく、**逆エンジニアリングツールに対する「心理戦」**として捉えることもできる秀逸な実証実験です。

同じ日のほかのニュース

一覧に戻る →

2026/08/08 2:56

DeepSeek V4 フラッシュ 7 月 31 日

## Japanese Translation: ARC プライズ 2026 コンテストは開催中です。コンテストの最新情報を受け取るため、公式更新への登録を開始することで、参加者は情報を入手することができます。本サービスは、無断でスパムが送信されないことを保証しており、コンテストに関連する情報のみを送信します。参加者はいつでも登録を解除でき、組織側とのコミュニケーション経路について完全なコントロールと透明性のある、不快でない連絡手段を確保できます。

2026/08/08 3:01

屈辱の集会所

## Japanese Translation: 「恥辱の議場」プロジェクト(クリスチャン・ドマスの主導)は、速度最適化ではなく単一指令の絶対的なフローア(最小値)を記録することを目的としています。最も高速に計測された指令はインテル Core i7 での `nop`(1 サイクル)ですが、極端な遅延は `vmovdqu ymm` 命令(約 1.39 秒)や AMD Ryzen チップ上の `wrmsr` 命令(約 0.92 秒)に見られます。勝者の高遅延戦略には、GPU レジスタへのアクセスのために PCIe ファブリックを飽和させるなどの複雑な回避策や、微コードアシストをトリガーするために NaN などの特殊値の使用が含まれます。注目されるエントリーには、仕様違反の非対齐読み込み命令やネスト深さ最大級の `enter` 命令があります。この競技は厳格な規則に従っており、ファクトリーストックのハードウェア上で単一かつ割り込み不能な指令の実行を要求します。将来のプロジェクトでは、インテル Sapphire Rapids でさらなる長遅延(推定で 1 トリリオンサイクル)を探る可能性がありますが、ARM と RISC-V のリーダーボードは引き続き観測中です。これらの発見は深層アーキテクチャ的不効率を明らかにし、開発者が理論的な性能限界と、ハードウェアの欠陥や微コード振る舞いによる実際の物理的遅延を区別するのに役立ちます。

2026/08/08 3:51

古の図書館 – ギリシア語・ラテン語のテクストが 1,060 点、単語をタップして解析する

## Japanese Translation: このデジタルプラットフォームは、古典正典のための完全な解析リーダーを提供し、ラテン語およびギリシャ語の両方で 140 名の著者による 1,060 の基礎的作品へのアクセスを可能にします。コレクションには、叙事詩(ホーマー)、哲学(プラトン、キケロ)、歴史(タチトゥス)、伝記(サッルスティウス、リヴィウス)、弁論(キケロ、カエサル)、書簡(オラティウス、セネカ)といったジャンルにわたる 293 のラテン語作品が含まれ、さらに叙事詩(ホーマー、ヘシオドス)、悲劇と喜劇(ソフォクレース、アリストファネス)、歴史(ヘロドトス、トゥキディデス)、哲学(プラトン、アリストテレス)、伝記(プルートルコス)、地理学(ストラボン、パウサニアス)、医学(ガレン、ヒポクラテス)、数学・科学(ユークリッド、プトレマイオス)を網羅する 767 のギリシャ語作品が含まれています。また、聖書テキスト、初期キリスト教の著作、参考用文法書も含まれています。コア機能には統合された辞典エンジンがあり、あらゆる単語をクリックすると、すぐにその基本形・形態論学および完全な辞書項目が表示され、ラテン語の場合は Lewis & Short、ギリシャ語の場合は Liddell-Scott-Jones を経由します。このシームレスな相互作用により、物理的な書籍を相互参照する必要がなくなり、古代の知識の包括的なライブラリがユーザーの手のひらにあります。したがって、学者や学生は、デジタルインタフェースから離れることなく、形態論学的詳細の効率的な探索を行いながら、文化財を保護しつつ、現代教育および厳密な研究のために entire canon を跨いで直接テキスト内で深い言語分析を実行することができます。