2017-7-2

ブラウザのJavascript内の変数をメモリプロセスエディタで弄る方法

雑な技術メモ

某ブラウザソーシャルゲームでメモリを直接書き換えることによりドロップを弄る方法が過去に話題になり、それに関して半年くらい前に興味が湧いて調べた。それに関するメモ。

要約

  • モダンブラウザは変数をメモリに入れる際に(恐らく)暗号化されているので、Firefox の過去バージョン等をインストール
  • CheatEngine をインストール

詳細

Firefox の過去バージョンをインストールする

調査した 2016.12.7 時点のモダンブラウザ(Chrome/Firefox/IE11)でメモリを弄ろうとした所、変数の値でメモリ内を検索しても全くヒットしなかった。恐らく各ブラウザの Javascript エンジンが変数をメモリ内に格納する際に暗号化するようになったのかと考えられる。

Chrome/IE は旧バージョンをインストールすることが難しいが、Firefox に関してはこちらから旧バージョンをダウンロードする事が可能。
バージョン 37.0.2 で試した所正常に変数の値が検索に引っ掛かるようになった。

ちなみに Flash に関しては全く変数の暗号化等されてなかったので真面目に作るなら自前で重要な値を変数に保存する際は暗号化しなければならない。今更 Flash で何か作る機会があるのかは知らない。

CheatEngine をインストール

Cheat Engine

使用法はそこらへんにいくらでも転がってるので省略