# gdb
gdb 기초
step execution (단계적 실행)breakpoint (설정된 중단점까지 실행)memory examination (메모리나 레지스터 값 확인)gcc -g 옵션 빌드필요. 이후 $ gdb a.out실행run 또는 r리스트 보기 (소스코드 및 라인번호 출력)l브레이

[Windows] WSL 2 gdb 한글 깨짐
WSL2 에서 한글이 깨지는 현상이 발생하는데 이는 gdb 의 버전이 낮아서 발생하는 문제이다. 가장 최신 버전의 gdb 를 설치하면 한글이 깨지는 현상을 막을 수 있다. 짜증나게 WSL 에선 쓸만한 배포판이 Ubuntu 밖에 없어서 최신 버전의 tool 을 제대로

gdb 사용법
우선 gdb 를 설치한다. ubuntu 터미널에서 다음 명령어를 입력하면 된다. 내가 테스트 하고 싶은 파일들이 있는 폴더 (내 경우에는 /pintos/threads/build) 에 들어가서 원래 핀토스 테스트를 실행할때 쓰는 명령어는 였다면 이걸 gdb로 실행하
Bomblab - Phase 6
no. 1251056 readsixnumbers 전까지의 스택 상황이다. 매우 큰 배열? 공간을 뚫어 뒀다. 함수의 이름을 보아 6개의 숫자를 입력 받나 보다. 레지스터를 확인해보니 입력한 6개의 숫자는 $rsp를 기준으로 4바이트 씩 차지하며 저장되어 있다.
Bomblab - Phase5
no. 1251056 sscanf 함수 이전까지의 스택 상황이다. 이번에도 2개의 숫자를 입력받기 위해 레지스터를 할당하는 모습을 볼 수 있다. cmp $0xf, %eax 위에서 AND 연산을 한 후의 in[0]를 다시 $0xf와 비교합니다. 이 때 두 숫자가
Bomblab - phase 4
no. 1251056 sscanf 입력을 받기 전까지의 스택 상황. %rcx, %rdx에 입력 받은 값을 저장하기 위해 주소를 할당하는 모습, %esi에는 어떻게 입력을 받을 것인지를 나타낸다. 여기서는 2개의 숫자를 입력받는다. cmp $0x2, %eax 둘
Bomblab - Phase 3
no. 1251056 sscanf 함수 들어가기 전 상황입니다. "%d %c %d" 정수 문자 정수 이렇게 세개를 입력받는 함수의 형태. 이 때 리턴 된 값이 2개 보다는 커야 폭탄이 터지지 않습니다. 물론 위의 형태를 통해 3개를 입력 받아야 함을 알 수 있습니다
Bomblab - phase 1
no. 1251056 까지의 스택 상황이다. esi 레지스터에는 특정 주소를 가리키고 있고 이 주소가 가지는 문자열은 아래와 같다. 일단 특정한 문자열을 저장하고 함수로 간다. test %eax, %eax 를 통해 두 수를 AND 연산 한다. 그리고 이 두 수가
GDB & Virtual Address
가상 메모리 개념을 좀 더 명확하게 이해하기 위해 GDB 실습을 통해 전역변수, 지역변수들이 실제 가상메모리 어디에 위치하는지를 살펴보도록 하겠습니다. 32-bit 컴퓨터 기준입니다.\--security-opt seccomp=unconfined를 주어야 gdb 작업에서

liveoverflow_license1 리버싱
license_1 파일을 실행하면 키를 입력하라 한다. 키를 입력하니 "WRONG!" 문자열이 출력되어 키 값이 틀렸다는 것을 추측할 수 있다. GDB와 IDA를 실행해 정확한 분석을 진행한다. 분석 set disassembly-flavor intel 명령어를 실
MacOS에서 gdb 사용하기 (인증서 오류 해결)
brew install gdb // homebrew를 통해 gdb 설치설치위치: /usr/local/bin/gdbgdb 실행파일명 // gdb 실행gdb 작동후에 r 옵션으로 인자를 주면Unable to find Mach task port for process-id 4
Petalinux debugger sdk 문제
개요 Petalinux v2019.2는 Yocto 프로젝트를 기반으로 하고 있고, 이를 위한 SDK를 제공하고 있다. 제공되는 SDK로 App, Driver module 등을 컴파일하거나 RootFS, Kernel을 Configuration을 한다. 그래서 SDK가 생성하는 모든 결과물은 동일한 플랫폼을 타겟으로 해야 한다. 하지만 그러지 않는 점을...