x64dbg를 사용해야할 일이 있어서 설치를 해보려했지만, 내 노트북은 맥북이었다...
x64dbg는 기본적으로 윈도우 프로그램이기 때문에 맥북에서 실행이 불가능하다.
윈도우는 실행파일이 .exe 이기 때문이다.
(그냥 GDB를 사용할까 했었지만, 난 GUI를 보고싶다)
윈도우를 가상으로 돌린다면 사용할 수 있겠지만, 노트북 용량 이슈로 인해 그건 불가능하고
wine을 사용하기로 결정했다.
wine은 .exe프로그램을 맥북상에서 돌릴 수 있는 프로그램이다.
100% 원 프로그램하고 호환이 되지는 않을 수 있겠지만, 실습, 학습용으로는 충분하지 않을까 싶다.
맥북의 brew로 wine을 설치해주고.
다운받은 x64dbg를 실행시켜보았다.

뭔가 어색하지만, 일단 정상적으로 실행은 되었다.
근데 한가지 간과한점이 있는데, x64dbg는 윈도우용 프로그램이기 때문에
이 디버거로 분석하는 프로그램은 .exe 실행파일만 가능하다는 점...
예를 들어,
윈도우는 hello.c를 컴파일, 링킹하고 hello.exe 실행파일이 나오지만
맥북(리눅스)같은 경우 gcc로 컴파일, 링킹하면 hello.out 실행파일이 나온다.
따라서 맥북으로 만든 실행파일을 x64dbg에서 실행할 수 없다.
그래서,
맥북에서 크로스 컴파일을 진행하여 .exe 실행파일이 나오도록 했다.
brew로 mingw-w64 윈도우 컴파일러를 설치한 후,
x86_64-w64-mingw32-gcc hello.c -o hello.exe
명령어를 입력하여 맥북에서 .c파일을 .exe파일로 크로스 컴파일 해주었다.
그리고 x64dbg에서 크로스 컴파일한 결과인 .exe를 넣었다.

일단 겉으로는 정상적으로 작동된다.
'C프로그래밍 > 개인 공부' 카테고리의 다른 글
| 함수에서 인자를 포인터로 받으면 무조건 원본 변경이 될까? (0) | 2023.05.17 |
|---|---|
| 2차원 배열 포인터 형으로 함수 인자로 전달하기 (0) | 2023.02.12 |
| C언어 - 함수의 포인터 (0) | 2023.01.07 |
| C언어 - 포인터의 배열, 배열의 포인터 (0) | 2023.01.05 |
| C언어 - 이중 포인터 (0) | 2023.01.03 |