
AsmResolver를 사용하여 셸코드를 PE로 변환하는 간단한 dotnet Native AOT 앱
셸코드를 PE로 변환하기 위해 [AsmResolver]를 사용하는 간단한 dotnet Native AOT 앱입니다.
32비트 및 64비트 (x86, x64) 셸코드가 모두 지원됩니다 -> 그 결과 32비트 또는 64비트 PE가 생성됩니다.
[릴리스]는 linux-x64 및 win-x64용으로 컴파일되어 있습니다.
얼마나 멋진지 보여주기 위해 Native AOT 형식으로 컴파일되었습니다 (사실 일부 의존성이 리플렉션을 사용하는데, 속임수를 쓰지 않으면 트리밍되어서 고생 좀 했습니다 :D). 다운로드할 수 있는 [릴리스] 바이너리는 dotnet 종속성이 전혀 없는 네이티브 바이너리입니다! (그냥 실행해서 즐기세요)
dotnet SDK 8.0.100-preview.3.23178.7을 사용하여 Native AOT로 컴파일되었습니다.
dotnet SDK 8+를 선택한 이유는 훨씬 더 작은 바이너리를 생성하기 때문입니다.
Native AOT 컴파일은 dotnet 7 버전부터 지원됩니다.
dotnet 7로 빌드하고 싶다면, 프로젝트 파일을 수정하여 net7.0을 대상으로 지정하세요 -> dotnet 7에서는 빌드가 훨씬 쉽습니다.
아주 간단합니다:
-p, --path [필수. 셸코드 파일 경로]
-a, --architecture [필수. 아키텍처: 32 또는 64 (셸코드에 따라 다름)]
-o, --offset [선택. 셸코드 시작 오프셋 (기본값: 0)]
--help [도움말 화면 표시]
--version [버전 정보 표시]
셸코드를 32비트 PE로 변환합니다 (셸코드 시작 오프셋을 66번째 바이트로 설정):
sc2pe -a 32 -o 66 -p C:\shellcode.bin