このページでは

コーディングエージェントとのリバースエンジニアリング

ソフトウェアの
仕組みを知ろう。

REA は、プログラムを調べて動作を説明するためのツールをコーディングエージェントに提供します。

すでに再を知っていますか? 分析ガイドへスキップ→

もっと深く行きたいですか? ブログを読む→

REAのセットアップ

このプロンプトをコーディングエージェントに貼り付けてください:

あなたのコーディングエージェント

npx rea-agents@latest setup を使って REA をインストールし、このコーディングエージェントに接続してください。まず変更内容を提示し、私が承認してから実行してください。その後、インストールを確認してください。

ターミナルから実行することもできます:

npx rea-agents@latest setup

設定の変更内容を確認して承認したら、エージェントを再起動します。

初めて、または行方不明 Node.js またはコーディングエージェント? ステップバイステップセットアップガイドに従ってください→

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

プログラムそのものを調べて、ソフトウェアの仕組みを理解することです。

目標:機能を十分に理解する それを説明してください, それを変更します または それを再構築します。

例えば:なぜ電卓で 200 + 10% を計算すると 220 になる?

REA を使う前 · 自分で調べる

オリジナルx64·選択された指示
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10

命令をデコードし、関数呼び出しに従って計算を再構築します。

REA を使うと · エージェントに聞く

プロンプトは一つだけ。

普段の言葉でエージェントに質問します。

プロンプトの例*電卓

REAを使用してWindows計算機を検査します。 なぜですか 200 + 10% 220を与えますか?

回答例*調査結果に基づく

+の後に、%ボタンがかかります 最初の数の割合。

10% of 200 = 20200 + 20 = 220
REA が提供する情報
ハンドラーの命令、逆コンパイルされたコード、および呼び出し。
エージェントが説明すること
どのブランチが適用され、何が計算され、どのように再構築するか。
インストールされている電卓DLLから選択されたアセンブリ。 考えと返信は、調査結果を示しています。 電卓の例に続きます↓

2つの例を試してみましょう。 ゲームの速度を変更し、電卓に戻り、その%ボタンを再構築します。

例01•Chromeの恐竜ゲーム

恐竜はなぜ速くなる?

ゴール
でゲームを再構築する 調節可能な速度。
なぜそれをリバースエンジニアリング?
その加速を再現するには、次のものが必要です 実行中のゲームのルール:どのくらいの速、それが増加し、それが停止したときに、それが開始されます。

再構築したゲームで遊ぶ

6 → 10 → 13

元のルール:6から開始し、13に向かって増加します。

スライダーを動かして独自の速度を設定します。 スペースまたはジャンプはサボテンをクリアします。

REA が返した結果

ページ内で実際に実行されているスクリプト。 エージェントは更新機能と速度設定を読み取り、新しいゲームでそのルールを使用します。

例プロンプト*恐竜ゲーム

この恐竜のゲームを検査するためにREAを使用してください。 なぜそれは速くなるのですか? 速度ルールを表示し、調整可能な速度で小さなバージョンを構築します。

検査対象: wayouのChromium派生ブラウザ版.

REA·ロード index.js *選択した行
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

6時からスタート。 追加 0.001 速度は以下のとおりですが、衝突のない各更新 13.

スピードラボを開く→

各部分が何をするか

  1. 01*REA 実行中のゲームのスクリプトを読む実際のコードと設定をエージェントに返します。
  2. 02*あなたの代理店ルールを再構築し、コントロールを追加しますスピードスライダーで小さなゲームで回収された加速を使用してください。
  3. 03*あなたスピードとプレイを変更します元の加速を試してから、自分のペースを選択してください。
スクリプト、チェック、および分析を試す方法を参照してください

REAは、ローカルデバッグ接続を介してHTTP browser editionを検査し、ロードされたものを返しました index.js、そのソースとダイジェストを含みます。

検査されたスクリプトから選択された設定
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6

私たちは、障害物や自動スケジューリングを無効にして、制御されたブラウザチェックで元のゲームの更新機能を呼びました。 4,000回の更新後の速度は10.0、10,000回の更新後は13.0で、小数点以下1桁に四捨五入されていました。

新しいミニゲームは、その速度ルールを保持します。 その描画、ジャンプ、および衝突コードは、小さな教育の実装です。 ラボを開く 新しいコードを表示し、同じ速度チェックを実行するには。

ターゲットを自分で検査するには、次の手順に従います ブラウザ接続手順 を使用して 恐竜のページ. エージェントにページURLとローカルデバッグエンドポイントを指定し、上記のプロンプトをコピーします。

検査された速度コード · Chromium著者·BSDライセンス

例02•Windows計算機

電卓の % ボタンを再現する。

私たちはなぜ見ましたか 200 + 10% 220を与えます。 それでは、+と×の両方のルールを回復し、それらを試してみましょう。

ゴール
処理する小さな電卓を構築する +と×の両方が正しく。
なぜそれをリバースエンジニアリング?
同じボタンを使用します +と×の後の異なるルール。 インストールされているアプリを調べて、パーセンテージが適用されている数を見つけます。

計算を試してみてください

200 + 20

10%の200=20. 次に、200+20=220。

検査されたパーセンテージルールのインタラクティブなイラスト。

REA が返した結果

1つの枝は100で割ります。 もう1つは、最初の数で乗算します。 エージェントは両方を使用して%ボタンを再作成します。

この例では, previous = 200 と current = 10.

プロンプトの例*%ボタンを再構築する

REAを使用して、Windows計算機の%ボタンを検査します。 +と×の後にルールを回復し、両方を使用する小さな電卓を作成します。

%ハンドラーの読み取り可能な要約
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
と+
最初の数の10%を取ります。10% of 200 = 20 → 200 + 20 = 220
×付き
10%を0.1に変えます。200 × 0.1 = 20

インストールされているアプリから作業中の%ボタンへ

  1. 01*REA読み取り calc.exe電卓アプリを起動しますコードが開きます ms-calculator:. 次に、エージェントはインストールされているアプリのライブラリを選択します。
  2. 02*REAはライブラリを読み込みます%ハンドラーのコードを返します関数は演算子をチェックし、定数を使用します 100.
  3. 03*あなたのエージェントはそれを解釈しますルールの説明と再現ブランチをMicrosoftのソースと照合してから、上記の+と×を試してください。
実際のコードと答えがどのようにチェックされたかを参照してください
REA*選択されたオリジナルの指示
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
オペレーター Id·Microsoftのソース
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100

REA4.1.0で検査:Windows電卓11.2508.4.0、x64。 読み取り可能な概要は、回復されたブランチを説明するために、Microsoftの公開ソースからの名前を使用しています。

割合の実装 · マイクロソフトのテストケース · ネイティブセットアップガイド

あなたの最初の調査

小さなアプリでREAを試してみてください。

私たちのノートの例をダウンロードし、そのCSVエクスポートをトレースし、一つの変更された入力を確認してください。

ガイド付きの例を試してください

もっと詳しく知りたい?

理解したいことや構築したいことをエージェントに伝えます。 REAを使うと、何でもからの一緒に働くことができます このウェブサイトを複製する に その実行可能ファイルからゲームを再構築します。

プロンプトの例·ウェブサイト

REAを使用して検査する https://reverseengineeranything.app/. 私のためにこのウェブサイトを複製します。

はい、これ。

例プロンプト·ゲームの再構築

実行可能ファイルからこのゲームを再構築するには、REAを使用します。 Cでゲームプレイロジックを回復し、オリジナルに対してテストします。

DX-Ballのケーススタディを見る→

設定と分析の手順については、ターゲットを選択します:

マシンコードプログラム

実行可能ファイルおよびライブラリ内の関数、文字列、参照、および関数呼び出しの関係を検査します。

機械コードの解析プログラムガイド

JavaScript&Electron

アプリケーションフォルダまたはASARアーカイブからモジュール、ルート、IPCおよびネイティブ依存関係をマップします。

アプリケーションワークフロー

ブラウザとランタイムアクティビティ

選択したブラウザまたはプロセスアクティビティをキャプチャし、実行間で結果を比較します。

ブラウザ観察ガイド

質問がありますか?

よくある質問を読む, Discordで私たちとチャット 、または GitHubの問題を開く バグや機能要求のために。

コミュニティに参加

調査を共有し、Discord上の他のREAユーザーからの助けを得る。 プロジェクトの更新については、X上のREAに従ってください。

トップ