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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
hashdb — 악성코드에 사용되는 다양한 해싱 알고리즘 모음 | Kitploit
도구/GitHubGitHub/oalabs/hashdb
Static AnalysisHash AnalysisReverse EngineeringMalware AnalysisBinary Analysis
GitHuboalabs/hashdb

hashdb

악성코드에 사용되는 다양한 해싱 알고리즘 모음

저장소 보기
405746개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
overview_hashdb

AWS Deploy Chat Support

HashDB

HashDB는 악성코드에 사용되는 해싱 알고리즘의 커뮤니티 기반 라이브러리입니다.

HashDB 사용 방법

HashDB는 독립형 해싱 라이브러리로 사용할 수 있을 뿐만 아니라 OALabs가 운영하는 HashDB Lookup Service에도 데이터를 제공합니다. 이 서비스를 통해 분석가들은 해시를 역산하여 해시된 API 이름과 문자열 값을 조회할 수 있습니다.

독립형 모듈

HashDB는 다른 표준 Python 모듈처럼 복제하여 리버스 엔지니어링 스크립트에서 사용할 수 있습니다. 다음은 몇 가지 예제 코드입니다.

root@kitploit:~
>>> import hashdb
>>> hashdb.list_algorithms()
['crc32']
>>> hashdb.algorithms.crc32.hash(b'test')
3632233996

HashDB Lookup Service

OALabs는 HashDB 라이브러리에 등록된 모든 해시를 해시 테이블에서 조회할 수 있는 무료 HashDB Lookup Service를 운영합니다. 해시 테이블에는 전체 Windows API 세트와 악성코드에서 흔히 사용되는 많은 문자열이 포함되어 있습니다. 직접 문자열을 추가할 수도 있습니다!

HashDB IDA 플러그인

HashDB 조회 서비스에는 IDA에서 직접 해시 조회를 자동화할 수 있는 IDA Pro 플러그인이 있습니다! 클라이언트는 GitHub 여기에서 다운로드할 수 있습니다.

새 해시 추가 방법

HashDB는 해시 라이브러리를 최신 상태로 유지하기 위해 커뮤니티 지원에 의존합니다! 우리의 목표는 기여자들이 첫 커밋부터 PR까지 새 해시 추가에 5분을 넘지 않도록 하는 것입니다. 이 목표를 달성하기 위해 다음과 같은 간소화된 프로세스를 제공합니다.

  1. 해시 알고리즘이 이미 존재하지 않는지 확인하세요... 바보 같아 보일 수 있지만 다시 한번 확인하세요.

  2. 설명이 포함된 이름으로 브랜치를 생성하세요.

  3. /algorithms 디렉터리에 해시 알고리즘 이름으로 새 Python 파일을 추가하세요. 알고리즘의 공식 이름을 사용하고, 고유한 알고리즘의 경우 해당 알고리즘을 사용하는 악성코드의 이름을 사용하세요.

  4. 다음 템플릿을 사용하여 새 해시 알고리즘을 설정하세요. 모든 필드는 필수이며 대소문자를 구분합니다.

    root@kitploit:~
    #!/usr/bin/env python
    
    DESCRIPTION = "your hash description here"
    # Type can be either 'unsigned_int' (32bit) or 'unsigned_long' (64bit)
    TYPE = 'unsigned_int'
    # Test must match the exact hash of the string 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
    TEST_1 = hash_of_string_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
    
    
    def hash(data):
        # your hash code here
    
  5. Python 스타일을 다시 확인하세요. 저희는 Python 3.9에서 Flake8을 사용합니다. git 저장소의 루트에서 로컬로 다음 lint 명령을 실행해 볼 수 있습니다.

    root@kitploit:~
    pip install flake8
    flake8 ./algorithms --count --select=E9,F63,F7,F82 --show-source --statistics
    
  6. 테스트 스위트를 사용하여 로컬에서 코드를 테스트하세요. git 저장소의 루트에서 다음 명령을 실행하세요. pytest를 직접 실행하는 대신 모듈로 실행해야 테스트 디렉터리를 인식할 수 있습니다.

    root@kitploit:~
    pip install pytest
    python -m pytest
    
  7. 풀 리퀘스트를 생성하세요 — 새 알고리즘은 자동으로 테스트 대기열에 들어가며 성공하면 병합됩니다.

끝입니다! 새 해시는 HashDB 라이브러리에서 사용할 수 있을 뿐만 아니라 HashDB Lookup Service용 새 해시 테이블도 생성되어 즉시 해시 역산을 시작할 수 있습니다!

❗새 해시에 대한 규칙

/algorithms 디렉터리 외부의 변경 사항이 포함된 PR은 자동화된 CI의 적용을 받지 않으며 추가 검토를 받게 됩니다.

모든 해시는 DESCRIPTION 필드에 유효한 설명이 있어야 합니다.

모든 해시는 TYPE 필드에 unsigned_int 또는 unsigned_long 유형 중 하나를 가져야 합니다. HashDB는 현재 부호 없는 32비트 또는 64비트 해시만 허용합니다.

모든 해시는 TEST_1 필드에 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 문자열의 해시가 있어야 합니다.

모든 해시는 바이트 문자열을 받아 해당 문자열의 해시를 반환하는 hash(data) 함수를 포함해야 합니다.

사용자 정의 API 해시 추가

일부 해시 알고리즘은 모듈 이름과 API를 별도로 해시한 다음 해시를 결합하여 단일 모듈+API 해시를 생성합니다. 이에 대한 예로는 표준 Metasploit ROR13 hash가 있습니다. 이러한 알고리즘은 표준 단어 목록으로는 작동하지 않으며 모듈 이름과 API가 모두 포함된 사용자 정의 단어 목록이 필요합니다. 이를 처리하기 위해 특정 단어에 대해서만 유효한 해시를 반환하는 사용자 정의 알고리즘을 허용합니다.

사용자 정의 API 해시를 추가하려면 다음 추가 구성 요소가 필요합니다.

  1. TEST_1 필드는 4294967294(-1)로 설정되어야 합니다.

  2. 해시 알고리즘은 모든 유효하지 않은 해시에 대해 4294967294 값을 반환해야 합니다.

  3. 알고리즘에 유효한 예시 단어와 함께 추가 TEST_API_DATA_1 필드를 추가해야 합니다.

  4. TEST_API_DATA_1 필드의 해시와 함께 추가 TEST_API_1 필드를 추가해야 합니다.

거인의 어깨 위에서

FLARE 팀의 shellcode_hashes 작업에 큰 감사를 보냅니다. 수년 전 이 프로젝트는 빠르고 쉬운 악성코드 해시 역산의 기준을 세웠으며 여전히 매우 유용한 도구입니다. 그렇다면 왜 중복할까요?

솔직히 말하면, 핵심은 단어 목록과 접근성입니다. 이제 악성코드에서 모든 종류의 문자열에 해시를 사용하는 방향으로 극적인 변화가 일어났으며, Windows DLL 내보내기 전체를 해싱하는 기존 방식으로는 충분하지 않습니다. 저희는 수백만 개의 레지스트리 키와 값, 파일 이름, 프로세스 이름을 지속적으로 처리할 수 있는 솔루션을 원했습니다. 또한 정적 분석 도구뿐만 아니라 자동화 워크플로우에서도 사용할 수 있도록 REST API를 통해 데이터를 제공하기를 원했습니다. 그렇다고 해도 shellcode_hashes가 없었다면 저희도 존재하지 않았을 것이므로, 공로는 공로대로 인정합니다 🙌


도구 다운로드