Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
idasql — Vibe Reverse Engineer with IDA SQL: 라이브 가상 테이블을 통한 SQL 기반 IDA 인터페이스 | Kitploit
도구/GitHubGitHub/allthingsida/idasql
Static AnalysisReverse EngineeringDebuggersMalware AnalysisBinary AnalysisAI-Assisted ReversingFirmware Analysis
GitHuballthingsida/idasql

idasql

Vibe Reverse Engineer with IDA SQL: 라이브 가상 테이블을 통한 SQL 기반 IDA 인터페이스

저장소 보기
3632025일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

IDASQL

모든 AI 에이전트가 컴파일된 바이너리를 이해할 수 있게 하세요.

IDASQL은 Elias Bachaalany가 만든 IDA Pro 데이터베이스용 SQL 인터페이스입니다. 함수, 상호 참조, 문자열, 타입, 임포트, 디스어셈블리, 디컴파일을 다루는 30개 이상의 가상 테이블을 제공합니다. 코딩 에이전트의 /idasql 스킬을 사용하면 완전히 헤드리스로 작업할 수 있습니다. 에이전트가 백그라운드에서 IDA를 실행해 줍니다. 또는 IDA의 UI를 열고 코딩 에이전트와 협력하여 함께 리버스 엔지니어링할 수도 있습니다. IDAPython도, 스크립팅도 필요 없습니다. 오직 SQL만으로 가능합니다.

왜 SQL인가요? SQL은 모든 AI 에이전트가 이미 구사하는 보편적인 질의 언어입니다. IDASQL은 에이전트에 구애받지 않습니다. Claude, ChatGPT, Copilot, Cursor, 맞춤형 에이전트, 또는 에이전트가 전혀 없어도 됩니다. SQL 쿼리를 실행할 수 있는 도구라면 무엇이든 바이너리를 분석할 수 있습니다.

  • 인덱싱 불필요. IDA에는 이미 모든 것이 인덱싱되어 있습니다. 쿼리는 실시간 데이터베이스에 대해 즉시 실행됩니다.
  • 스크립팅 불필요. 30개 이상의 SQL 테이블이 수백 줄의 IDAPython을 대체합니다.
  • 헤드리스, GUI, 또는 둘 다. 완전한 헤드리스 모드, IDA UI 내부, 또는 여러 데이터베이스를 동시에 연결하여 실행할 수 있습니다.
  • 읽기와 쓰기. IDASQL은 단순한 쿼리 도구가 아닙니다. IDA 데이터베이스의 가장 중요한 측면을 읽고 쓸 수 있습니다: 디컴파일 주석, 타입 복구, 타입 적용(구조체 및 공용체 오프셋), 타입 캐스트 감지, 그리고 올바른 프로토타입을 자동으로 추측하고 업데이트하는 작업입니다.

IDASQL은 하나 이상의 데이터베이스에서 동시에 주석을 분석하고 상호 참조하며 전송하는 것을 지원합니다. 할 수 있는 일은 오직 상상력과 사용하는 모델의 성능에 의해서만 제한됩니다.

작동 방식

IDA Pro에는 이미 함수, 문자열, 상호 참조, 타입 등을 설명하는 자체 데이터베이스 형식이 있습니다. IDASQL은 이러한 내부 구조를 라이브 SQL 가상 테이블에 매핑합니다. 별도의 내보내기나 인덱싱 단계가 없습니다. 쿼리는 IDA 데이터베이스에 대해 직접 실행되며 변경 사항이 실시간으로 반영됩니다.

모드시작 방법최적 용도
독립형 CLIidasql -s binary.i64 -i직접 SQL, 스크립팅, 파이프라인
IDA 플러그인IDA의 CLI 드롭다운에서 idasql 선택GUI 내부 SQL, 실시간 데이터베이스
스킬 워크플로우코딩 CLI에서 /idasql:connectAI 기반 분석 -- 에이전트가 SQL 쿼리를 자율적으로 실행
You / Agent --> Natural language or SQL
root@kitploit:~
                    |
              /idasql skills (LLM translates intent to SQL)
                    |
                 IDASQL  -->  IDA database(s)
                    |
                 Results  -->  LLM summarizes & reasons
root@kitploit:~
The source input for chunk 3 is empty. Please provide the Markdown content you'd like translated.```
$ idasql -s WerFaultTool.exe.i64 -q "SELECT * FROM funcs LIMIT 5"
Opening: WerFaultTool.exe.i64...
Database opened successfully.

+------+-------------------------------------------------+------+----------+-------+
| addr | name                                            | size | end_addr | flags |
+------+-------------------------------------------------+------+----------+-------+
| 16   | WerFaultTool.AboutForm::.ctor                   | 13   | 29       | 4096  |
| 32   | WerFaultTool.AboutForm::Dispose                 | 30   | 62       | 4096  |
| 64   | WerFaultTool.AboutForm::InitializeComponent     | 295  | 359      | 4096  |
| 400  | WerFaultTool.WerFaultGUI::.ctor                 | 936  | 1336     | 4096  |
| 1344 | WerFaultTool.WerFaultGUI::CreateDynamicControls | 231  | 1575     | 4096  |
+------+-------------------------------------------------+------+----------+-------+
5 row(s)

명령 하나. 즉각적인 결과. 스크립팅 불필요.

빠른 시작

IDASQL CLI와 플러그인을 설치한 후, 선호하는 코딩 에이전트를 시작하고 프롬프트로 리버스 엔지니어링을 시작하세요. IDASQL은 완전히 헤드리스로 실행됩니다 -- 에이전트가 IDA Pro를 오케스트레이션합니다: 시작, 분석, 디컴파일, 주석 달기, 저장 -- 또는 실시간으로 에이전트와 협업할 수 있는 IDA GUI 내부에서 호스팅됩니다.

시작하기

선호하는 코딩 에이전트(예: Claude Code)를 열고 다음을 입력하세요:``` /idasql:connect Please open sample_malware.exe in the background and let's analyze it together.

root@kitploit:~
에이전트는 백그라운드에서 IDASQL을 헤드리스로 시작합니다. 이 시점부터 데이터베이스와 자연스럽게 대화하세요. 예를 들어:```
/idasql:annotations Fully annotate the function I'm looking at, also use the decompiler skill.

모델은 함수를 이해하기 위한 최상의 접근 방식을 자율적으로 추론하여 완전히 리버스 엔지니어링하고 주석을 답니다.

완료되면 에이전트에게 저장하고 종료하도록 요청하세요:``` /idasql:connect Please save all databases and shut down IDASQL.

root@kitploit:~
### 여러 데이터베이스 작업

두 개 이상의 데이터베이스를 동시에 작업할 수 있습니다. 에이전트에 프롬프트를 입력하세요:```
/idasql:connect In this folder, there are many *.exe files. Please use parallel agents to open IDASQL in the background and report how many functions each has.

그런 다음 후속 조치를 취하십시오:``` Tell me, how many strings all these databases have in common?

root@kitploit:~
에이전트는 동시에 모든 데이터베이스에서 작동합니다. 데이터베이스 간에 주석을 상호 참조하고, 비교하고, 전송할 수 있습니다.

### IDA UI 사용하기

위의 모든 기능은 IDA GUI에서도 동일하게 작동합니다. 열린 IDA 세션에서 에이전트를 사용하려면:

1. IDA의 `idasql>` 프롬프트에 다음을 입력합니다:   ```
   .http start
  1. IDA 출력: ``` IDASQL HTTP server: http://127.0.0.1:8174
    root@kitploit:~
  2. 코딩 에이전트에서: ``` /idasql:connect Let's work with this database: http://127.0.0.1:8174
    root@kitploit:~

이제 IDASQL과 IDA UI가 연결되어 함께 작동합니다.

설치

코딩 에이전트 플러그인

IDASQL 스킬은 코딩 에이전트가 자연어를 통해 IDA 데이터베이스를 완전히 제어할 수 있게 해줍니다.

  • Claude Code -- 주제별 15개 스킬을 갖춘 완전한 플러그인으로, allthingsida/idasql-skills 마켓플레이스에서 설치합니다.
  • GitHub Copilot CLI -- 동일한 플러그인을 통해 IDASQL 스킬도 지원합니다.
  • Codex (OpenAI) -- 동일한 플러그인 패키징으로 스킬을 지원합니다. Codex 설치 단계는 idasql-skills 저장소를 참조하세요.

사전 요구 사항

  1. IDA Pro가 설치되어 있고 해당 디렉터리가 PATH에 포함되어 있어야 합니다 (Windows의 경우 ida.exe, macOS/Linux의 경우 ida)
  2. idasql을 Releases에서 다운로드하여 IDA 바이너리 옆에 배치합니다
  3. 설정 확인: 명령줄에서 idasql --version이 작동해야 합니다

설치 (Claude Code)

Claude Code 안에서 다음을 실행합니다:```text /plugin marketplace add allthingsida/idasql-skills

root@kitploit:~
그런 다음 해당 마켓플레이스에서 `idasql` 플러그인을 설치합니다. Codex 및 기타 설치 경로는 [idasql-skills README](https://github.com/allthingsida/idasql-skills#installation)를 참조하세요.

#### 스킬

| 스킬 | 설명 |
|-------|-------------|
| `connect` | IDA 데이터베이스에 연결: CLI, HTTP 서버, 세션 부트스트랩, 스킬 라우팅, 전역 계약. |
| `disassembly` | IDA 디스어셈블리 쿼리: 함수, 세그먼트, 명령어, 블록, 피연산자, 그래프. |
| `data` | IDA 문자열, 바이트 및 바이너리 데이터 쿼리: 검색, 재구축, 바이트 패턴. |
| `xrefs` | IDA 상호 참조 분석: 호출자, 피호출자, 임포트, 데이터 참조, grep 검색. |
| `decompiler` | IDA 함수 디컴파일: 의사 코드, ctree AST, 지역 변수, 레이블. |
| `annotations` | IDA 데이터베이스 편집: 주석, 이름 변경, 타입, 북마크, enum/구조체 렌더링. |
| `types` | IDA 타입 시스템: 구조체, 공용체, 열거형, typedef, parse_decls 생성/수정/적용. |
| `debugger` | IDA 디버거: 중단점, 바이트 패칭, 조건, 패치 인벤토리. |
| `storage` | netnode_kv를 통한 IDA 데이터베이스의 영구 키-값 저장소. |
| `idapython` | idasql을 통한 IDAPython 실행: 스니펫, 샌드박스, 출력 캡처. |
| `functions` | idasql SQL 함수 전체 참조 카탈로그. |
| `analysis` | IDA 바이너리 분석: 트리아지, 보안 감사, 암호화/네트워크 탐지, 다중 테이블 쿼리. |
| `resource` | IDA 바이너리 재소싱: 재귀적 주석, 구조 복구, 타입 재구성. |
| `ui-context` | 실시간 IDA UI 컨텍스트 캡처: 화면, 선택 항목, 위젯 포커스, 주소 앵커. |

#### 예제 프롬프트```
/idasql:analysis analyze this binary; tell me the most called functions.
/idasql:data find functions that reference "password" strings and rank by xrefs.
/idasql:xrefs show callers of CreateFileW and summarize error handling.
/idasql:data identify suspicious hardcoded URLs and the functions that reference them.

/idasql 스킬은 코딩 CLI에서 분석을 구동합니다. IDAPython 스크립팅이 필요 없습니다.

CLI 도움말``` $ idasql Error: Database path required (-s)

idasql v0.0.18 - SQL interface to IDA databases

Usage: idasql -s [-q ] [-f ] [-i] [--export ]

Options: -s IDA database (.idb/.i64) OR raw binary (.exe/.dll/firmware/etc.) — raw binaries trigger fresh idalib analysis and string-list rebuild — legacy 32-bit .idb files upgrade to .i64 and require an explicit reopen --token Auth token for HTTP/MCP server mode (if server requires it) -q Execute SQL query or semicolon-separated script -f Execute SQL from file -i Interactive REPL mode -w, --write Save database on exit (persist changes) --export Export tables to SQL file (local mode only) --export-tables=X Tables to export: * (all, default) or table1,table2,... --http [port] Start HTTP REST server (default: 8080, local mode only) --bind Bind address for HTTP/MCP server (default: 127.0.0.1) --mcp [port] Start MCP server (default: random port, use in -i mode) Or use .mcp start in interactive mode -h, --help Show this help --version Show version

Examples: idasql -s test.i64 -q "SELECT name, size FROM funcs LIMIT 10" idasql -s test.i64 -q "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;" idasql -s test.i64 -f queries.sql idasql -s test.i64 -i idasql -s test.i64 --export dump.sql idasql -s test.i64 --http 8080 idasql -s sample.exe --http # raw PE: idalib auto-analyzes, then serves SQL (default port 8080) idasql -s firmware.bin -q "SELECT * FROM binary" idasql -s test.i64 --mcp 9000

Thank you for using IDA. Have a nice day!

root@kitploit:~
레거시 32비트 `.idb` 입력은 idalib에 의해 같은 위치의 `.i64`로 업그레이드됩니다. 이러한 경우 idasql은 SQL을 제공하기 전에 종료되며, 종료 코드 `3`을 반환하고, `status:"upgraded"` 및 `reopen_with`가 포함된 JSON 객체 하나를 stdout으로 출력합니다. `-s <reopen_with>`로 동일한 작업을 반복하세요.

</details>

### 소스에서 빌드

#### 사전 요구 사항

- CMake 3.20+
- C++20 컴파일러
- IDA SDK 9.0+ (`IDASDK` 환경 변수 설정)```bash
cmake -S . -B build -DIDASQL_WITH_MCP=ON -DIDASQL_BUILD_EXAMPLES=OFF
cmake --build build --config Release

유용한 CMake 스위치:

도구 다운로드
SwitchDefaultDescription
IDASQL_WITH_MCPONfastmcpp를 통한 MCP 서버 지원을 빌드합니다. 더 작은/오프라인 빌드가 필요하거나 --mcp / .mcp가 필요하지 않을 때 비활성화하세요.
IDASQL_BUILD_CLION독립형 idasql 명령줄 도구를 빌드합니다.
IDASQL_BUILD_PLUGINONIDA 플러그인을 빌드합니다.
IDASQL_BUILD_EXAMPLESONexamples/ 아래의 예제 프로그램을 빌드합니다.

참고:

  • Hex-Rays 지원은 항상 컴파일되며 런타임에 감지됩니다. Hex-Rays를 사용할 수 없으면 디컴파일러 기반 테이블/함수는 단순히 등록되지 않습니다.
  • HTTP REST 지원은 항상 컴파일됩니다. CLI에서 --http 또는 REPL/플러그인 CLI에서 .http start를 사용하세요.
  • IDAPython SQL 실행은 컴파일되지만 기본적으로 런타임에서 비활성화됩니다. 세션별로 PRAGMA idasql.enable_idapython = 1;로 활성화하세요.
  • IDASQL_WITH_MCP=ON은 fastmcpp를 가져옵니다. OFF는 MCP 지원 및 --mcp / .mcp 명령을 제거합니다.
  • IDASQL은 로컬 일반 HTTP를 사용하므로 XSQL_WITH_THINCLIENT는 강제로 ON, HTTPLIB_USE_OPENSSL_IF_AVAILABLE는 강제로 OFF입니다.

사용 가능한 테이블

함수, 문자열, 타입, 상호 참조, 디스어셈블리, 디컴파일 등을 다루는 30개 이상의 가상 테이블.

핵심

TableDescription
funcs함수 - 이름, 주소, 크기, 끝 주소, 플래그 (INSERT/UPDATE/DELETE)
segments세그먼트 - 이름, 시작/끝 주소, 권한, 클래스 (INSERT/UPDATE/DELETE)
names명명된 위치 - 주소, 이름, 플래그 (INSERT/UPDATE/DELETE)
entries엔트리 포인트 - 내보내기/프로그램/TLS 콜백 (서수, 주소, 이름)
imports임포트 - 모듈, 이름, 주소, 서수
xrefs상호 참조 - 시작/대상 주소, 타입, is_code
blocks기본 블록 - 시작/끝 주소, func_addr, 크기
fchunks함수 청크 - 소유자가 있는 분할/테일 청크
instructions디스어셈블리 - addr, mnemonic, operands, itype, func_addr (UPDATE operand format_spec / DELETE)
instruction_operands정규화된 명령어 피연산자 - opnum, text, type, value; addr 및 func_addr로 최적화됨
heads모든 head 항목 (코드 + 데이터) - 최적화된 주소 조회/범위 탐색

문자열 및 바이트

TableDescription
strings문자열 - addr, content, length, type
bytes원시 바이트 - value/word/dword/qword 쓰기 가능 (UPDATE 패치, DELETE 되돌림), original_value, is_patched (WHERE is_patched = 1로 빠른 패치 열거)

디컴파일러

TableDescription
pseudocodeHex-Rays를 통한 디컴파일된 의사 코드
ctreeHex-Rays ctree AST 노드
ctree_lvarsHex-Rays 디컴파일의 지역 변수
ctree_call_args호출 사이트별 Hex-Rays 호출 인자 세부 정보
ctree_labelsHex-Rays ctree 레이블 (goto 대상)

타입

TableDescription
types타입 라이브러리 - 멤버가 있는 구조체, 공용체, 열거형 (INSERT/UPDATE/DELETE)
types_members구조체/공용체 멤버 세부 정보 (INSERT/UPDATE/DELETE)
types_enum_values열거형 멤버 값 (INSERT/UPDATE/DELETE)
types_func_args함수 타입 인자 세부 정보
local_types로컬 타입 라이브러리 항목

어노테이션

TableDescription
comments주석 - addr, 일반 및 반복 주석 (INSERT/UPDATE/DELETE)
bookmarks북마크 - slot, addr, description (INSERT/UPDATE/DELETE)
breakpoints중단점 - addr, type, enabled, condition (전체 CRUD)
hidden_ranges접혀 있거나 숨겨진 범위 - start/end, description, header, footer

검색

TableDescription
grep통합 엔터티 검색 테이블 (pattern, name, kind, addr, ordinal, parent_name, full_name)

데이터베이스 정보

TableDescription
binary데이터베이스 요약/개요 - 프로세서, 비트 수, 주소 범위, 개수
db_info데이터베이스 메타데이터 키-값 쌍
ida_infoIDA 분석 정보 키-값 쌍
problemsIDA 분석 문제/경고
signaturesFLIRT 시그니처 상태
fixupsFixup/재배치 항목
mappings주소 공간 매핑

저장소

TableDescription
netnode_kv영구 키-값 저장소 (netnode)

분석

TableDescription
disasm_calls호출 그래프 - 함수별 호출자/피호출자 쌍
disasm_loops루프 감지 - 헤더 블록 및 백 에지

SQL 함수

FunctionDescription
decompile(addr)주소의 함수를 디컴파일 (의사 코드 반환)
disasm_at(addr)주소의 표준 디스어셈블리 목록
get_ui_context_json()UI 컨텍스트 JSON — GUI 플러그인에서 실제 동작, CLI/idalib에서는 "해당 없음" 스텁

통합 엔터티 검색

grep 테이블을 사용하여 명명된 함수, 레이블, 세그먼트, 타입 및 멤버에 대한 구성 가능한 SQL 검색을 수행하세요.```sql -- Search anything starting with "Create" SELECT name, kind, printf('0x%X', addr) as addr FROM grep WHERE pattern = 'Create%' LIMIT 20;

-- Search anywhere in name (plain text performs a contains search) SELECT name, kind, full_name FROM grep WHERE pattern = 'File' AND kind IN ('function', 'import') LIMIT 20;

-- Find struct members SELECT name, parent_name, full_name FROM grep WHERE pattern = 'dw%' AND kind = 'member';

-- Pagination SELECT name, kind, full_name FROM grep WHERE pattern = 'Create%' ORDER BY kind, name LIMIT 20 OFFSET 20;

root@kitploit:~
## 통합

### HTTP REST API

간단한 통합을 위한 무상태(Stateless) HTTP 서버. 프로토콜 오버헤드가 없습니다.```bash
idasql -s database.i64 --http 8080

(empty)```bash curl http://localhost:8080/status curl -X POST http://localhost:8080/query -d "SELECT name FROM funcs LIMIT 5" curl -X POST http://localhost:8080/query -d "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;"

root@kitploit:~
모든 `/query` 응답은 표준 스크립트 엔벨로프를 사용합니다 — 단일 명령문 = 항목이 하나인 배열:```
{
  "success": true,
  "statement_count": <N>,
  "results": [
    { "statement_index": 0, "success": true, "columns": [...], "rows": [...], "row_count": <N>, "elapsed_ms": <ms>, "error": null },
    ...
  ],
  "row_count_total": <N>,
  "elapsed_ms_total": <ms>,
  "first_error_index": null
}

Fail-fast가 기본값입니다. 이전 실패와 관계없이 모든 문(statement)을 실행하려면 continue_on_error=true(예: ?continue_on_error=1)를 전달하세요. 각 results[i].error는 문별 실패의 표준 정보이며, first_error_index는 가장 먼저 발생한 실패를 가리키거나 null입니다. 분할기(splitter) 실패(예: 닫히지 않은 따옴표)의 경우 응답은 success:false, statement_count:0, results:[] 및 최상위 parse_error입니다.

여러 데이터베이스의 경우 별도의 인스턴스를 실행하세요:```bash idasql -s malware.i64 --http 8080 idasql -s kernel.i64 --http 8082

root@kitploit:~
엔드포인트: `/status`, `/help`, `/query`, `/shutdown`

#### REPL에서 HTTP 서버

REPL 또는 IDA 플러그인 CLI에서 대화형으로 HTTP 서버를 시작합니다:```
idasql -s database.i64 -i
idasql> .http start
HTTP server started on port 8142
URL: http://127.0.0.1:8142
...
Press Ctrl+C to stop and return to REPL.

IDA 플러그인에서 (비차단):``` idasql> .http start HTTP server started on port 8142 idasql> .http stop HTTP server stopped

root@kitploit:~
서버는 `--http`와의 충돌을 피하기 위해 임의의 포트(8100-8199)를 사용합니다.

### 자동 시작(고정)

`.pin`은 IDB(netnode `$ idasql config`)에 서버 기본 설정을 저장하므로, 해당 데이터베이스가 열릴 때마다 **IDA 플러그인이 HTTP 또는 MCP 서버를 자동 시작**합니다 — 각 데이터베이스가 안정적이고 알려진 포트를 유지하는 다중 인스턴스 구성에 유용합니다.```
idasql> .pin set http 8080        # pin HTTP at 127.0.0.1:8080 (autostart on)
idasql> .pin set mcp 0.0.0.0 9500 # bind override + port (port optional; omit or 0 = fresh random port each launch)
idasql> .pin list                 # show pinned config
idasql> .pin off http             # disable autostart but keep host/port
idasql> .pin clear all            # remove all pins

고정 후 데이터베이스를 다시 열면 서버가 자동으로 시작됩니다 — 로드 시 IDA 출력 창에서 다음을 볼 수 있습니다:``` IDASQL v0.0.18: Query engine initialized IDASQL CLI: Installed IDASQL: autostart -> IDASQL HTTP server: http://127.0.0.1:8099 Type '.http stop' to stop the server.

root@kitploit:~
`.pin`(또는 `.pin list`)은 두 서비스의 현재 구성을 표시합니다:```
idasql> .pin
Autostart pins:
  http 127.0.0.1:8099  (autostart: on)
  mcp  (not set)
  • 로드 시 자동 시작은 IDA 플러그인에서만 발생합니다. .pin 명령 자체는 CLI와 플러그인 모두에서 작동합니다(CLI는 pin을 읽고 쓰기만 합니다).
  • .http start / .mcp start에 명시적 포트가 없으면 고정된 호스트/포트를 재사용합니다.
  • CLI에서 .pin 변경 사항은 -w/--write로 시작한 경우에만 유지됩니다 (다른 IDB 편집과 마찬가지로).

MCP 서버

MCP 호환 클라이언트(Model Context Protocol, AI 도구 통합을 위한 표준)의 경우:

--mcp 및 .mcp는 기본값인 -DIDASQL_WITH_MCP=ON으로 빌드할 때 사용할 수 있습니다. -DIDASQL_WITH_MCP=OFF로 빌드하면 MCP 지원이 제외됩니다.```bash

Standalone mode

idasql -s database.i64 --mcp idasql -s database.i64 --mcp 9500 # specific port

Or in interactive mode

idasql -s database.i64 -i .mcp start

root@kitploit:~
MCP 클라이언트 구성:```json
{
  "mcpServers": {
    "idasql": { "url": "http://127.0.0.1:<port>/sse" }
  }
}

Tools: idasql_query (직접 SQL 쿼리 또는 세미콜론으로 구분된 스크립트)

xsql 계열

IDASQL은 서로 다른 바이너리 분석 및 디버그 정보 플랫폼을 동일한 SQL 인터페이스로 노출하는 도구 계열의 일부이며, 모두 공유 libxsql 가상 테이블 프레임워크를 기반으로 합니다. 한 도구에서 익힌 쿼리는 대부분 다른 도구에도 그대로 적용됩니다. 예를 들어 동일한 SELECT name, size FROM funcs ORDER BY size DESC LIMIT 10은 어디서든 실행됩니다.

리버스 엔지니어링 플랫폼

  • bnsql — Binary Ninja 데이터베이스를 SQL로.
  • ghidrasql — Ghidra 데이터베이스를 SQL로.

디버그 정보 및 컴파일러 데이터

  • pdbsql — Windows PDB 심볼 파일을 SQL로.
  • dwarfsql — DWARF 디버그 정보를 SQL로.
  • clangsql — Clang AST를 SQL로.

핵심

  • libxsql — 위의 모든 도구가 기반으로 하는 C++ SQLite 가상 테이블 프레임워크.

제작에 사용된 기술

  • libxsql - C++ 데이터 구조를 SQLite 가상 테이블로 노출하기 위한 헤더 전용 C++17 라이브러리. 테이블 정의, 제약 조건 푸시다운, HTTP 씬 클라이언트 지원을 위한 유연한 빌더 API를 제공합니다.

  • fastmcpp - -DIDASQL_WITH_MCP=ON으로 빌드할 때 사용되는 선택적 MCP 서버 구현.

라이선스 및 이용 약관

요약하면: 고지 사항을 유지하고 라이선스 조건을 준수한다면 수정되지 않은 idasql을 상업적 용도를 포함하여 읽고, 빌드하고, 평가하고, 벤치마킹하고, 패키징하고, 사용할 수 있습니다. 라이선스의 기여 목적 규칙에 따라 버그 수정, 최적화, 기능, 테스트 또는 문서 개선을 준비하여 다시 기여하기 위해 포크하거나 패치할 수 있습니다.

Elias Bachaalany의 사전 서면 허가 없이는 분기된 사설 포크, 포팅, 리브랜딩, 클론, API 호환 대체 구현, 경쟁 구현을 유지하거나, 파생 구현을 재창조하거나 개선하기 위한 AI 입력으로 idasql을 사용할 수 없습니다. 라이선스가 정의한 의미에서 idasql에서 복사되거나, 실질적으로 파생되거나, 상당 부분 영향을 받지 않은 독립적 구현은 금지되지 않습니다.

허가 요청: allthingsida/idasql/issues에서 GitHub 이슈를 열어 주세요.

idasql이 배포되는 프로젝트에 실질적인 정보를 제공하는 경우 인간 출처를 보존하세요. 해당되는 경우 README/문서와 정보/크레딧 UI에 idasql과 Elias Bachaalany를 눈에 띄게 표시하십시오. 라이선스에는 일반적인 허용 용도와 허가가 필요한 용도에 대한 예시/FAQ 섹션이 포함되어 있습니다. 타사 종속성(libxsql, IDA SDK 및 해당 전이적 종속성)은 각각의 라이선스가 적용됩니다.

전체 Human-Origin Source License v1.0을 참조하세요.