ShellCodeEmulator

ShellcodeEmulator는 윈도우즈 쉘코드 에뮬레이션 툴입니다. Unicorn 등을 사용한 많은 툴들이 있지만, 대부분 제대로 작동하지 않는 경우가 많은데, 이유는 Unicorn의 GDT 설정 관련 된 부분의 변화로 인해서 호환성이 떨어지기 때문입니다. 이 프로젝트에서는 이러한 부분에 포커스해서 코드를 만들었고, 또한 윈도우즈 프로세스 메모리를 활용하여 전체 쉘코드 에뮬레이션의 풀 스택을 볼 수 있도록 하였습니다.

다음은 자세한 설명입니다.

ShellCodeEmulator is a Windows shellcode emulation tool based upon unicorn framework. ShellcodeEmulator emulates Windows shellcode with the help of windbg process memory dumps. You can provide shellcode to analyze with any Windows process dump image. The tool will emulate as much as of the userland code using the shellcode bytes and the provided dump image.

You can add your custom syscall handlers or any handlers in between the API calls used by shellcode and the kernel layer. This can provide full view of the user stack. It will let you investigate shellcode that bypasses loose API hooks in higher callstack level.

Research article featuring the tool was published here - Using Memory Artifacts As Shellcode Emulation Environment (ft. Unicorn Framework).