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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dynmx — 시그니처 기반 악성코드 특징 탐지 도구로, Windows API 호출 시퀀스를 기반으로 합니다. 샌드박스 API 추적을 위한 YARA와 같습니다! | Kitploit
도구/GitHubGitHub/0x534a/dynmx
Dynamic Analysis (Sandboxing)Malware Analysis
GitHub0x534a/dynmx

dynmx

시그니처 기반 악성코드 특징 탐지 도구로, Windows API 호출 시퀀스를 기반으로 합니다. 샌드박스 API 추적을 위한 YARA와 같습니다!

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

dynmx 프로토타입

dynmx (발음: 다이내믹스)는 Windows API 호출 시퀀스를 기반으로 한 행위 기반 악성코드 특징 탐지 접근법입니다. 간단히 말해, dynmx는 악성코드 샌드박스에서 생성된 API 호출 추적(소위 함수 로그)을 위한 일종의 YARA로 생각할 수 있습니다. 따라서 탐지 접근법의 데이터 기반은 정적으로 분석되는 악성코드 샘플 자체가 아니라 악성코드 샌드박스에서 동적 분석 중 생성된 데이터입니다. 현재 dynmx는 다음 악성코드 샌드박스의 함수 로그를 지원합니다:

  • VMRay (함수 로그, 텍스트 및 XML 형식)
  • CAPEv2 (report.json 파일)
  • Cuckoo (report.json 파일)

탐지 접근법은 석사 논문 Signature-Based Detection of Behavioural Malware Features with Windows API Calls에서 자세히 설명되어 있습니다. 이 프로젝트는 해당 접근법의 프로토타입 구현이며 석사 논문 과정에서 개발되었습니다. 시그니처는 악성코드 분석가가 dynmx 시그니처 DSL에서 수동으로 정의하며, 이 도구를 통해 함수 로그에서 탐지할 수 있습니다. dynmx 시그니처 DSL의 기능과 구문은 석사 논문에서도 확인할 수 있습니다. 또한, 저장소 dynmx-signatures에서 샘플 dynmx 시그니처를 찾을 수 있습니다. API 호출 기반 악성코드 특징 탐지 외에도, dynmx는 악성코드가 사용하는 OS 리소스(소위 접근 활동 모델)를 추출할 수 있습니다. 이러한 리소스는 API 호출을 검사하고 OS 리소스에 대한 작업을 재구성하여 추출됩니다. 현재 모델에서는 파일 시스템, 레지스트리 및 네트워크 범주의 OS 리소스가 고려됩니다.

예제

다음 섹션에서는 악성코드 특징 탐지 및 리소스 추출에 대한 예제를 보여줍니다.

탐지

이 예제에서는 SHA-256 해시 합이 c0832b1008aa0fc828654f9762e37bda019080cbdd92bd2453a05cfb3b79abb3인 악성코드 샘플을 선택합니다. MalwareBazaar에 따르면, 해당 샘플은 악성코드 패밀리 Amadey에 속합니다. 이 샘플에 대한 공개 VMRay 분석 보고서가 있으며, VMRay가 추적한 함수 로그도 제공됩니다. 이 함수 로그가 탐지에 사용할 데이터 기반이 됩니다.

악성코드 샘플이 Process Hollowing이라는 인젝션 기술을 사용하는지 확인하려면 함수 로그에서 다음 dynmx 시그니처를 탐지해 볼 수 있습니다.```yaml dynmx_signature: meta: name: process_hollow title: Process Hollowing description: Detection of Process hollowing malware feature detection: proc_hollow: # Create legit process in suspended mode - api_call: ["CreateProcess[AW]", "CreateProcessInternal[AW]"] with: - argument: "dwCreationFlags" operation: "flag is set" value: 0x4 - return_value: "return" operation: "is not" value: 0 store: - name: "hProcess" as: "proc_handle" - name: "hThread" as: "thread_handle" # Injection of malicious code into memory of previously created process - variant: - path: # Allocate memory with read, write, execute permission - api_call: ["VirtualAllocEx", "VirtualAlloc", "(Nt|Zw)AllocateVirtualMemory"] with: - argument: ["hProcess", "ProcessHandle"] operation: "is" value: "$(proc_handle)" - argument: ["flProtect", "Protect"] operation: "is" value: 0x40 - api_call: ["WriteProcessMemory"] with: - argument: "hProcess" operation: "is" value: "$(proc_handle)" - api_call: ["SetThreadContext", "(Nt|Zw)SetContextThread"] with: - argument: "hThread" operation: "is" value: "$(thread_handle)" - path: # Map memory section with read, write, execute permission - api_call: "(Nt|Zw)MapViewOfSection" with: - argument: "ProcessHandle" operation: "is" value: "$(proc_handle)" - argument: "AccessProtection" operation: "is" value: 0x40 # Resume thread to run injected malicious code - api_call: ["ResumeThread", "(Nt|Zw)ResumeThread"] with: - argument: ["hThread", "ThreadHandle"] operation: "is" value: "$(thread_handle)" condition: proc_hollow as sequence

시그니처를 기반으로 *dynmx*를 강력하게 만드는 몇 가지 DSL 기능을 찾을 수 있습니다:
* 대체 경로가 있는 API 호출 시퀀스 정의
* 정규 표현식을 사용한 API 호출 함수 이름 매칭
* 여러 연산자를 사용한 인수 및 반환 값 매칭
* 변수 저장, 예: API 호출 시퀀스에서 핸들 추적을 위해
* 부울 연산자(`AND`, `OR`, `NOT`)를 사용한 탐지 조건 정의

위에 표시된 시그니처를 사용하여 샘플 `c0832b1008aa0fc828654f9762e37bda019080cbdd92bd2453a05cfb3b79abb3`의 함수에 대해 *dynmx*를 실행하면 시그니처가 탐지되었음을 나타내는 다음 출력이 표시됩니다.```
$ python3 dynmx.py detect -i 601941f00b194587c9e57c5fabaf1ef11596179bea007df9bdcdaa10f162cac9.json -s process_hollow.yml


    |
  __|         _  _    _  _  _
 /  |  |   | / |/ |  / |/ |/ |  /\/
 \_/|_/ \_/|/  |  |_/  |  |  |_/ /\_/
          /|
          \|
            
 Ver. 0.5 (PoC), by 0x534a


[+] Parsing 1 function log(s)
[+] Loaded 1 dynmx signature(s)
[+] Starting detection process with 1 worker(s). This probably takes some time...

[+] Result
process_hollow	c0832b1008aa0fc828654f9762e37bda019080cbdd92bd2453a05cfb3b79abb3.txt

출력 형식을 detail로 설정하면 더 자세한 내용을 볼 수 있습니다. 이제 함수 로그에서 감지된 정확한 API 호출 시퀀스를 확인할 수 있습니다. 또한 서명이 프로세스 51f0.exe에서 감지되었음을 확인할 수 있습니다.``` $ python3 dynmx.py -f detail detect -i 601941f00b194587c9e57c5fabaf1ef11596179bea007df9bdcdaa10f162cac9.json -s process_hollow.yml

|

__| _ _ _ _ _ / | | | / |/ | / |/ |/ | // _/|/ _/|/ | |/ | | |_/ /_/ /| |

Ver. 0.5 (PoC), by 0x534a

[+] Parsing 1 function log(s) [+] Loaded 1 dynmx signature(s) [+] Starting detection process with 1 worker(s). This probably takes some time...

[+] Result Function log: c0832b1008aa0fc828654f9762e37bda019080cbdd92bd2453a05cfb3b79abb3.txt Signature: process_hollow Process: 51f0.exe (PID: 3768) Number of Findings: 1 Finding 0 proc_hollow : API Call CreateProcessA (Function log line 20560, index 938) proc_hollow : API Call VirtualAllocEx (Function log line 20566, index 944) proc_hollow : API Call WriteProcessMemory (Function log line 20573, index 951) proc_hollow : API Call SetThreadContext (Function log line 20574, index 952) proc_hollow : API Call ResumeThread (Function log line 20575, index 953)

### 리소스
함수 로그에서 접근된 OS 리소스를 추출하려면, 함수 로그에 대해 *dynmx* 명령어 `resources`를 간단히 실행하면 됩니다. 아래는 SHA-256 해시 합계가 `601941f00b194587c9e57c5fabaf1ef11596179bea007df9bdcdaa10f162cac9`인 샘플에 대한 자세한 출력 예시입니다. 이는 [Avast-CTU Public CAPEv2 Dataset](https://github.com/avast/avast-ctu-cape-dataset)의 일부인 CAPE 샌드박스 보고서입니다.```
$ python3 dynmx.py -f detail resources --input 601941f00b194587c9e57c5fabaf1ef11596179bea007df9bdcdaa10f162cac9.json


    |
  __|         _  _    _  _  _
 /  |  |   | / |/ |  / |/ |/ |  /\/
 \_/|_/ \_/|/  |  |_/  |  |  |_/ /\_/
          /|
          \|

 Ver. 0.5 (PoC), by 0x534a


[+] Parsing 1 function log(s)
[+] Processing function log(s) with the command 'resources'...
도구 다운로드