Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
apk-medit — デバッグ可能なAPKに対してrootやNDKを必要としないメモリ検索・パッチツール | Kitploit
ツール/GitHubGitHub/sterrasec/apk-medit
Androidセキュリティメモリフォレンジックペネトレーションテストモバイルセキュリティバイナリ解析
GitHubsterrasec/apk-medit

apk-medit

デバッグ可能なAPKに対してrootやNDKを必要としないメモリ検索・パッチツール

リポジトリを見る
431652ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

apk-medit

GitHub release License: MIT typos workflow

Apk-medit は、root や ndk を必要としないデバッグ可能な apk 向けのメモリ検索・修正ツールです。モバイルゲームのセキュリティテストのために作成されました。多くのモバイルゲームには root 検出がありますが、apk-medit は root 権限を必要としないため、root 検出を回避せずにメモリ改変が可能です。

動機

メモリ改変はゲームにおけるチートの最も簡単な方法であり、セキュリティテストでチェックすべき項目の一つです。GameGuardian のように気軽に使えるチートツールもあります。しかし、非 root デバイスかつ CUI で利用可能なツールは存在しませんでした。そこで、セキュリティテストツールとして作成しました。iOS アプリを対象としたバージョンは sterrasec/ipa-medit です。

デモ

これは、100万回タップが必要なゲームをクリアするために apk-medit を使用したデモです。

インストール

バイナリを GitHub Releases からダウンロードし、Android デバイスの /data/local/tmp/ にプッシュしてください。

root@kitploit:~
$ adb push medit /data/local/tmp/medit
medit: 1 file pushed. 29.0 MB/s (3135769 bytes in 0.103s)

ビルド方法

make コマンドでビルドできます。Go コンパイラが必要です。ビルド完了後、adb が接続されていれば、ビルド済みバイナリを Android デバイスの /data/local/tmp/ にプッシュします。

root@kitploit:~
$ make
GOOS=linux GOARCH=arm64 GOARM=7 go build -o medit
/bin/sh -c "adb push medit /data/local/tmp/medit"
medit: 1 file pushed. 23.7 MB/s (3131205 bytes in 0.126s)

使い方

run-as コマンドを使用してターゲットアプリが使用するファイルを読み取るため、apk-medit は debuggable 属性が有効になっているアプリでのみ使用できます。debuggable 属性を有効にするには、AndroidManifest.xml を開き、application ノードに次の XML 属性を追加します。

root@kitploit:~
android:debuggable="true"

また、sterrasec/apkutil を使用すると、AndroidManifest.xml を編集せずに debuggable 属性を簡単に有効にできるので便利です。

root@kitploit:~
$ apkutil debuggable <target-apk-name>.apk

run-as コマンドを実行すると、自動的にディレクトリが変更されます。そのため、/data/local/tmp/ から medit をコピーします。medit を実行するとインタラクティブプロンプトが起動します。

root@kitploit:~
$ adb shell
$ pm list packages # to check <target-package-name>
$ run-as <target-package-name>
$ cp /data/local/tmp/medit ./medit
$ ./medit

メモリ書き込み時に ptrace を使用しない選択もできます。これにより ptrace によるデバッガ検出を回避できますが、SELinux のため Android 10 以降では動作しません。

root@kitploit:~
$ ./medit -without-ptrace

コマンド

インタラクティブプロンプトで使用できるコマンドは以下の通りです。

find

メモリ上で指定された整数を検索します。

root@kitploit:~
> find 999982
Search UTF-8 String...
Target Value: 999982([57 57 57 57 56 50])
Found: 0!
------------------------
Search Word...
parsing 999982: value out of range
------------------------
Search Double Word...
Target Value: 999982([46 66 15 0])
Found: 1!
Address: 0xe7021f70

データ型を指定することもできます(string, word, dword, qword など)。

root@kitploit:~
> find dword 999996
Search Double Word...
Target Value: 999996([60 66 15 0])
Found: 1!
Address: 0xe7021f70

filter

現在の検索結果に一致する前回の検索結果をフィルタリングします。

root@kitploit:~
> filter 993881
Check previous results of searching dword...
Target Value: 993881([89 42 15 0])
Found: 1!
Address: 0xe7021f70

patch

検索で見つかったアドレスに指定された値を書き込みます。

root@kitploit:~
> patch 10
...
Successfully patched!

ps

ターゲットプロセスを検索し、1つだけの場合はそれをターゲットとして指定します。ps は起動時に自動実行されます。

root@kitploit:~
> ps
Package: jp.sterrasec.tap1000000, PID: 4398
Target PID has been set to 4398.

attach

ps によってターゲット PID が設定されている場合、ターゲットプロセスにアタッチし、ptrace でアプリ内のすべてのプロセスを停止します。

root@kitploit:~
> attach
Target PID: 4398
Attached TID: 4398
Attached TID: 4405
Attached TID: 4407
Attached TID: 4408
Attached TID: 4410
Attached TID: 4411
Attached TID: 4412
Attached TID: 4413
Attached TID: 4414
Attached TID: 4415
Attached TID: 4418
Attached TID: 4420
Attached TID: 4424
Attached TID: 4429
Attached TID: 4430
Attached TID: 4436
Attached TID: 4437
Attached TID: 4438
Attached TID: 4439
Attached TID: 4440
Attached TID: 4441
Attached TID: 4442

ターゲット PID が設定されていない場合は、コマンドラインで指定できます。

root@kitploit:~
> attach <pid>

detach

アタッチされたプロセスからデタッチします。

root@kitploit:~
> detach
Detached TID: 4398
Detached TID: 4405
Detached TID: 4407
Detached TID: 4408
Detached TID: 4410
Detached TID: 4411
Detached TID: 4412
Detached TID: 4413
Detached TID: 4414
Detached TID: 4415
Detached TID: 4418
Detached TID: 4420
Detached TID: 4424
Detached TID: 4429
Detached TID: 4430
Detached TID: 4436
Detached TID: 4437
Detached TID: 4438
Detached TID: 4439
Detached TID: 4440
Detached TID: 4441
Detached TID: 4442

dump

hexdump のようにメモリダンプを表示します。

root@kitploit:~
> dump 0xf0aee000 0xf0aee300
Address range: 0xf0aee000 - 0xf0aee300
----------------------------------------------
00000000  34 32 20 61 6e 73 77 65  72 20 28 74 6f 20 6c 69  |42 answer (to li|
00000010  66 65 20 74 68 65 20 75  6e 69 76 65 72 73 65 20  |fe the universe |
00000020  65 74 63 7c 33 29 0a 33  31 34 20 70 69 0a 31 30  |etc|3).314 pi.10|
00000030  30 33 20 61 75 64 69 74  64 20 28 61 76 63 7c 33  |03 auditd (avc|3|
00000040  29 0a 31 30 30 34 20 63  68 61 74 74 79 20 28 64  |).1004 chatty (d|
00000050  72 6f 70 70 65 64 7c 33  29 0a 31 30 30 35 20 74  |ropped|3).1005 t|
00000060  61 67 5f 64 65 66 20 28  74 61 67 7c 31 29 2c 28  |ag_def (tag|1),(|
00000070  6e 61 6d 65 7c 33 29 2c  28 66 6f 72 6d 61 74 7c  |name|3),(format||
00000080  33 29 0a 31 30 30 36 20  6c 69 62 6c 6f 67 20 28  |3).1006 liblog (|
00000090  64 72 6f 70 70 65 64 7c  31 29 0a 32 37 31 38 20  |dropped|1).2718 |
000000a0  65 0a 32 37 31 39 20 63  6f 6e 66 69 67 75 72 61  |e.2719 configura|
000000b0  74 69 6f 6e 5f 63 68 61  6e 67 65 64 20 28 63 6f  |tion_changed (co|
000000c0  6e 66 69 67 20 6d 61 73  6b 7c 31 7c 35 29 0a 32  |nfig mask|1|5).2|
000000d0  37 32 30 20 73 79 6e 63  20 28 69 64 7c 33 29 2c  |720 sync (id|3),|
000000e0  28 65 76 65 6e 74 7c 31  7c 35 29 2c 28 73 6f 75  |(event|1|5),(sou|
000000f0  72 63 65 7c 31 7c 35 29  2c 28 61 63 63 6f 75 6e  |rce|1|5),(accoun|

exit

medit を終了するには、exit コマンドまたは Ctrl-D を使用します。

root@kitploit:~
> exit
Bye!

テスト

make コマンドでテストコードを実行できます。

root@kitploit:~
$ make test

ライセンス

MIT ライセンス

ツールをダウンロード