참고 : 다음 지침은 Python3 용입니다.
Python2.7에 Flashmingo를 설치 해야하는 경우 릴리스 탭에서 릴리스 1.0을 확인할 수 있습니다. 설치 단계는 본질적으로 동일합니다.
requirements.txt 에 나열된 Python3 패키지를 설치하십시오.
다음 명령을 사용할 수 있습니다 : pip3 install -r requirements.txt
대결 기능을 사용하려면 Jython을 설치해야합니다. Ubuntu/Debian 사용자는 apt install jython 발행 할 수 있습니다
프로젝트를 복제하거나 ZIP 파일을 다운로드하십시오.
Flashmingo는 SWF 파일의 분석 프레임 워크입니다. 이 도구는 의심스러운 플래시 파일을 자동으로 발전시키고 추가 분석 프로세스를 안내하여 팀의 귀중한 리소스를 자유롭게합니다. Flashmingo의 분석 모듈을 워크 플로에 쉽게 통합 할 수 있습니다.
오늘날까지 법의학 조사관과 맬웨어 분석가는 의심스러운 SWF 파일을 처리해야합니다. 이력이 반복되면 2020 년에 보안 위협이 Flash의 수명 끝을 넘어서 더 커질 수 있습니다. 시스템은 더 이상 보안 패치로 업데이트되지 않을 레거시 파일 형식을 계속 지원할 것입니다. 자동화는이 문제를 다루는 가장 좋은 방법이며 Flashmingo가 도움을 줄 수있는 곳입니다. Flashmingo는 SWF 파일을 자동으로 처리하여 의심스러운 플래시 샘플을 표시하고 최소한의 노력으로 분석 할 수있는 분석 프레임 워크입니다. 독립형 응용 프로그램 또는 강력한 라이브러리로 다양한 분석 워크 플로에 통합됩니다. 사용자는 사용자 정의 Python 플러그인을 통해 도구의 기능을 쉽게 확장 할 수 있습니다.
Flashmingo는 단순성을 염두에두고 설계되었습니다. SWF 파일을 읽고 내용과 구조를 나타내는 객체 ( SWFObject )를 만듭니다. 그 후 Flashmingo는이 SWFObject 에서 작용하는 일련의 플러그인을 실행하고 그 값을 기본 프로그램으로 반환합니다.
필수 ASCII 아트 흐름도 아래 :
+----------+
| |
+------------+----------->+ 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 (예 : '오버플로', '스프레이', '쉘'등이 포함 된 문자열의 모든 상수 풀을 검색합니다. 플러그인에 이미 하드 코딩 된 공통 하위 문자 목록이있어서 as-is 사용할 수 있습니다. 그러나이 경우 names 매개 변수를 통해 자신의 정의 된 하위 문자열 목록을 전달할 수 있습니다.
Code example:
fm = Flashmingo ()
print fm . run_plugin ( 'DangerousAPIs' , swf = swf )
print fm . run_plugin ( 'SuspiciousNames' , swf = swf , names = [ 'spooky' ])Flashmingo는 유용한 플러그인을 상자에서 배송합니다.
손쉬운 개발을 위해 템플릿 플러그인이 제공됩니다. Flashmingo를 확장하는 것은 다소 간단합니다. 다음과 같은 간단한 단계를 따르십시오.
run 메소드를 대체하십시오당신은 갈 준비가되었습니다 :)
docs 디렉토리를 참조하십시오 $ pip install sphinxcontrib-napoleon
문서를 구축하기 위해 Sphinx를 설정 한 후 Sphinx Conf.py 파일에서 나폴레옹을 활성화하십시오.
conf.py 에서는 나폴레옹을 확장 목록에 추가하십시오
extensions = ['sphinxcontrib.napoleon']
Sphinx-Apidoc을 사용하여 API 문서를 작성하십시오.
$ sphinx-apidoc -f -o docs/source projectdir
스핑크스가 처리 할 .rst 파일이 생성됩니다
$ make html
그게 다야! :)