
LibObjectFile을 사용하여 shellcode를 ELF로 변환하는 간단한 dotnet Native AOT 앱
셸코드를 ELF로 변환하기 위해 [LibObjectFile]을 사용하는 간단한 dotnet Native AOT 앱입니다.
32비트 및 64비트(x86, x64) 셸코드가 모두 지원되며, 결과적으로 32비트 또는 64비트 ELF가 생성됩니다.
[릴리스]는 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비트 ELF로 변환(셸코드 시작 오프셋을 66번째 바이트로 설정):
sc2elf -a 32 -o 66 -p C:\shellcode.bin