
PE 실행 파일용 정적 분석기로, 플러그인 기반의 패커, 컴파일러, 의심스러운 임포트, 암호화 상수 및 ClamAV 시그니처 탐지를 지원합니다. VirusTotal 해시 제출 및 Authenticode 검증을 지원합니다.
Manalyze는 PE 파일을 위한 정적 분석 도구로, 실행 파일(또는 실행 파일 집합)에 대한 초기 평가를 수행하는 데 사용할 수 있습니다. 악성 행동을 나타낼 수 있는 약한 신호를 수집하고, 이후 수동 분석에 도움이 되는 정보를 표시합니다.
툴이 생성한 몇 가지 샘플 보고서를 보고 싶다면, 제가 만든 웹 서비스(manalyzer.org)를 사용해 보세요.
Manalyze는 Windows와 Linux용 C++로 작성되었으며 GPLv3 라이선스 조건에 따라 배포됩니다. PE 파일을 위한 강력한 파서로서 유연한 플러그인 아키텍처를 갖추고 있어 사용자가 파일을 심층적으로 정적 분석할 수 있습니다. Manalyze는...
WriteProcessMemory + CreateRemoteThread)오픈소스 프로젝트를 체크아웃하고 빌드하는 데 두 시간을 허비하는 것보다 더 싫어하는 것은 거의 없습니다. 그래서 Manalyze를 최대한 쉽게 빌드할 수 있도록 최선을 다했습니다. 아래 몇 줄이 작동하지 않는다면, 제가 실패한 것이니 저에게 연락해 주시면 수정하겠습니다.
$> [sudo 또는 root] apt-get install libboost-dev libboost-system-dev libssl-dev build-essential cmake git
$> [또는 sudo 또는 root] pkg install boost libressl cmake git
$> git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze
$> cmake .
$> make -j5
$> cd bin && ./manalyze --version
참고: VirusTotal 플러그인은 선택 사항이며 Boost.System 라이브러리가 필요합니다.
마지막으로, Manalyze를 시스템의 모든 디렉터리에서 사용하려면 프로젝트 루트 폴더에서 $> make install을 사용하여 설치하십시오.
cd boost_1_XX_0 && ./bootstrap.bat && ./b2.exe --build-type=complete --with-systemboost_1_XX_0 폴더 경로를 포함하는 환경 변수 BOOST_ROOT를 추가합니다.git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze && cmake .manalyze.sln이 Manalyze 폴더에 나타나야 합니다!# 이미 적절한 빌드 환경이 있으면 다음 두 줄을 건너뛰세요.
user$ xcode-select --install
user$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
user$ git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze
user$ brew install openssl boost
user$ cmake . -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl/ && make -j5
user$ bin && ./manalyze --version
인터넷에 연결되지 않은 머신에서 Manalyze를 빌드해야 하는 경우, 다음 프로젝트를 수동으로 체크아웃해야 합니다:
두 폴더를 external 폴더에 각각 external/yara 및 external/hash-library로 넣습니다. 그런 다음 cmake . -DGitHub=OFF를 실행하고 평소처럼 계속 진행합니다.
Manalyze용 Docker 이미지가 커뮤니티에서 제공됩니다. docker pull evanowe/manalyze 명령을 실행하고 추가 정보는 여기에서 확인하세요.
ClamAV 시그니처는 양이 많고 정기적으로 업데이트되므로 GitHub나 바이너리와 함께 배포하는 것은 의미가 없었습니다. ClamAV 플러그인을 처음 사용할 때 다음과 같은 오류 메시지가 나타날 가능성이 높습니다: [!] Error: Could not load yara_rules/clamav.yara. 이 규칙을 생성하려면 bin/yara_rules(소스 트리) 또는 ${CMAKE_INSTALL_DATADIR}/manalyze/yara_rules(설치된 경우, 일반적으로 /usr/share/manalyze/yara_rules 또는 /usr/local/share/manalyze/yara_rules)에 있는 update_clamav_signatures.py Python 스크립트를 실행하십시오.
시그니처를 새로 고치려면 이 스크립트를 실행하십시오. 컴파일된 Yara 캐시는 $XDG_CACHE_HOME/manalyze/yara_rules 또는 ~/.cache/manalyze/yara_rules에 저장되며, MANALYZE_CACHE_DIR로 재정의할 수 있습니다.
기본 설치 위치(CMAKE_INSTALL_PREFIX 적용)는 다음과 같습니다:
${CMAKE_INSTALL_SYSCONFDIR}/manalyze/manalyze.conf (주로 /etc/manalyze/manalyze.conf 또는 /usr/local/etc/manalyze/manalyze.conf)${CMAKE_INSTALL_DATADIR}/manalyze/yara_rules (주로 /usr/share/manalyze/yara_rules 또는 /usr/local/share/manalyze/yara_rules)${CMAKE_INSTALL_LIBDIR}/manalyze/plugins이러한 값은 환경 변수로 재정의할 수 있습니다:
MANALYZE_CONFIG_DIR, MANALYZE_DATA_DIR, MANALYZE_PLUGIN_DIR, MANALYZE_CACHE_DIR.
$ ./manalyze.exe --help
Usage:
-h [ --help ] Displays this message.
-v [ --version ] Prints the program's version.
--pe arg The PE to analyze. Also accepted as a positional
argument. Multiple files may be specified.
-r [ --recursive ] Scan all files in a directory (subdirectories will be
ignored).
-o [ --output ] arg The output format. May be 'raw' (default) or 'json'.
-d [ --dump ] arg Dump PE information. Available choices are any
combination of: all, summary, dos (dos header), pe (pe
header), opt (pe optional header), sections, imports,
exports, resources, version, debug, tls, config, delay, rich
--hashes Calculate various hashes of the file (may slow down the
analysis!)
-x [ --extract ] arg Extract the PE resources to the target directory.
-p [ --plugins ] arg Analyze the binary with additional plugins. (may slow
down the analysis!)
Available plugins:
- clamav: Scans the binary with ClamAV virus definitions.
- compilers: Tries to determine which compiler generated the binary.
- peid: Returns the PEiD signature of the binary.
- strings: Looks for suspicious strings (anti-VM, process names...).
- findcrypt: Detects embedded cryptographic constants.
- packer: Tries to structurally detect packer presence.
예시: manalyze.exe program.exe manalyze.exe -dresources -dexports -x out/ program.exe manalyze.exe --dump=imports,sections --hashes program.exe manalyze.exe -r malwares/ --plugins=peid,clamav --dump all
## Python 바인딩 (manapy)
Python 바인딩은 `manapy/` 디렉터리에 있으며, `manalyze`로 임포트됩니다.
저장소 루트에서:
```
cd manapy
python -m pip install .
```
## Manalyze를 사용하는 사람들
- [ANY.RUN](https://any.run/)
- [CinCan](https://cincan.io/)
- [DFN-CERT](https://www.dfn-cert.de/)
- [The Hive](https://blog.thehive-project.org/tag/manalyze/)
- [Yomi](https://yomi.yoroi.company)
- [Threat.Zone](https://threat.zone)
이 목록에 추가되기를 원하시면 저에게 연락하거나 풀 리퀘스트를 열어주세요!
## 연락처
[](mailto:justicerage@manalyzer[.]org)
[](https://twitter.com/JusticeRage)
[](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x40E9F0A8F5EA8754)