Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
N0xis — 리버스 엔지니어링 툴킷: PE 및 ELF용 디스어셈블러, SSA 디컴파일러, C++ 클래스 복구 및 라이브 프로세스 분석. 스크립트 가능한 CLI, 모든 응답은 JSON. 소스 공개(PolyForm Noncommercial). | Kitploit
도구/GitHubGitHub/structio-labs/n0xis
Static AnalysisDynamic Analysis (Sandboxing)Memory ForensicsReverse EngineeringDebuggersMalware AnalysisUtilities & FrameworksBinary AnalysisAI-Assisted ReversingBinary Exploitation
GitHub
21051일 전아직 검토되지 않음
structio-labs/n0xis

N0xis

리버스 엔지니어링 툴킷: PE 및 ELF용 디스어셈블러, SSA 디컴파일러, C++ 클래스 복구 및 라이브 프로세스 분석. 스크립트 가능한 CLI, 모든 응답은 JSON. 소스 공개(PolyForm Noncommercial).

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

N0xis

리버스 엔지니어링 툴킷: PE 및 ELF용 디스어셈블러, SSA 디컴파일러, C++ 클래스 복구 및 라이브 프로세스 분석. 정적 파일과 실행 중인 프로세스가 하나의 파이프라인을 통과하며, 모든 결과는 스크립트가 활용할 수 있는 JSON입니다.

세 개의 프런트 엔드가 이 코어를 공유합니다: 명령이 하나의 JSON 객체로 응답하는 CLI(준비 완료 봉투가 있는 serve 세션, 이후 요청마다 하나씩), 자체 저장소에 있는 데스크톱 GUI n0xis-gui, 그리고 stdio를 통한 JSON-RPC로 동일한 봉투를 반환하는 27개의 도구를 갖춘 MCP 서버 n0xis-mcp입니다.

라이브 실행: 프로그램의 복호화된 설정을 메모리에서 찾아 하드웨어 워치포인트로 감시하고, 이를 기록한 디컴파일된 루프를 얻기

examples/config-demo의 실제 실행: 프로그램이 설정을 암호화된 상태로 유지하다가 메모리로 복호화합니다. 평문을 찾아 하드웨어 워치포인트를 설정하고, 이를 기록한 디컴파일된 코드를 얻습니다. demo.sh로 직접 다시 실행해 보세요.

$ n0xis provenance trace --pid 181529 --addr 0x564e32cb7060 --kind write
"instruction_va": "0x564e32cb4266",   // the byte store that wrote the watched address
"function_va": "0x564e32cb4230",      // the function it sits in, on this build (see below)
"decompiled_context": [
  "rcx.3 = (uint32_t)((uint32_t)(uint32_t)*(uint8_t*)((rsi.1 + v2)) ^ (uint32_t)v1);",
  "*(uint8_t*)((rdi.1 + v2)) = (uint8_t)rcx.3;",   // ← the write
  "rcx.4 = (uint32_t)(v1 + (v1 * 0x2));",
  "v2 = (v2 + 0x1);",
  "v1 = (uint32_t)((v1 + (rcx.4 * 0x4)) + 0x7);"
]

소스에서 이것은 config[i] = sealed[i] ^ key; key = key * 13 + 7;입니다. 두 문장 rcx.4 = v1 + v1 * 2와 v1 = v1 + rcx.4 * 4 + 7은 합쳐서 v1 * 13 + 7입니다. 답은 config와 decrypt_config라는 이름이 아니라 주소를 제공합니다. 바이너리의 심볼에서 나온 이름은 아직 그 안으로 전달되지 않습니다. 이 빌드는 gcc -O2이며, 여기서 function_va는 함수의 시작입니다. 동일한 소스의 clang -O2 및 gcc -O1 빌드에서는 루프 헤드이며, 아무 주석 없이 ok:true로 응답합니다. 이 실행은 Linux에서 이루어집니다. provenance trace의 마지막 Windows 실행은 ledger에 있습니다.

어디서 무엇이 실행되는가

yes: 모든 검사가 일치함 · partial: 사용 가능하나 아래의 격차가 있음 · wrong: 측정된 입력에서 잘못된 결과와 함께 ok:true · refused: 타입이 지정된 오류 · not yet: 코드 경로 없음. 2026년 10월에 알려진 소스로 빌드된 프로그램에서, 프로세서 및 독립 도구와 대조하여 측정함.

형식정적 파일라이브 프로세스
PE32+, PE32 (x86-64, x86, ARM64)partial: 아래의 격차와 잘못된 답Windows: 이 표에 대해 측정되지 않음
ELF64, ELF32 (x86-64, x86, AArch64, ARMv7)partial: 아래의 격차와 잘못된 답; 빅엔디언: 디컴파일 및 RTTI 거부됨Linux x86-64: partial: 아래의 라이브 항목; 기타 ISA는 측정되지 않음
Mach-O, thin 및 universal거부됨 (load-failed)아직 없음
WebAssemblypartial: 함수 목록, 디스어셈블리, 함수로의 및 함수로부터의 호출, 임포트, 익스포트, profile 및 strings(각 문자열의 선형 메모리 내 위치 포함)가 측정된 모든 모듈에서 wasm-objdump와 일치함; 디컴파일, IR 및 lift가 필요한 기타 명령은 거부됨 (not-lifted: lift는 3단계)아직 없음
원시 바이트 (--bytes)디스어셈블, 상호 참조, 범위가 있는 문자열; discover 및 decompile은 partial; profile 및 rtti scan은 거부됨—
ISA디스어셈블함수 탐색디컴파일
x86-64yes언와인드 테이블이 있으면 yes; 없으면 partialpartial
x86 (i386)yespartial: .eh_frame이 있어도 GCC의 패딩과 .plt가 함수로 나열되고, 이름의 점이 다시 쓰이며, 끝이 누락됨partial
AArch64, 리틀 및 빅엔디언yes리틀엔디언은 .eh_frame이 있으면 yes; 빅엔디언은 partial: .eh_frame이 선언한 함수를 놓침; 없으면 partial; PE에서는 --pdata가 잘못됨partial; 빅엔디언은 거부됨
ARMv7 A32partial: NEON 없음, 코드 내 데이터가 코드로 디코딩됨partialwrong: 점프 테이블, 테일 호출
ARMv7 Thumb-2 (--arch thumb)wrong: 분기 대상, IT 조건partial: 이름이나 끝 없음wrong: IT 조건이 적용된 반환이 함수를 종료시킴
WebAssemblyyes; 분기의 대상은 레이블 깊이이며, 3단계 전까지 제공되지 않음yes: 모든 본문, 그 범위, 인덱스 및 이름거부됨 (3단계)
  • ok:true인데 잘못된 경우: MinGW PE에서의 Itanium RTTI(없다고 보고됨), ARM64 PE에서의 --pdata, profile에서의 긴 MinGW 섹션 이름(/4), ELF 공유 객체의 export 목록과 그 객체의 함수들에 부여된 .localalias 이름, 함수로 나열된 GCC의 i386 패딩과 .plt 블록, 밑줄로 출력되는 심볼 이름 속 점(__x86.get_pc_thunk.bx 대신 __x86_get_pc_thunk_bx), 그리고 .eh_frame이 선언한 함수를 놓치는 빅엔디언 AArch64 탐색. 디컴파일러는 통과 인자를 누락하고, 산술 시프트를 부호 없이 출력하며 64비트 곱셈을 32비트로 출력하고, 한 번도 할당하지 않은 레지스터로 switch하거나 읽을 수 있으며, AArch64에서는 잘못된 문자열을 지목할 수 있고, A32(그리고 AArch64에서도 같은 형태로)에서는 카운트다운 루프를 한 반복 부족하게 실행하며, 32비트 x86에서는 스택 인자와 64비트 결과의 상위 절반을 잃는다. 그 quality 필드는 정확성 점수가 아니다. 횟수를 포함한 전체 목록은 ledger에 있다.
  • 놓친 경우, 더 적은 내용으로 ok 응답: unwind 테이블이 없을 때, vtable을 통해서만 도달하는 함수, MSVC-ABI 진입점과 ELF 공유 객체의 대부분; 절대 즉치값, AArch64 adrp+add 또는 adr, 또는 i386 GOT에 담긴 참조; Itanium 보조 vtable, 그리고 스트립된 이미지의 모든 Itanium 클래스; COFF 심볼 테이블에만 있는 이름. x64 PE 옆의 PDB는 측정된 두 lld-link 이미지에서 모든 시작, 이름, 끝을 제공했다(35개 중 35개, 18개 중 18개).
  • Live (Linux): provenance trace는 그곳의 바이트가 우연히 출력 가능할 때 기록된 주소를 문자열 리터럴로 출력하며, 일부 빌드에서는 루프 헤드를 함수로 지목한다(위 참조); 바이트 패턴 스캔(scan aob)은 읽을 수 없는 영역을 넘어가려면 --start/--size가 필요하다; scan dissect는 필드 타입을 추측한다; Windows 전용 명령은 다른 곳에서는 거부한다.

설치

Linux 및 Windows용 사전 빌드 바이너리, MCP 서버, sha256sums.txt: 최신 릴리스.

curl -LO https://github.com/Structio-labs/N0xis/releases/latest/download/n0xis-linux-x86_64
curl -LO https://github.com/Structio-labs/N0xis/releases/latest/download/sha256sums.txt
sha256sum -c --ignore-missing sha256sums.txt
chmod +x n0xis-linux-x86_64 && mv n0xis-linux-x86_64 n0xis && ./n0xis --version

안정적인 Rust로 Linux 또는 Windows에서 빌드하세요: cargo build --workspace --release. rust-toolchain.toml은 채널만 고정하며, MSVC Build Tools 없이 Windows에서 빌드하는 방법을 설명합니다.

빠른 시작

모든 명령은 인자 오류를 포함하여 하나의 JSON 객체를 출력합니다: {"ok":true,"data":…,"meta":…} 또는 {"ok":false,"error":…}. 두 세션 서버는 예외입니다: serve는 줄마다 하나의 envelope을 출력하며, 준비 envelope과 그다음 세션의 각 요청마다 하나씩 출력하고, remote-serve는 --remote-cmd 측과 자체적인 줄 단위 프로토콜로 통신합니다. 읽기 쉽게 하려면 --pretty를 추가하세요; 실패 시 종료 코드는 0이 아닙니다. --help와 --version만 일반 텍스트를 출력합니다. 참조 문서에서는 바이너리를 n0x라고 부릅니다 (ln -s n0xis n0x).

n0xis doctor                                         # environment check
n0xis profile --file app.exe                         # triage: sections, exports, runtime hints
n0xis function discover --file app.exe --pdata       # functions from the x64 unwind table
n0xis decomp pseudo --file app.exe --addr 0x140012a00 --style ssa --pretty
n0xis xref to --file app.exe --addr 0x140012a00      # what calls or references it
n0xis rtti scan --file app.exe                       # C++ classes from RTTI
n0xis provenance trace --pid 4821 --addr 0x1a2b3c40 --kind write --pretty   # live: what wrote it

명령은 --file, --pid, --snapshot, --remote-cmd 또는 --bytes로 대상을 지정하며, 해당 명령의 --help는 받는 옵션들을 나열합니다. 출력은 Unix 파이프라인 방식입니다: n0xis function discover --file app.exe --pdata | jq -r '.data.functions[].va' 는 다음 명령으로 전달됩니다. n0xis guide는 바이너리에서 생성된 118개의 모든 명령을 나열하며, 이 README, MAP.md, CONCEPT.md 또는 docs/CLI_COMMANDS.md에 다른 개수가 기재되면 테스트가 빌드를 실패시킵니다. Linux에서 Yama ptrace_scope=1인 경우, 다른 프로세스를 읽으려면 config-demo처럼 추적을 허용하지 않는 한 root 또는 CAP_SYS_PTRACE가 필요합니다.

기능

  • 이미지 읽기: 디스어셈블리, 함수 탐색, 상호 참조, 문자열, 섹션 및 익스포트 분류.
  • 디컴파일: SSA, 구조화된 C 유사 출력; --explain은 기록된 재작성들을 각각을 수행한 패스와 함께 나열합니다.
  • 이름 복구: MSVC 및 Itanium RTTI의 C++ 클래스, PDB, 익스포트, ELF 심볼, .NET NativeAOT 메서드 맵, 그리고 LuaJIT 2.0 바이트코드를 포함한 몇 가지 런타임 형식.
  • 실행 중인 프로세스 작업: 메모리 읽기, 쓰기 및 매핑; 값, 바이트 패턴, 구조체 및 포인터 경로를 검색하며 값이 변경됨에 따라 범위를 좁힘; 각 변경을 되돌릴 수 있는 저널을 통한 패치.
  • 관찰 및 설명: 소프트웨어 및 하드웨어 브레이크포인트, 프로세스 간 호출 스택(Linux), 그리고 워치포인트 적중에서 값을 기록한 명령문까지 추적하는 provenance trace.
  • 작업 보존: .n0xt 테이블, 버전 관리되는 주석, 콘텐츠 주소 지정 캐시, 함수 및 버전 비교.

코어에는 머신러닝 기반 구성 요소가 없습니다.

답변 검증 방식

도구 다운로드