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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
flashmingo — 일부 휴리스틱 기반의 SWF 파일 자동 분석. 플러그인을 통해 확장 가능. | Kitploit
도구/GitHubGitHub/mandiant/flashmingo
Static AnalysisDynamic Analysis (Sandboxing)Vulnerability AnalysisReverse EngineeringScripting & AutomationForensicsMalware AnalysisBinary AnalysisLearning & EducationArchived
GitHubmandiant/flashmingo

flashmingo

120367년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

일부 휴리스틱 기반의 SWF 파일 자동 분석. 플러그인을 통해 확장 가능.

저장소 보기

FLASHMINGO

설치

참고: 아래 지침은 Python3를 위한 것입니다.

Python2.7에서 FLASHMINGO를 설치해야 한다면 releases 탭에서 1.0 릴리스를 확인하세요. 설치 단계는 기본적으로 동일합니다.

requirements.txt에 나열된 Python3 패키지를 설치하세요.

다음 명령어를 사용할 수 있습니다: pip3 install -r requirements.txt

디컴파일 기능을 사용하려면 Jython을 설치해야 합니다. Ubuntu/Debian 사용자는 apt install jython 명령어를 사용할 수 있습니다.

프로젝트를 클론하거나 zip 파일을 다운로드하세요.

개요

FLASHMINGO는 SWF 파일을 위한 분석 프레임워크입니다. 이 도구는 의심스러운 Flash 파일을 자동으로 분류하고 추가 분석 프로세스를 안내하여 팀의 소중한 리소스를 절약해 줍니다. FLASHMINGO의 분석 모듈을 워크플로우에 쉽게 통합할 수 있습니다.

왜 필요한가?

오늘날까지 포렌식 조사관과 악성코드 분석가는 의심스러운 SWF 파일을 처리해야 합니다. 역사가 반복된다면 2020년 Flash의 종료 이후에도 보안 위협은 더욱 커질 수 있습니다. 시스템은 더 이상 보안 패치로 업데이트되지 않는 레거시 파일 형식을 계속 지원하게 될 것입니다. 자동화는 이 문제를 처리하는 최선의 방법이며, 바로 여기서 FLASHMINGO가 도움이 될 수 있습니다. FLASHMINGO는 SWF 파일을 자동으로 처리하는 분석 프레임워크로, 의심스러운 Flash 샘플을 플래그 지정하고 최소한의 노력으로 분석할 수 있게 해줍니다. 독립 실행형 애플리케이션 또는 강력한 라이브러리로서 다양한 분석 워크플로우에 통합됩니다. 사용자는 사용자 정의 Python 플러그인을 통해 도구의 기능을 쉽게 확장할 수 있습니다.

작동 방식

아키텍처

FLASHMINGO는 단순함을 염두에 두고 설계되었습니다. SWF 파일을 읽고 그 내용과 구조를 나타내는 객체(SWFObject)를 생성합니다. 그 후 FLASHMINGO는 이 SWFObject에 대해 일련의 플러그인을 실행하고 결과를 메인 프로그램에 반환합니다.

아래는 필수 ASCII 아트 흐름도입니다:

root@kitploit:~
                                                 +----------+
                                                 |          |
                       +------------+----------->+ PLUGIN 1 +------------+
                       |            |            |          |            |
                       |            |            +----------+            |
                       |            |                                    |
                       |            |            +----------+            |
                       |            |            |          |            |
+---------+            |            +----------->+ PLUGIN 2 +--------+   |
|SWF FILE +----------->+ FLASHMINGO |            |          |        |   |
+---------+            |            |            +----------+        |   |
                       |            |                                |   |
                       |            |                                |   |
                       |            |                                |   |
                       |            |                          +-----v---v-+
                       |            |                          |           |
                       |            |                          |           |
                       +-----+------+------------------------->+ SWFOBJECT |
                             ^                                 |           |
                             |                                 |           |
                             |                                 +-----+-----+
                             |                                       |
                             |                                       |
                             |                                       |
                             +---------------------------------------+

자체 프로젝트에서 FLASHMINGO를 라이브러리로 사용할 때는 두 가지 종류의 객체만 처리하면 됩니다:

  • 하나 이상의 SWFObject(샘플을 나타냄)
  • Flashmingo 객체. 이는 본질적으로 플러그인과 SWFObject를 연결하는 하네스 역할을 합니다.

플러그인!

FLASHMINGO 플러그인은 각각의 디렉토리에 저장됩니다. 짐작하셨겠지만, 바로 plugins 디렉토리입니다. Flashmingo 객체가 인스턴스화되면 이 디렉토리를 탐색하며 모든 플러그인의 매니페스트를 처리합니다. 매니페스트에서 플러그인이 활성화되어 있음을 나타내면, 나중에 사용할 수 있도록 등록됩니다. 코드 수준에서는 작은 plugin_info 딕셔너리가 plugins 리스트에 추가됩니다.

플러그인은 두 개의 인자를 사용하는 run_plugin API를 통해 호출됩니다:

  • 플러그인의 이름
  • SWFObject 인스턴스

선택적으로, 대부분의 플러그인은 사용자 고유의 사용자 데이터를 전달할 수 있습니다. 이는 플러그인에 따라 다르며(문서 참조), 예제를 통해 더 쉽게 설명할 수 있습니다. 기본 플러그인 SuspiciousNames는 모든 상수 풀에서 의심스러운 부분 문자열('overflow', 'spray', 'shell' 등)을 포함하는 문자열을 검색합니다. 플러그인에 이미 일반적인 부분 문자열 목록이 하드코딩되어 있어 '그대로' 사용할 수 있습니다. 그러나 names 매개변수를 통해 사용자가 정의한 부분 문자열 목록을 전달할 수도 있습니다.

코드 예제:

root@kitploit:~
fm = Flashmingo()
print fm.run_plugin('DangerousAPIs', swf=swf)
print fm.run_plugin('SuspiciousNames', swf=swf, names=['spooky'])

기본 플러그인

FLASHMINGO에는 유용한 플러그인이 기본 포함되어 있습니다:

  • binary_data
  • dangerous_apis
  • decompiler
  • suspicious_constants
  • suspicious_loops
  • suspicious_names
  • template :)

FLASHMINGO 확장

쉬운 개발을 위해 템플릿 플러그인이 제공됩니다. FLASHMINGO 확장은 매우 간단합니다. 다음 단계를 따르세요:

  • 템플릿 복사
  • 매니페스트 편집
  • run 메서드 재정의
  • 사용자 정의 코드 추가

준비 완료입니다 :)

라이브러리로서의 FLASHMINGO

API

  • 자동 생성된 문서는 docs 디렉토리를 참조하세요.
  • 예제는 FireEye의 블로그 게시물을 참조하세요.

프론트엔드

  • 콘솔

문서 생성

$ pip install sphinxcontrib-napoleon

Sphinx를 설정하여 문서를 빌드한 후, Sphinx conf.py 파일에서 napoleon을 활성화하세요:

conf.py에서 extensions 리스트에 napoleon을 추가하세요.

extensions = ['sphinxcontrib.napoleon']

sphinx-apidoc을 사용하여 API 문서를 빌드하세요:

$ sphinx-apidoc -f -o docs/source projectdir

그러면 Sphinx가 처리할 .rst 파일이 생성됩니다.

$ make html

끝입니다! :)

도구 다운로드