Skip to content

xxvw/process-memory-debugger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Process Memory Debugger

macOS ARM64向けのローカルプロセスメモリデバッグツールです。 自分が管理するアプリやMOD検証環境で、対象プロセスを選択し、値候補をスキャンして読み書きできます。

Build

swift build

Run:

.build/debug/process-memory-debugger

For normal GUI launch on macOS, package and open the app bundle:

swift build -c release
sh scripts/package-app.sh release
open "dist/Process Memory Debugger.app"

The package script signs the local app with the debugger entitlement required by task_for_pid.

Usage

  1. 対象アプリを起動します。
  2. このツールを起動し、プロセス一覧から対象アプリを選ぶかPIDを入力します。
  3. Attachを押します。
  4. 現在値をValueに入力し、Initial Scanを押します。
  5. 対象アプリ側で値を変化させ、新しい現在値を入力してRefine Scanを押します。
  6. 候補が十分に少なくなったら行を選択し、Writeに新しい値を入力してWrite Selectedを押します。

Limitは初回スキャンの候補数上限です。0または空欄なら無制限、正の数ならその候補数に達した時点で停止します。

Address Book

右側のAddress Bookで、アプリや用途ごとにフォルダを作り、見つけたアドレスを保存できます。

  • Folder nameに名前を入れてNew Folderを押すとフォルダを作成します。
  • スキャン候補を選び、Address nameMemoを入れてSave Candidateを押すと、現在のフォルダに保存します。
  • 保存済みアドレスを選んでRead Savedを押すと現在値を読みます。
  • 保存済みアドレスを選び、上部のWriteに値を入れてWrite Savedを押すと、そのアドレスへ書き込みます。

保存先は次のJSONです。

~/Library/Application Support/ProcessMemoryDebugger/address-book.json

フォルダ、名前、アドレス、型、メモ、元プロセス名を保存するため、複数のローカルアプリのメモリデバッグに同じ形式で使えます。

macOS Permissions

他プロセスのメモリを読むにはtask_for_pidが成功する必要があります。 失敗する場合は、次を確認してください。

  • System SettingsでDeveloper Tools関連の許可を有効にする。
  • scripts/package-app.shで作った.appから起動し、デバッグentitlement付き署名を使う。
  • 対象プロセスが自分のユーザーで起動していることを確認する。
  • SIPやHardened Runtimeの設定により、配布版アプリでは読み取り自体が拒否される場合があります。

このツールはローカルデバッグ支援用です。オンラインプレイ、保護機構回避、第三者環境での利用は対象外です。

Tests

swift test

About

macOS process memory scanner and editor for local debugging

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors