2. 서론
모임에 대해서 고민하다가 각자 실제로 발표를 준비해보기로 함.
• 모임을 진행하며 수행할 문제 풀이 발표를 어떻게 할 것인가
• 문제 풀이를 하려면 무엇이 필요할 것인가
• 발표 시간은 개인 당 어느정도로 할 것인가
• 책 공부 후 시험 혹은 자신의 연구 결과물의 공유를 어떻게 할
것인가
5. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 바이너리 분석을 위해서 설치가 필요한 것들
설치 방법
strace sudo apt-get install strace
ltrace sudo apt-get install ltrace
radare2
git clone https://github.com/radare/radare2
sudo radare2/sys/install.sh
ghex sudo apt-get install ghee
gdb
objdump
sudo apt-get install binutils
dex2jar
wget http://sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip
unzip dex2jar-2.0.zip
cd dex2jar-2.0
chmod u+x ./*.sh
jd-gui
sudo apt-get install libgtk2.0-0:i386
sudo apt-get install libxxf86vm1:i386
sudo apt-get install libsm6:i386
sudo apt-get install lib32stdc++6
wget http://jd.benow.ca/jd-gui/downloads/jd-
gui-0.3.5.linux.i686.tar.gz
tar zxvf jd-gui-0.3.5.linux.i686.tar.gz
6. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 사용법 익히기
• file 명령어
• 파일 정보를 획득할 수 있는 명령어로 분석 전 사용한다.
위 이미지에서 ELF, LSB, Intel 80306 문자열을 볼 수 있는 데,
ELF → 리눅스 운영체제에서 실행되는 파일
LSB → 리틀 엔디언
Intel 80306 → i386용 아키텍처 임을 파악할 수 있다.
7. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 사용법 익히기
• strings 명령어
• 파일 내 문자열 정보를 획득할 때 사용한다.
위 이미지에서는 알아볼 수 있는 값이 없지만, 자주 확인하는
값을 정리해두고 grep 과 함께 활용하면 분석을 빠르게 할 수 있다.
8. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 사용법 익히기
• 트레이서 명령어 (strace, ltrace)
• DEFKTHON CTF 2014 Bin200 문제와 유사한 코드
9. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 사용법 익히기
• 트레이서 명령어 (strace, ltrace)
• 실행 확인
10. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 사용법 익히기
• strace 명령어를 통해서 자식 프로세스 생성 시 pid 확인
• 확인한 pid 입력하여 FLAG 값 획득
11. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 사용법 익히기
• 트레이서 명령어 (strace, ltrace)
• 하드 코딩된 key 값 맞추기
12. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 사용법 익히기
• 트레이서 명령어 (strace, ltrace)
• 실행 확인
13. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 사용법 익히기
• ltrace 명령어를 통해서 key 확인 후, flag 획득
14. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준)
• 담지 못했지만 필요한 것
• 시스템 콜과 시그널에 대한 이해
• gdb를 이용한 리눅스 디버깅(gdb-peda)
• 준비물을 갖춘 뒤 필요한 것
• 시스템 콜과 시그널에 대한 이해
• 어셈블리어에 대한 이해