40 lines
1.2 KiB
CMake
40 lines
1.2 KiB
CMake
set(
|
|
SHELLCODE_INCLUDE_DIR
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
PARENT_SCOPE
|
|
)
|
|
|
|
set(
|
|
SHELLCODE_OUT_DIR
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${SHELLCODE_OUT_DIR}/dlopen_shellcode.o
|
|
COMMAND as --64 -o ${SHELLCODE_OUT_DIR}/dlopen_shellcode.o ./dlopen_shellcode.s
|
|
DEPENDS ./dlopen_shellcode.s
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMENT "Assemble dlopen() shellcode (x86_64)"
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${SHELLCODE_OUT_DIR}/dlopen_shellcode.bin
|
|
COMMAND objcopy -j .text -O binary ${SHELLCODE_OUT_DIR}/dlopen_shellcode.o ${SHELLCODE_OUT_DIR}/dlopen_shellcode.bin
|
|
DEPENDS ${SHELLCODE_OUT_DIR}/dlopen_shellcode.o
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMENT "Copy dlopen() shellcode to binary file (x86_64)"
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${SHELLCODE_OUT_DIR}/dlopen_shellcode.hpp
|
|
COMMAND python bin2cppheader.py ${SHELLCODE_OUT_DIR}/dlopen_shellcode.bin
|
|
DEPENDS ${SHELLCODE_OUT_DIR}/dlopen_shellcode.bin
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMENT "Convert dlopen() shellcode binary to C++ header (x86_64)"
|
|
)
|
|
|
|
add_custom_target(
|
|
shellcode
|
|
DEPENDS ${SHELLCODE_OUT_DIR}/dlopen_shellcode.hpp
|
|
)
|