
Donut 난독화 샘플에서 로더 셸코드 시그니처를 탐지하고, DONUT_INSTANCE 구조를 파싱하며, DONUT_MODULE 데이터를 덤프하여 내부 페이로드를 추출하고 복호화합니다.
donut 바이너리 난독화 도구를 위한 구성 및 모듈 추출기
donut-decryptor는 파일에서 donut 난독화 도구의 로더 셸코드의 알려진 시그니처를 검사합니다. 발견되면 셸코드를 파싱하여 바이너리에 내장된 DONUT_INSTANCE 구조체를 찾아 복호화하고 추출한 뒤, 관련 구성 데이터를 보고합니다. 바이너리에 DONUT_MODULE이 존재하면 이를 복호화하여 디스크에 덤프합니다.
프로젝트 루트 디렉터리로 이동한 후 pip를 사용하여 donut-decryptor를 설치할 수 있습니다:
cd /path/to/donut-decryptor
python -m pip install .
설치 후 명령줄 스크립트를 사용할 수 있습니다. 사용법을 확인하려면 다음을 실행하세요:
donut-decryptor --help
이 프로젝트는 프로젝트 관리를 위해 Hatch를, 린팅 및 포매팅을 위해 Ruff를, 타입 검사를 위해 mypy를 사용합니다.
Hatch 설치:
pip install hatch
hatch run test
hatch run test-cov # with coverage
hatch run lint:style # check style
hatch run lint:fmt # format code and fix issues
hatch run lint:typing # run mypy type checking
hatch run lint:all # run all checks
samples 디렉터리에 있는 파일들은 비밀번호 infected로 보호된 7z 파일이며, 모두 이 스크립트로 디코딩할 수 있는 donut을 포함하고 있습니다.