Paran Lee2021년 6월 2일[Training] 링맹(링커 스크립트 문맹) 탈출기 - Linux kernel 64 bit RISC-V (작성중)이번에는 링커 스크립트에 대한 필수적인 내용을 알아보려고 해요. 링커 스크립트의 기본적인 문법과 예제로 리눅스 커널의 vmlinux.lds.S 기준으로 알아보도록 할께요. TODO: 기본적인 문법을 정리하자. 아래는...
Wonhyuk Yang2021년 6월 2일[Training] Arm v8 Linux kernel head.S 찍어먹기 (6)이전 시간에는 두 개의 매핑 테이블을 만드는 과정을 살펴봤어요. 이제 남은 것은 CPU가 가상 메모리를 활성화 시키고, 해당 매핑 테이블을 사용하도록 시스템 레지스터들을 세팅해주는 일이에요. 이 부분은 하드웨어어 매우 밀접한 부분이므로, 중요한...
Paran Lee2021년 6월 1일[Practice] 64비트 RISC-V Linux Kernel 을 QEMU + GDB 를 활용하여 동적 분석하기Linux Kernel 컴파일 우리가 열심히 동적 분석할 대상인 리눅스 커널을 컴파일하기 위해 아래 패키지를 설치해보도록 해요. 이제 컴파일할 리눅스 소스코드를 받아야겠죠! 우선 컴파일 타켓을 설정하구요. 해당 파일을 source 커맨드로...
Wonhyuk Yang2021년 5월 31일[Training] Arm v8 Linux kernel head.S 찍어먹기 (5)Remind 지난 시간에는 임시 페이지 테이블을 만들기 위해 필요한 페이지 수를 계산해서 링커 스크립터를 통해 예약해둔 것을 확인할 수 있었는데요. 이번 시간에는 그 공간을 사용해서 임시 페이지 테이블을 만드는 과정을 살펴볼 것이에요. 이제...
Paran Lee2021년 5월 26일[Practice] 64비트 RISC-V 아키텍쳐 부트 업 첫걸음 (작성중)분석 과정에서 사용하는 환경이 일반적으로 우리가 사용하는 데스크톱 환경과는 다르니까, 이를 가능하도록 크로스 플랫폼 환경이 가능하게 Cross Compile, QEMU 가상화, Cross debugging 의 도움을 받으면서 진행보려고 해요....