世界を動かす技術を、日本語で。

REAリバース - 何でもエンジニアリングする

2026年10月10日原文(rea.tools)

概要

Reverse engineering (リバースエンジニアリング)とは、ソフトウェアの動作を解析し、その仕組みを理解する手法。 REA は、エージェントがプログラムを調査・説明できるツールを提供。 Windows CalculatorやChromeの恐竜ゲームなど、具体的な例で解析方法を解説。 +や×演算子 における%ボタンの動作ルールの再現方法を紹介。 NativeバイナリやJavaScriptアプリ など、さまざまな対象の解析手順も案内。

リバースエンジニアリングとは

  • ソフトウェアの挙動解析 を通じて、機能やロジックの理解・再構築を目指す手法
  • 機能の説明・改変・再実装 を目的とした調査活動
  • 例:Windows Calculatorの「200 + 10% = 220」の理由調査
    • %ボタンは、直前の数値(この場合200)の10%(=20)を加算
    • 200 + 20 = 220という計算ロジック

REAによる解析支援

  • REA をインストールし、エージェントへセットアップする手順の提供
    • コマンド例:npx rea-agents@latest setup
    • セットアッププランの確認・承認後、エージェントを再起動
  • プログラムの命令列・デコンパイルコード の取得
  • 分岐や計算処理の解説、再現方法の提示

解析事例1:Chromeの恐竜ゲーム

  • ゲーム速度が上がる理由の調査
    • ゲームの加速ルール(開始速度・増加量・最大速度)の特定
    • 速度ルール:開始6、最大13、毎フレーム0.001加算(障害物回避時のみ)
  • REAで実際のスクリプト・設定値を抽出
    • 例:if (this.currentSpeed < this.config.MAX_SPEED) { this.currentSpeed += this.config.ACCELERATION; }
  • ミニゲームとして再構築
    • 調査したルールを使い、速度調整可能なサンプルを作成

解析事例2:Windows Calculatorの%ボタン

  • %ボタンの動作ルールの復元
    • +の場合:前の数値の%を加算(例:200 + 10% → 200 + 20 = 220)
    • ×の場合:%を小数に変換して掛け算(例:200 × 10% → 200 × 0.1 = 20)
  • アセンブリコードから分岐の特定
    • +/×で異なる計算式の実装を確認
    • 例:if (operation == multiply || operation == divide) { percent = current / 100; } else { percent = current * previous / 100; }
  • Microsoftのソースやテストケースと照合

REAの活用方法・対象

  • Nativeバイナリ解析
    • 実行ファイルやライブラリの関数・文字列・参照関係の調査
  • JavaScript & Electronアプリ
    • モジュール、ルート、IPC、ネイティブ依存関係のマッピング
  • ブラウザ・ランタイムアクティビティ
    • 選択したプロセスやブラウザの動作記録・比較
  • ガイド付き例題やケーススタディ
    • NotesアプリのCSVエクスポート追跡、DX-Ballのゲームロジック復元など

REAでできること

  • 任意のウェブサイトやゲームのクローン作成
    • 例:https://rea.tools/の構造・動作の再現
  • 実行ファイルからのロジック抽出・C言語への再構築
    • オリジナルと比較しながら検証

まとめ

  • REA は、リバースエンジニアリングの自動化・効率化を図る強力なツール
  • プログラムの挙動解明・再現 が容易となり、学習や開発の幅が拡大
  • 多様なプラットフォーム・アプリケーション に対応可能

Hackerたちの意見

何か見落としてるかもしれないけど…これって、例えばClaudeに「Ghidraを含むフルRE環境をインストールして設定して、作業を始めて」と言うのと、どう違うの?今のREのやり方と何が違うの?

└

みんなそれぞれスキルや特定のスクリプト、ツールを持ってるよね。Ghidraをそのワークフローの核として使うかもしれないけど、少なくとも今はClaudeが自由にやるだけじゃ物足りないと思うよ。(6ヶ月後にどうなるかは分からないけど。)

└

自分でClaude Codeでやる方がいいと思うけど(実際、悪化してる)、可愛いUIが好きな人もいるんだろうね。

└

おそらく、これが良くない理由だと思う。これは「現在のREメソッド」を持っていない人、Ghidraのような具体的なことを指定するほど知識がない人を対象にしてると思うけど、逆コンパイルした気分になりたいという欲求がある人向けなんじゃないかな。

└

ArtCraftアプリにはバニラのClaude Codeを使ってるけど、特にGhidraには触れないように気をつけてる。デコンパイルやリバースエンジニアリングが私たちの作業を台無しにして著作権侵害にさらされるのは避けたいから。 「https://github.com/storytold」

└

なんでClaudeに聞いてみないの?「ねえClaude、ファンメイドのゲームボーイゲームを作りたいんだけど、ツールやライブラリ、ワークフローのおすすめ教えて」って言えば、すぐに答えてくれるよ。AIをポケモンみたいに使うんじゃなくて、学ぶために使えるんだから。

└

もうやってくれてるからじゃない?自分のトークンを使うのもいいけど、既にあるもので仕事ができるなら、そっちの方が安くて時間の節約になると思うよ。

└

私も分からない。唯一の推測は、あまり強力でないモデルにとっては役立つコンテキストがあるのかも。LLMのこともかなり進んできたし、そろそろこの技術を使って、いくつかの例がどうやって早く解決できたか、トークンを節約できたかを前面に出してハーネスを売り出す時期かもしれないね。

└

リバースエンジニアリングの経験はないけど、学ぶための前提条件は全部揃ってる。数日前、遅いローカルのQwen3.8にGhidra CLIを使って特定の実行ファイルをデコンパイルさせたら、完全に迷子になっちゃったんだ。今日はこれにリンクされて、今は少しずつ進展してるみたい。今回の実行でうまくいくかは分からないけど、確実に改善はされてる。別のプロンプトや自分のために手動で試す価値のある情報が得られたよ。でも、もっと簡単な方法を見つけたんだ。数週間前に誰かが再実装を公開してた。

こういう作業大好き。将来的には誰でも使えるパッケージにまとめたいな。フロンティアモデルが制限されると、これからますます重要になってくると思う。例えば、私はClaudeを自分の考えを整理するためのバウンシングウォールとして使ってるんだけど、> GLM 5.2がHFを助ける唯一のもので、エージェントがそれにアクセスしようとしてた時に役立ったって指摘した。 "ガードレール"が彼らが良いことをするのを止めてた。コンピュータ詐欺防止法もあるし、裁判所も存在する。コンピュータとインターネット接続はずっと前からあるしね。17 USC 1201の規定もあって、1201 a 1の免除もあるから、農家は自分のトラクターにアクセスするためにあなたと協力できるはず。あるいは…古くなったKindleとか? :) 合法かどうかは、行為そのものではなく、意図や目的、そして故意に根ざしてる。これは法律が何世紀も前から決めてきたことだよね。一方では、製作者は政府が決めるべきだと言えないし、もう一方では政府が決めることを明示的に拒否してる。これは「安全」のために却下されたんだ。> Opus 5.5の安全装置がこのセッションをフラグ付けした。これをOpusモデルで初めて見るかもしれないけど、Opus 5.5はより能力が高く、強力な安全装置があるから、時にはサイバーセキュリティ以外の作業もフラグ付けされることがある。誤ってフラグ付けされるメッセージを減らすために、これらの安全装置を改善中だよ。編集して再試行するか、Opus 4.8で続けて。/feedbackでフィードバックを送るか、詳しくはここを見てね: https://support.claude.com/en/articles/8106465 > > 詳細: "[cyber]' ここにある画像は、DMCAの例外に関するアメリカ議会図書館のページだよ。基本的に、許可なしに逆コンパイルしたり、物を作ったり、生物学や物理学について学ぶことができないっていう考え方は変だと思う。これらの機械は人類の知的成果の総和、世界の知的コモンズで訓練されていて、そのコモンズを閉じるために使われてるの? 他の人を制限するために政府にロビー活動をしているのであれば、そういう制限を作る権利には賛成できないな。多分私はナイーブかもしれないけど、人間と機械がみんなで考えたり、学んだり、作ったりできる方がいいと思う。でも、私はドゥーマーピルを拒否するタイプの人間だからね。

└

やった、すべてのソフトウェアがオープンになる…モデルを除いて。

└

CVPの承認がこの反応を変えたか見たかったんだけど、Opus 5.5のリリースとともに、Anthropicが静かにプログラムから外してしまったみたい。再申請するには、CVEのクレジットが必要など、厳しい新基準ができたみたい。先月承認されたばかりなのに、悲しいな!

Hacker Newsで議論の続きを見る