x64dbg(デバッガー)は動いているプログラムを観察する

要約

Windows のプログラム向けのデバッガーで、六十四ビットも三十二ビットも扱える。実行中のバイナリが実際に何をしているかを見られる。ブレークポイント、読み書きできるメモリ、動的な解析、そして拡張の仕組み。

おすすめ
ソフト名
x64dbg(デバッガー)
バージョン
2026.05.27
料金
無料
オープンソース
オープンソース
OS
Windows
公式サイト
https://x64dbg.com/
更新日時
2026-10-14 22:00

ソースコードは「起きるべきこと」を語る

プログラムを読むことは理解の一つの方法で、動かして見ることはもう一つの方法だ。ソースの付かないバイナリにとっては、動かして見ることが唯一の方法になる。デバッガーはその二つ目のための道具であり、選んだ場所でプログラムを止め、その瞬間のあらゆる状態を見せ、一命令ずつ先へ進ませる。x64dbg は Windows のプログラム向けのデバッガーで、六十四ビットも三十二ビットも扱う。不透明な実行ファイルを、観察できる判断の連なりに変える道具だ。

画面が重さを引き受ける

デバッグは一度に大量の情報を生み、その並べ方が、この作業が成り立つかどうかを決める。x64dbg は逆アセンブル、レジスター、メモリ、呼び出しの積み重ねを同時に見える窓として並べるので、命令とその結果の関係は「探す」ではなく「見る」になる。これは見た目の話ではない。脈絡をタブの奥に隠すデバッガーは、利用者に状態を頭の中に置けと強いるが、人の記憶はそれを置く場所としては最悪だ。

ブレークポイントと、それが強いる規律

中心の操作は、選んだ場所で実行を止めて周りを見渡すことだ。ソフトウェアのブレークポイント、ハードウェアのもの、条件付きの形がそろっている。兴味のある瞬間は一つのアドレスではなく、ある条件の下で到達するアドレスであることが多いからだ。値を監視し、変わったときだけ止めるというのは、千件の出来事の記録を読むことと、何かを壊した一件を見ることの違いになる。

逆アセンブルとレジスターが並ぶ x64dbg の主画面

読み、書き換えられるメモリ

プログラムの状態はメモリにあり、それを正確に表示し、意図して変更できるデバッガーは、仮説を試す手段になる。一バイト変えて、分岐が反対へ行くかを見る。緩衝領域を調べ、プログラムが思っている長さと実際に届いた長さが合っているかを見る。ここが、デバッグと当て推量を分ける部分だ。動いているプログラムに対して試せる仮説は、もう意見ではない。

手元と遠隔のセッション

目の前の機械のプログラムを調べるのが普通の場合は多い。別の場所で動くプログラムを調べるのは、不具合が特定の system でしか再現しないとき、あるいは調べられる側のソフトを邪魔してはいけないときに現れる。どちらも支えるということは、同じ調査が、都合のよい環境と必要な環境の間を、道具を替えずに移れるということだ。

方法としての動的な解析

静的な検査はファイルを読み、そこから推し量る。動的な解析は実行して観察する。デバッガーは後者のための道具であり、静的に読むだけでは答えられない問いに答える。この入力で実際にどの分岐が取られるか、何がいつ読み込まれるか、データが壊れているとき実行はどこで止まるか。安全の仕事では、ファイルに書かれず実行時に組み立てられる振る舞いを見る唯一の手段になることが多い。

ブレークポイントの設定と条件による停止

拡張、解析はいつも個別だから

調査にはそれぞれ形があり、デバッガーがあらゆる形に向けた機能を同梱することはできない。拡張の仕組みが、道具を課題のほうへ育てる。荷を解くための手順、繰り返す検査のためのスクリプト、ある形式に合わせた表示。結果として同じデバッガーが、メモリの不具合を追う開発者にも、見知らぬバイナリを地図にする研究者にも役立ち、どちらも相手の要求のために代価を払わない。

ここでのオープンソースは論点になる

他のソフトを調べる道具にとって、オープンソースであることはライセンスの話にとどまらない。デバッガー自身を、信じるのではなく確かめられるという意味だ。この道具が自分と解析対象のあいだに座るなら、それは理にかなった要求である。さらに、珍しい調べ方のために道具を変えられ、提供者が手間に値すると判断するのを待たなくてよいという意味でもある。

誰が、何のために使うか

開発者は、ソースだけでは説明のつかない停止の理由を探すのに使う。とくに自分が書いていないコードで。安全の研究者は、見知らぬバイナリが何をするのかを理解するのに使う。悪意ある振る舞いか、単に文書のない振る舞いかに関わらず。学習する人は、翻訳されたプログラムが実際どう動くかを見るのに使う。どれだけ読んでも伝わらない授業だ。共通するのは、仮定するのではなく観察したいという必要である。

編集できるメモリの表示

利用者に求めるもの

これは対象を隠す道具ではない。アセンブリを読むこと、メモリの配置、呼び出しの作法が語彙であり、それを持たない人には、画面は不親切なまでに正直に見える。文書も手引きもあり、時間をかける価値がある。代わりになるのは、より簡単なデバッガーではなく、その問いにまったく答えられない状態だからだ。知識に報い、同時にゆっくり教える道具である。

範囲についての妥当な立場

Windows のデバッガーであり、各 platform へ薄く広がるのではなく、その仕事を徹底して行う。無料でオープンソースであり、研究の道具ではこれが効く。使えるかどうかが予算の承認に左右されるべきではないからだ。逆コンパイラーでも、逆アセンブルの一式でも、悪意あるソフトの隔離環境でもない。作業の流れの中で「プログラムが動き、誰かが見ている」部分を受け持つ。ずいぶん狭い説明だが、その部分は結局とても多くの仕事の中心になる。

呼び出しの積み重ねと実行の制御

入れたままになる理由

デバッガーの多くはめったに開かれず、開かれたときには極めて重要になる。残るかどうかを決めるのは、必要なその日にどれだけ道をふさがないかだ。バイナリを渡して素早く始まるか、窓が記憶の期待する位置にあるか、目の前の問題に向けた拡張がすでにあるか。x64dbg は実際に使う人たちが作っており、それはそうした細部に表れる。予告なく現れる問いに対して、既定の答えになった実務的な理由もそこにある。

x64dbg(デバッガー)ダウンロード
対応OS: Windows