이 프로그램은 32비트 또는 64비트 쉘코드를 로드하고 실행 또는 디버깅을 허용하도록 설계되었습니다. 또한 원하는 쉘코드를 기반으로 실행 가능한 PE 파일을 생성할 수 있습니다. 표준 리버스 엔지니어링 도구(예: IDA Pro(무료) 및 디버거)에서 출력 바이너리를 사용할 수 있으므로 테스트가 쉬워집니다.
릴리스 바이너리를 사용할 수 있습니다. YouTube에서 이 도구의 데모를 볼 수 있습니다.
이 프로그램은 쉘코드 작업을 위한 여러 옵션을 사용법별로 정리하여 제공합니다.
전역 인수
쉘코드 디버깅
PE 파일 생성
유일한 필수 인수는 쉘코드가 포함된 파일의 경로를 제공하는 것입니다. -f
인수를 사용하면 됩니다. 이는 메모리에 복사되어 실행됩니다. 또한 -ep
인수를 사용하여 진입점을 X바이트로 조정할 수 있습니다. 이는 바이너리 blob의 시작 부분에서 실행을 시작하지 않는 쉘코드를 허용합니다. 마지막으로 -bp
쉘코드 앞에 중단점을 삽입해야 하는지 결정합니다. 이는 INT3인 0xCC
바이트를 통해 수행됩니다. 이를 통해 디버거에서 프로그램을 실행하고 명령줄 인수를 적절하게 정의할 수 있습니다. 중단점을 삽입하면 쉘코드가 실행되기 전에 디버거가 실행을 중단할 수 있습니다. 디버거에서 실행 하지 않는 경우 중단점을 삽입하지 마십시오. 중단점을 삽입하면 프로그램이 중단될 수 있습니다.
-pe
인수를 사용하여 기본적으로 쉘코드를 래핑하는 PE 파일을 생성할 수 있습니다. 쉘코드는 .text
섹션에 위치합니다. -ep
인수를 사용하지 않는 한 진입점은 섹션의 시작으로 정의됩니다. 이 인수는 섹션 시작 부분의 오프셋을 정의하고 PE 파일 진입점(예: AddressOfEntry 필드)을 업데이트하는 데 사용됩니다. 또한 -64
인수를 사용하여 64비트 쉘코드용 64비트 PE 파일을 생성할 수 있습니다. 결과 PE 파일은 IDA Pro, Ghidra와 같은 일반적인 리버스 엔지니어링 도구 또는 x32dbg/WinDbg/etc와 같은 디버거를 통해 분석할 수 있습니다.
-d 인수를 사용하면 SCLauncher는 .content 라는 새 섹션을 만들고 파일 내용을 이 섹션에 복사합니다. 이 섹션은 .text 섹션 뒤에 나옵니다.
아직 바이너리 상태가 아닌 쉘코드가 있는 경우 CyberChef를 사용하여 해당 쉘코드를 변환하고 파일로 다운로드할 수 있습니다.
다음은 CyberChef에서 바이너리 콘텐츠로 변환된 Exploit-DB의 셸코드 예입니다.
이 프로그램은 Microsoft의 C/C++ 컴파일러로 컴파일되도록 만들어졌습니다. 무료/커뮤니티 버전을 설치한 후 Developer Command Prompt
사용하여 cl
사용하여 컴파일할 수 있습니다. 이 명령의 예는 다음과 같습니다.
cl sclauncher.c
그러면 실행 가능한 sclauncher.exe
생성됩니다.