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

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

要約

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

詳細

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

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

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

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

CheatEngineをインストール

Cheat Engine

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