[ make ] makefile 작성하기
·
Linux
개요내가 작성한 소스코드를 gcc로 각각 컴파일하는 것의 불편함을 줄이기 위해 make를 사용한다. make 프로그램이 빌드를 자동으로 수행하려면 각 소스파일의 의존 관계나 빌드 순서, 빌드 옵션등에 대한 정보가 필요하다.이러한 정보를 저장하는 파일이 makefile이다. Make 문법make 문법의 기본 형식은 3 부분으로 구성되어 있다. Target : 생성할 파일 - 특정 레이블을 지정하여 해당 레이블과 관련된 부분만 빌드하는 것이 가능Dependency : Target 생성에 필요한 소스파일이나 오브젝트 파일 등을 나타냄Command : Dependency에 관련된 파일이 수정되면 실행할 명령을 의미Target : Dependency --- Command Command*이때 command 앞은 공..
Docker로 amd64 Linux 환경 설정
·
Linux/Docker
개요리눅스 시스템 등을 공부하면서 x86, x64 환경을 사용해야할 일이 대부분이고, MAC을 사용하는 입장으로써 아주아주 불편했다. 지금까지는 UTM과 같은 가상머신으로 애뮬레이터를 돌리거나, 로컬에서 QEMU를 사용하여 ssh로 연결하는 등의 과정을 통해서 x64 기반의 시스템을 활용해왔다. CTF 문제들 중에 도커를 사용하는 문제들도 존재하고, 아예 독립적인 도커 환경에서 환경을 설정해보고자 시작하게 되었다.  Docker도커는 컨테이너 기반 가상화 도구로, 리눅스 상에서 컨테이너 방식으로 프로세스를 격리해서 실행하고 관리할 수 있도록 한다. 도커를 사용한다면, 이미지를 기반으로 컨테이너를 실행할 수 있으며, 해당 이미지를 관리하기 쉽다.  Docker Image컨테이너를 만드는 데 사용되는 읽기 ..
Mac에서 exec 실행 (zsh: exec format error mac 해결)
·
Linux
mac에서 x86_64등으로 빌드된 프로그램은 실행되지 않는다. zsh: exec format error mac이라는 에러와 함께 m기반 cpu로는 실행되지 않는다. exec 파일은 intel cpu 기반으로 빌드한 것이기 때문에 mac cpu를 기반으로 하는 가상환경에서는 불가능하다. 두 가지 방법이 있는데, 첫번째는 가상머신을 가상화하지 않고 애뮬레이터로 돌리는 것이고 aws를 사용하는 것이다. 방법 1 : UTM 사용하기1. UTM의 +버튼을 눌러 가상환경을 만들어준다2. Emulate/linux 선택Virtualize는 가상화로 현재 내 cpu를 기반으로 가상머신을 만들어준다. 즉, Virtualize로 만들어진 가상환경은 여전히 arm64기반이므로 exec파일을 실행할 수 없다.따라서 아예 Em..