
Huan은 암호화된 PE 로더 생성기로, PE 파일 구조와 PE 로딩 프로세스를 학습하기 위해 제가 개발했습니다. 실행될 PE 파일을 매번 다른 키로 암호화하며, 로더 바이너리의 새 섹션에 포함시킵니다. 현재 64비트 PE 파일에서 작동합니다.
먼저 Huan이 주어진 PE 파일을 읽고 CBC 모드 AES-128 암호화 알고리즘으로 암호화합니다. 암호화를 위해 Tiny AES in C를 사용했으며, 이 라이브러리의 요구 사항에 맞춰 패딩 코드를 준비했습니다. 암호화가 완료되면 Visual Studio 컴파일러(MsBuild.exe)를 사용하여 로더를 컴파일하고 실행 파일을 생성합니다. 그런 다음 해당 실행 파일에 .huan이라는 섹션을 만들고 암호화된 콘텐츠, 크기 정보, IV 및 대칭 키를 포함시킵니다. 두 키 모두 로더의 각 복사본에 대해 무작위로 생성됩니다. 이 섹션의 구성은 아래에서 확인할 수 있습니다.
로더가 실행되면 먼저 Process Environment Block을 읽어 자신의 이미지 베이스를 가져옵니다. 이미지 베이스를 확인한 후, 자신의 로드된 복사본을 파싱하여 .huan 섹션을 찾습니다. 그런 다음 전체 콘텐츠를 복호화하고 버퍼링한 후 메모리에서 바이너리를 로드합니다.
공인된 보안 테스트 전용입니다. 명시적 허가 없이 시스템에 이 도구를 사용하는 것은 불법입니다.