アンドロイド*APK分析
認証者がログインコードを生成する方法
Aegis の公開 APK で 6 桁のログインコードを追い、デモの時計を動かして 30 秒ごとに変わる理由を確かめます。
Androidのケーススタディを読むコーディングエージェントとのリバースエンジニアリング
アプリ、ゲーム、ウェブサイトについてコーディングエージェントに質問してみましょう。REA は、答えの根拠となるコードを調べるためのツールを提供します。
このプロンプトをコーディングエージェントに貼り付けてください:
npx rea-agents@latest setup を使って REA をインストールし、このコーディングエージェントに接続してください。まず変更内容を提示し、私が承認してから実行してください。その後、インストールを確認してください。
ターミナルから実行することもできます:
npx rea-agents@latest setup
設定の変更内容を確認して承認したら、エージェントを再起動します。
初めて、または行方不明 Node.js またはコーディングエージェント? ステップバイステップセットアップガイドに従ってください→
リバースエンジニアリングとは、プログラムそのものを調べてソフトウェアの仕組みを理解することです。REA を使えば、エージェントがコードをたどり、機能を説明し、その再実装を手伝えます。
エージェントにプログラムやページを渡し、質問します。
REA はコード、参照関係、実行時の観測結果を返します。
エージェントは調査結果をもとに機能を説明したり、再実装したりします。
電卓で 200 + 10% が 220 になるのはなぜでしょうか?
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を使用してWindows計算機を検査します。 なぜですか 200 + 10% 220を与えますか?
+の後に、%ボタンがかかります 最初の数の割合。
10% of 200 = 20200 + 20 = 220
二つの例を試しましょう。ゲームの速度を変えてから、電卓の % ボタンを再実装します。
例01•Chromeの恐竜ゲーム
走り続けるとゲームの速度が上がります。速度を調節できる形で再実装するには、まず速度が変わる仕組みを調べます。
この恐竜のゲームを検査するためにREAを使用してください。 なぜそれは速くなるのですか? 速度ルールを表示し、調整可能な速度で小さなバージョンを構築します。
REA を使うと、エージェントが実行中のゲームのコードを読めます。速度は 6 から始まり、13 未満の間は更新ごとに少しずつ上がります。
下のミニゲームにこのルールを再現し、速度スライダーを加えました。スタートを押して、自分の速度を選んでみましょう。
元のルール:6から開始し、13に向かって増加します。
検査対象: wayouのChromium派生ブラウザ版.
if (this.currentSpeed < this.config.MAX_SPEED) {
this.currentSpeed += this.config.ACCELERATION;
}
6時からスタート。 追加 0.001 速度は以下のとおりですが、衝突のない各更新 13.
各部分が何をするか
REAは、ローカルデバッグ接続を介してHTTP browser editionを検査し、ロードされたものを返しました index.js、そのソースとダイジェストを含みます。
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6
私たちは、障害物や自動スケジューリングを無効にして、制御されたブラウザチェックで元のゲームの更新機能を呼びました。 4,000回の更新後の速度は10.0、10,000回の更新後は13.0で、小数点以下1桁に四捨五入されていました。
新しいミニゲームは、その速度ルールを保持します。 その描画、ジャンプ、および衝突コードは、小さな教育の実装です。 ラボを開く 新しいコードを表示し、同じ速度チェックを実行するには。
ターゲットを自分で検査するには、次の手順に従います ブラウザ接続手順 を使用して 恐竜のページ. エージェントにページURLとローカルデバッグエンドポイントを指定し、上記のプロンプトをコピーします。
例02•Windows計算機
% ボタンは + の後と × の後で動作が異なります。二つのルールを調べ、小さな電卓で試しましょう。
REAを使用して、Windows計算機の%ボタンを検査します。 +と×の後にルールを回復し、両方を使用する小さな電卓を作成します。
REA は、エージェントが % ボタンのコードを読むのを助けます。このコードは二つのルールを使います。
10% of 200 = 20 → 200 + 20 = 220
200 × 0.1 = 20
下に二つのルールを再現しました。+ または × を選び、% を押してから = を押します。
10%の200=20. 次に、200+20=220。
この例では, previous = 200 と current = 10.
if (operation == multiply || operation == divide) {
percent = current / 100;
} else {
percent = current * previous / 100;
}
インストールされているアプリから作業中の%ボタンへ
ms-calculator:. 次に、エージェントはインストールされているアプリのライブラリを選択します。
100.
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
#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の公開ソースからの名前を使用しています。
公開済みのアプリやゲームの機能を、コードと検証結果とともに紹介します。
アンドロイド*APK分析
Aegis の公開 APK で 6 桁のログインコードを追い、デモの時計を動かして 30 秒ごとに変わる理由を確かめます。
Androidのケーススタディを読むElectron•機能トレース
Notion に同梱された JavaScript からシステムのクリップボードまでたどり、コピーがリッチなブロックデータを保持する仕組みを調べます。
Notionのケーススタディを読むネイティブ-リコンストラクション
1996 年の Windows ゲームで、ボールの位置が左右の音に変わる仕組みを復元します。
DX-Ballのケーススタディを読むあなたの最初の調査
私たちのノートの例をダウンロードし、そのCSVエクスポートをトレースし、一つの変更された入力を確認してください。
対象の種類ごとに、セットアップと最初の調査を案内します。
REAを使用して検査する https://rea.tools/. 私のためにこのウェブサイトを複製します。
はい、これ。
実行可能ファイルからこのゲームを再構築するには、REAを使用します。 Cでゲームプレイロジックを回復し、オリジナルに対してテストします。