
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
that's 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 후 실행 (리눅스에서) |
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로 드래그 (맥에서) |
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-cli하나의 창, 떠다니는 것은 없음:

디컴파일러(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 파일입니다. 플러그인 메뉴에 명령을 추가합니다. 다섯 가지가 함께 제공됩니다: 파일 요약, 암호 탐지기, 래퍼 명명기, 문자열 보고서, 호출 추적기 (디버거).
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 스크립팅 가이드에 있습니다. 출력 패널에는 lua 프롬프트도 있습니다 — ceasta.name(ceasta.here())를 사용해 보세요.