현재 나는 맥북 프로 2019년형, 즉 인텔 맥을 사용하고 있다.
뵤비에서 받은 갤럭시북 프로(?)도 있지만 주로 맥북을 사용한다.
옛날에 m1 맥북에어를 구매했었지만 ARM프로세서이기 때문에 로컬에서 x86_64분석을 할 수가 없었고, 일부러 영문자판으로 샀는데 눈물을 머금고 팔았다 ㅠㅠ
옛날에는 VMware에 우분투를 깔아서 포너블을 했었는데 현재는 Docker를 사용한다.
Docker를 쓰며 VMware에 비해 환경구축이 쉽고 빠르며, 또 이미지의 크기가 크지 않아 저장공간 측면에서도 좋았다.
그리고 이미지가 매우 가벼워 구동도 빠르게 된다는 점이 있다.
#!/bin/bash
echo "Running $1 version pwndocker..."
case "$1" in
"16.04") docker run -it --rm --cap-add SYS_PTRACE --security-opt seccomp:unconfined --name 16.04 -v $PWD/study:/study pwnbuntu:16.04 /usr/bin/zsh
;;
"18.04") docker run -it --rm --cap-add SYS_PTRACE --security-opt seccomp:unconfined --name 18.04 -v $PWD/study:/study pwnbuntu:18.04 /usr/bin/zsh
;;
"20.04") docker run -it --rm --cap-add SYS_PTRACE --security-opt seccomp:unconfined --name 20.04 -v $PWD/study:/study pwnbuntu:20.04 /usr/bin/zsh
;;
"22.04") docker run -it --rm --cap-add SYS_PTRACE --security-opt seccomp:unconfined --name 22.04 -v $PWD/study:/study pwnbuntu:22.04 /usr/bin/zsh
;;
esac
나는 각 우분투 버전에 맞는 이미지들을 빌드해놓고 위와 같은 쉘스크립트를 작성하여 사용하고 있다.
./pwndocker 22.04
위와 같이 입력하면 간단하게 입력한 버전에 맞는 docker 컨테이너를 만들고 바로 접속이 된다.
https://github.com/kimg00n/pwn_docker
Dockerfile의 경우 위 링크를 참조하면 된다.
그리고 위 쉘 스크립트를 보면 알겠지만 볼륨?(공유 폴더)을 설정하여 익스코드는 local에서 vscode를 이용해 작성하고 디버깅은 docker 안에서 하는 식이다.
파일을 local에서 만들면 docker내에 바로 적용이 된다. 매우 편하다..
윈도우의 경우 wsl2를 쓴다면 그대로 사용이 가능하다. 지금 밥트북에도 똑같이 환경세팅이 되어있다.
docker내에서 디버깅할때는 tmux를 사용하는데, pwntools를 이용하여 gdb에 attach하면 일반 gui 우분투의 경우 새 터미널 창이 뜨면서 attach가 되지만 docker내의 cli환경에서는 그게 되지 않는다.
context.terminal = ['tmux', 'splitw', '-h']
gdb.attach(p)
이때 익스코드에 위와 같은 터미널 설정을 준다면 gdb가 켜진 pane이 자동으로 우측에 생성되며 디버깅을 편하게 할 수 있다.
tmux 사용법 : https://hbase.tistory.com/200
지금 현재 세팅이 나는 매우 편해서 맘에 든다.
하지만 맥북이 불편할때가 있는데 IDA를 쓸때이다 ㅠㅠ
IDA의 경우 VMware안의 윈도우에 깔려있어서 매우매우매우매우 불편하다.
그리고 이것저것 키다보면 맥북이 터지려한다. 어쩔때는 뜨거워서 손대기가 무섭다.
그리고 무겁다ㅠㅠ 들고다니기가 진짜 빡세다. 맥북에 충전기만 넣어도 가방이 묵직하다.
이럴때는 진짜 그냥 맥북을 처분하고 밥트북을 쓰고 싶은데 진짜 고민이 된다...
웹해킹하는 사람이었으면 그냥 맘편하게 arm맥북 쓸텐데 ㅠㅠ
사실 클라우드 인스턴스 하나 파서 ssh로 분석하는 방법도 있지만 비용도 비용이고 좀 귀찮다.
어쨌든 현재 환경설정은 이런식으로 되어있다.
이게 편해보이는 사람들은 그대로 구축하는 것도 좋은 방법인 것 같다.
혹시 더 좋고 편리한 방법이 있다면 댓글로 알려주면 좋을 것 같다 ㅎㅎ
'Pwn > Tip' 카테고리의 다른 글
[Pwn] TIP - C언어 입력 함수 주의점 (0) | 2023.07.02 |
---|