
PE를 셸코드로 변환합니다.
일반 셸코드처럼 인젝션할 수 있도록 PE를 변환합니다.
(동시에 출력 파일은 여전히 유효한 PE로 남습니다.)
32비트 및 64비트 PE를 모두 지원합니다
저자: @hasherezade & @hh86
이 프로젝트의 목표는 최소한의 노력으로 인젝션할 수 있는 PE 파일을 생성할 수 있는 가능성을 제공하는 것입니다. Stephen Fewer의 ReflectiveDLLInjection에서 영감을 받았지만, pe2shc를 사용하면 컴파일 후에 리플렉티브 로딩 스텁을 추가할 수 있다는 점이 다릅니다. 또한 PE 파일의 헤더가 수정되어 인젝션된 버퍼를 처음부터 실행할 수 있습니다. 즉, 셸코드처럼 처리할 수 있습니다. 자동으로 스텁을 찾아 전체 PE 로딩을 계속합니다.
🟢 스텁은 PE 형식의 기본 구조만 지원합니다:
대부분의 PE 파일에는 충분하지만, 일부 실행 파일은 PE 형식의 더 복잡한 측면을 사용할 수 있음을 유의하십시오. 즉, 모든 PE가 성공적으로 셸코드로 변환될 수 있는 것은 아닙니다.
🚫 현재 지원되지 않는 요소의 예:
📦 ⚙️ 최신 릴리스를 다운로드하세요.
모든 서브모듈을 포함하여 저장소를 재귀적으로 클론합니다:
git clone --recursive https://github.com/hasherezade/pe_to_shellcode.git
pe2shc.exe <PE 경로> [출력 경로*]
* - 선택 사항
PE가 성공적으로 변환되면 pe2shc가 출력이 저장된 위치를 알려줍니다:
[+] 파일에 저장됨: <변환된 파일>
예:
[+] 파일에 저장됨: test_file.shc.exe
runshc.exe <변환된 파일>
(*)경고: 변환된 애플리케이션의 비트(32비트 또는 64비트)에 맞는 runshc 버전을 사용해야 합니다. 그렇지 않으면 애플리케이션이 중단됩니다!