CTF2 [Dreamhack] shell_basic 문제 설명 Description 입력한 셸코드를 실행하는 프로그램이 서비스로 등록되어 작동하고 있습니다. main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 함수입니다. flag 파일의 위치와 이름은 /home/shell_basic/flag_name_is_loooooong입니다. 감 잡기 어려우신 분들은 아래 코드를 가지고 먼저 연습해보세요! 플래그 형식은 DH{...} 입니다. DH{와 }도 모두 포함하여 인증해야 합니다. $ cat write.asm section .text global _start _start: ;/* write(fd=1, buf='hello', n=48) */ ;/* push 'hello\x00' */ mov .. 2024. 3. 24. 어셈블리어 * 어셈블리어 목적파일 생성 후 링킹작업으로 실행 프로그램 만들기 helloworld를 출력하는 어셈블리어 코드 nasm -f elf64 -o helloworld.o helloworld.s -f elf64 : ELF64로 파일 형식 지정 -o helloworld.o : 출력 파일의 이름 지정 helloworld.s : 어셈블리 코드 파일의 이름 -> helloworld.s 파일을 읽어와서 64비트 elf형식의 오브젝트 파일 'helloworld.o'로 어셈블링 ld -o helloworld helloworld.o ld : GNU Linker를 실행하는 명령어 링커는 여러 오브젝트 파일을 결합하여 실행파일을 생성하는 역할 -> 링커를 사용하여 elf형식의 오브젝트 파일을 실행 파일로 링크하는 명.. 2024. 3. 24. 이전 1 다음