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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Kam1n0-Community — 여러 아키텍처에 걸쳐 정적, 동적 및 머신러닝 기법을 사용하는 인덱싱, 클론 검색 및 실행 파일 분류를 위한 확장 가능한 어셈블리 분석 플랫폼입니다. | Kitploit
도구/GitHubGitHub/mcgill-dmas/kam1n0-community
Vulnerability AnalysisCode AnalysisReverse EngineeringFuzzingBinary AnalysisMachine Learning
GitHubmcgill-dmas/kam1n0-community

Kam1n0-Community

여러 아키텍처에 걸쳐 정적, 동적 및 머신러닝 기법을 사용하는 인덱싱, 클론 검색 및 실행 파일 분류를 위한 확장 가능한 어셈블리 분석 플랫폼입니다.

저장소 보기
627124233년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Kam1n0 v2란 무엇인가?

image GitHub (pre-)release Github All Releases JDK PRs Welcome

Build latest development release (Windows) Test release build (Windows)

Kam1n0 v2.x는 확장 가능한 어셈블리 관리 및 분석 플랫폼입니다. 사용자는 먼저 (대량의) 바이너리 모음을 다양한 저장소로 인덱싱하고 클론 검색 및 분류와 같은 다양한 분석 서비스를 제공할 수 있습니다. 애플리케이션 개념을 사용하여 어셈블리 저장소의 다중 테넌트 액세스 및 관리를 지원합니다. 애플리케이션 인스턴스는 고유한 전용 저장소를 포함하며 특화된 분석 서비스를 제공합니다. 리버스 엔지니어링 작업의 다양성을 고려하여, Kam1n0 v2.x 서버는 현재 세 가지 유형의 클론 검색 애플리케이션을 제공합니다: Asm-Clone, Sym1n0, Asm2Vec, 그리고 Asm2Vec 기반의 실행 파일 분류. 새로운 애플리케이션 유형을 플랫폼에 추가할 수 있습니다.

사용자는 여러 애플리케이션 인스턴스를 생성할 수 있습니다. 애플리케이션 인스턴스는 특정 사용자 그룹 간에 공유될 수 있습니다. 애플리케이션 저장소의 읽기-쓰기 액세스 및 온-오프 상태는 애플리케이션 소유자가 제어할 수 있습니다. Kam1n0 v2.x 서버는 여러 공유 리소스 풀을 사용하여 애플리케이션을 동시에 서비스할 수 있습니다.

Kam1n0는 캐나다 McGill 대학의 Data Mining and Security Lab 소속인 Benjamin C. M. Fung 교수의 지도 하에 Steven H. H. Ding과 Miles Q. Li가 개발했습니다. Hex-Rays Plug-In Contest 2015에서 2등을 수상했습니다. Kam1n0가 유용하다고 생각하신다면, 다음 논문을 인용해 주십시오:

  • S. H. H. Ding, B. C. M. Fung, and P. Charland. Kam1n0: MapReduce-based Assembly Clone Search for Reverse Engineering. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (SIGKDD), pages 461-470, San Francisco, CA: ACM Press, August 2016.

  • S. H. H. Ding, B. C. M. Fung, and P. Charland. Asm2Vec: boosting static representation robustness for binary clone search against code obfuscation and compiler optimization. In Proceedings of the 40th IEEE Symposium on Security and Privacy (S&P), 18 pages, San Francisco, CA: IEEE Computer Society, May 2019.

Asm-Clone

Asm-Clone 애플리케이션은 어셈블리 함수에 대한 효율적인 부분 그래프 검색 문제(즉, 그래프 동형 문제)를 해결하려고 합니다(230만 개 함수 기준 평균 쿼리 시간 <1.3초, 평균 인덱스 시간 <30ms). 대상 함수(아래 왼쪽에 표시됨)가 주어지면 저장소의 다른 함수들 중에서 클론된 부분 그래프를 식별할 수 있습니다(아래 오른쪽에 표시됨).

  • 애플리케이션 유형: Asm-Clone
  • Kam1n0 v1.x에서 사용된 원래 클론 검색 서비스입니다.
  • 현재 Meta-PC, ARM, PowerPC, TMS320c6(실험적)을 지원합니다.
  • 특정 어셈블리 코드 패밀리 내에서 부분 그래프 클론 검색을 지원합니다.
    • + 결과 해석 가능성 우수: 부분 그래프로 분해됩니다.
    • + 주어진 코드 패밀리 내 검색에 정확합니다.
    • + 대형 바이너리의 다양한 패치 또는 버전 비교에 유용합니다.
    • - 명령어 세트 변경, 최적화 및 난독화에 상대적으로 민감합니다.
    • - 어셈블리 코드 언어의 구문을 미리 정의해야 합니다.
    • - 저장소에 동일한 선택된 패밀리의 어셈블리 코드가 있어야 합니다.

Sym1n0

차별화된 퍼지 테스팅과 제약 조건 해결을 통한 의미론적 클론 검색. 효율적이고 확장 가능한 동적-정적 하이브리드 접근 방식입니다(150만 개 함수 기준 평균 쿼리 시간 <1초, 평균 인덱스 시간 <100ms). 대상 함수(아래 왼쪽에 표시됨)가 주어지면 저장소의 다른 함수들 중에서 클론된 부분 그래프를 식별할 수 있습니다(아래 오른쪽에 표시됨). 추상 구문 그래프 시각화를 지원합니다.

  • 애플리케이션 유형: Sym1n0 (v2 전용)
  • 기호 실행과 구체적 실행을 모두 사용한 클론 검색.
  • I/O 동작의 차이를 기반으로 함수를 구분합니다.
  • LibVex(기반 Vex IR에서 구축된 추상 구문 그래프)로 클론 검색을 수행합니다.
    • + 여러 어셈블리 코드 패밀리 간의 클론 검색.
      • 예: x86 바이너리를 인덱싱했지만 쿼리는 ARM 코드인 경우.
    • + 부분 그래프 클론 검색.
    • + LibVex를 통해 광범위한 패밀리 지원.
      • x86, AMD64, MIPS32, MIPS64, PowerPC32, PowerPC64, ARM32, ARM64.
    • + 효율적인 동적-정적 하이브리드 접근 방식.
    • + 다른 프로세서용으로 컴파일된 펌웨어 분석에 이상적입니다.
    • - 과도한 그래프 조작(예: 완전 평탄화)에 민감합니다.
    • - 기본 블록 무결성의 대규모 붕괴에 민감합니다.

Asm2Vec

Asm2Vec은 표현 학습을 활용합니다. 어셈블리 코드의 어휘적 의미 관계를 이해합니다. 예를 들어, xmm* 레지스터는 addps와 같은 벡터 연산과 의미적으로 관련됩니다. memcpy는 strcpy와 유사합니다. 아래 그래프는 libgmp의 gmpz_tdiv_r_2exp 동일한 소스 코드에서 컴파일된 다양한 어셈블리 함수를 보여줍니다. 왼쪽부터 GCC O0 옵션, GCC O3 옵션, O-LLVM 난독화기 제어 흐름 그래프 평탄화 옵션, LLVM 난독화기 가짜 제어 흐름 그래프 옵션으로 컴파일된 어셈블리 함수입니다. Asm2Vec은 이를 정적으로 클론으로 식별할 수 있습니다.

  • 표현 학습을 활용합니다.
  • 어셈블리 코드의 어휘적 의미 관계를 이해합니다.
    • + 강력한 코드 난독화 기술에 대한 최첨단 클론 검색.
      • (O-LLVM의 모든 옵션, 다회 반복 시 정확도 >0.8).
    • + 코드 최적화에 대한 최첨단 클론 검색.
      • (O0과 O3 간 정확도 >0.8, O2와 O3 간 정확도 >0.94)
    • + 최근 동적 접근 방식보다 더 나은 결과를 제공합니다.
    • + 최근 동적 접근 방식보다 훨씬 효율적입니다.
    • + 아키텍처를 정의할 필요 없이 대량의 코드를 읽고 자가 학습합니다.
    • + 정적 접근 방식: 효율적이고 확장 가능합니다.
    • - 부분 그래프 없음.
    • - 어셈블리 코드가 동일한 프로세서 패밀리에서 제공된다고 가정합니다.
    • - 정적 접근 방식: 점프 테이블 등을 인식할 수 없습니다.

실행 파일 분류

이 애플리케이션에서 사용자는 기능적 관련성을 기반으로 한 소프트웨어 클래스 집합을 정의하고 각 클래스에 속하는 바이너리를 제공합니다. 그러면 시스템이 자동으로 함수를 클러스터로 그룹화하며, 클러스터 내 함수는 클론 관계로 직간접적으로 연결됩니다. 분류에 판별적인 클러스터는 유지되어 해당 클래스의 서명 역할을 합니다. 대상 바이너리가 주어지면 시스템이 각 소프트웨어 클래스에 속하는 정도를 보여줍니다.

  • 함수 유사도 계산 모델로 Asm2Vec 사용

    • + 해석 가능한 분류 결과 제공.
    • + 각 클래스의 공통 특성(즉, 함수 클러스터) 학습.
    • + 일반적인 머신러닝 모델보다 작고 불균형한 데이터셋을 처리 가능.
    • - 한계는 시스템이 작동하려면 동일한 클래스의 바이너리에 공통 함수가 존재한다는 가정이 충족되어야 한다는 점입니다.

플랫폼 개요

아래 그림은 Kam1n0 v2.x의 주요 UI 구성 요소와 기능을 보여줍니다. 우리는 머티리얼 디자인을 채택했습니다. 일반적으로 각 사용자는 애플리케이션 목록, 실행 중인 작업 목록, 결과 파일 목록을 가지고 있습니다.

  • 애플리케이션 목록은 사용자가 소유하고 다른 사용자가 공유하는 애플리케이션 인스턴스를 보여줍니다.
  • 실행 중인 작업 목록은 대규모 쿼리(예: chrome.dll) 및 인덱싱 절차의 진행 상황을 보여줍니다.
  • 결과 파일 목록은 저장된 결과를 표시합니다. UI 디자인에 대한 자세한 내용은 상세한 튜토리얼에서 확인할 수 있습니다.

설치 지침

현재 Kam1n0 릴리스는 두 가지 설치 프로그램으로 구성됩니다: 코어 서버와 IDA Pro 플러그인.

설치 프로그램 포함된 구성 요소 설명
Kam1n0-Server.msi 코어 엔진 인덱싱 및 검색 서비스를 제공하는 메인 엔진.
워크벤치 저장소 및 실행 중인 서비스를 관리하기 위한 사용자 인터페이스.
웹 사용자 인터페이스 바이너리 파일 및 어셈블리 함수를 검색/인덱싱하기 위한 웹 사용자 인터페이스.
Visual C++ 재배포 가능 패키지 (VS 15) z3 종속성.
Kam1n0-IDA-Plugin.msi 플러그인 커넥터 및 사용자 인터페이스.
Cefpython용 PyPI 휠 사용자 인터페이스용 렌더링 엔진.
PyPI 및 종속 휠 Python용 패키지 관리. IDA 6.8 및 6.9 용으로 포함됨.

Kam1n0 서버 설치

Kam1n0 코어 엔진은 순수 Java로 작성되었습니다. 다음 종속성이 필요합니다:

  • [필수] Oracle의 최신 x64 11.x JRE/JDK 배포판.
  • [선택 사항] idapython 플러그인이 설치된 최신 버전의 IDA Pro. Python 플러그인 및 런타임은 IDA Pro와 함께 이미 설치되어 있어야 합니다. 필요한 경우 IDA Pro를 다시 설치하십시오.
도구 다운로드