
PE/ELFバイナリ向けの逆アセンブラ、デコンパイラ、x64dbgスタイルのデバッガ。IDAスタイルのリスティング、関数グラフ、Luaプラグイン、CLI、そしてAI駆動分析のための組み込みMCPサーバーを備えています。
逆アセンブラ、デコンパイラ、デバッガを一つに — windows、linux、macos、x86、x64、arm64 に対応
ida スタイルのリスティング、デコンパイラ、関数グラフ、x64dbg スタイルのデバッガ、lua プラグイン、そしてバイナリに AI を向けられる組み込み MCP サーバー — 小さな一つのプログラム、すべてベンダリング済み、ビルドに何もインストール不要。

ceasta は同じコードを生のバイト列から読みやすい c まで表示するので、必要なレベルまでいつでも降りられます:
; assembly - the real instructions // pseudocode (f5) - reconstructed c
checksum proc int checksum(int rdi)
movzx edx, byte ptr [rdi] {
test dl, dl rdx = *(char*)rdi;
je loc_1191 if (rdx == 0) {
mov eax, 0x1505 return 0x1505;
loc_1179: }
mov ecx, eax rax = 0x1505;
shl ecx, 5 do {
add eax, ecx rax = rax + (rax << 5) + rdx;
add rdi, 1 rdi = rdi + 1;
movzx edx, dl rdx = *(char*)rdi;
add eax, edx } while (rdx != 0);
movzx edx, byte ptr [rdi] return rax;
test dl, dl }
jne loc_1179
ret
loc_1191:
mov eax, 0x1505
ret
これは djb2 です(5381 は 0x1505、(h << 5) + h は h * 33)。疑似コード内の名前をクリックし、理解したとおりに名前を付けてください — 関数上の y でプロトタイプが付与され、n で変数の名前が変更されます:
unsigned checksum(const char* s)
{
rdx = *(char*)s;
if (rdx == 0) {
return 0x1505;
}
h = 0x1505;
do {
h = h + (h << 5) + rdx;
s = s + 1;
rdx = *(char*)s;
} while (rdx != 0);
return h;
}
逆コンパイラはベストエフォートです(x86 / x64、構造体はまだ未対応)— ルーチンを素早く把握するのに最適ですが、信頼できる情報源はあくまでリスティングです。
リリースページから入手してください:
| ファイル | プラットフォーム | 内容 |
|---|---|---|
ceasta-x.y.z-setup.exe | windows 10/11 x64 | フルアプリ、ユーザー単位でインストール(管理者権限不要)、スタートメニュー + オプションの「ceasta で開く」 |
ceasta-x.y.z-windows-x64.zip | windows x64 | フルアプリ、ポータブル — 解凍して ceasta.exe を実行 |
ceasta-x.y.z-linux-x64.AppImage | linux x64 | フルアプリ — chmod +x して実行(linux の場合) |
ceasta-cli-x.y.z-linux-x64.tar.gz | linux x64 | ceasta-cli + プラグイン:解析、逆アセンブル、逆コンパイラ、スクリプティング、ターミナルデバッガ、バイナリ差分、シグネチャ、および MCP サーバー |
ceasta-x.y.z-macos.dmg | macos 11+、apple silicon および intel | アプリ、デバッガはまだ未対応 — Applications にドラッグ(mac の場合) |
ceasta-cli-x.y.z-macos.tar.gz | macos 11+、apple silicon および intel | ceasta-cli + プラグイン、上記すべてからデバッガを除いたもの |
nで名前変更、yで型またはプロトタイプを設定。shift+f5でリスティングの隣に表示kunaスイッチが追加され、同じ関数の出力が表示され、行はリスティングにリンクされ、arm64にも対応。詳細は下記rdi == 3)、変数へのウォッチポイント、ステップイン / ステップオーバー / ステップアウト、ステップバック、カーソルまで実行、一時停止、レジスタ、スタック、コールスタック、メモリマップ、ライブメモリ
call decrypt "...")、間接呼び出しのターゲットをxrefとして記録(trace)ceasta-cli dbg:ターミナルで同じデバッガsigmake / sigapply)ceasta-cli mcpでAI(Claude Code、Cursorなど)を開いているバイナリに接続 — すぐに使えるプロンプト付きで、名前は適用前にレビュー可能。AIを接続するを参照.i64のように:ctrl+sで<file>.ceastaに名前、コメント、型、ブレークポイント、およびプログラム自体を書き込み — 後で開くことも、別のマシンで元のファイルなしで開くことも可能。閉じるときは未保存の作業を破棄する前に確認.mapファイル、IDA / Ghidraからインポート(scripts/内のスクリプトを使用)ceasta-cli1つのウィンドウ、浮いているものはなし:

デコンパイラ(f5)、ここではリスティングの隣に表示(shift+f5) — 一方をクリックすると他方も移動:

| key | what | key | what |
|---|---|---|---|
| ctrl+o | ファイルを開く(または .ceasta) | space | リスト表示 / グラフ表示 |
| g | アドレスまたは名前へジャンプ | f5 / shift+f5 | 疑似コード / リスト表示の隣へ |
| ctrl+f | 名前、インポート、文字列などを検索 | alt+b | バイトを検索 |
| enter / ダブルクリック | オペランドをたどる | f9 | デバッグ開始 / 続行 |
| esc / ctrl+enter | 戻る / 進む | f7 / f8 | ステップイン / ステップオーバー(一度に n 回:ステップボタン横のボックス) |
| n | 名前変更(疑似コード内でも) | ctrl+f9 / shift+f7 | ステップアウト / ステップバック |
| y | 型 / プロトタイプ(疑似コード) | f4 | カーソルまで実行 |
| ; | コメント | f2 | ブレークポイント(データ上:ウォッチ) |
| x | ここへの参照 | shift+f2 | ブレークポイント条件 |
| alt+m / ctrl+m | ブックマーク / ブックマーク一覧 | f12 | 一時停止 |
| ctrl+z / ctrl+y | 元に戻す / やり直す | ctrl+s | 保存 |
| ctrl+shift+p | すべてのアクション | f1 | すべてのショートカット |
プラグインは plugins/(プログラムの隣)または独自のプラグインフォルダ(%APPDATA%\ceasta\plugins、~/.config/ceasta/plugins)にある lua ファイルです。プラグインメニューにコマンドを追加します。5 つが同梱されています:ファイルサマリー、暗号ファインダー、ラッパーネーマー、文字列レポート、コールトレーサー(デバッガー)。
ceasta.register_command("Count calls", function()
local n = 0
for _, fn in ipairs(ceasta.functions()) do
n = n + #ceasta.xrefs_to(fn.addr)
end
ceasta.log(n .. " references to functions")
end)
API 全体は lua scripting guide にあります。出力パネルには lua プロンプトもあります — ceasta.name(ceasta.here()) を試してみてください。