donIV-cli/donIV/shellcode/CMakeLists.txt
2025-01-31 19:53:10 +00:00

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
)