Wonhyuk Yang2021년 6월 20일[Arm64] KSMA attack과 init_pg_dir 도입 분석arm64 아키텍처에서는 다른 아키텍처와 다르게 부팅때 사용되는 페이지 테이블이 다른데요. init_mm의 구조체가 아래와 같이 구성되어 있어, 초기 페이지 테이블이 swapper_pg_dir인지 init_pg_dir였는지 혼동하기 쉬운 것...
Wonhyuk Yang2021년 6월 20일inline assembly을 활용한 shellcode 작성System hacking ctf 문제를 풀다보면, 쉘코드가 필요할 때가 있는데요. 직접 어셈블리어로 짤 수 있어요, 하지만 이 방법은 타켓 아키텍처에 익숙하지 않은 이상 까다로운 일이에요. 그 다음으로 웹 상에서 원하는 쉘 코드를 가져올 수...
Wonhyuk Yang2021년 6월 14일[Training] Arm v8 Linux kernel head.S 찍어먹기 (完)지난 시간에는 MMU를 활성화하기 전에 필요한 여러가지 시스템 레지스터들을 세팅해줬어요. 이제 MMU를 활성화시키고 start_kernel 함수로 진입할 때가 되었네요. 자 그럼 힘차게 살펴보도록 할게요. 해당 글의 타겟 아키텍처는...
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 커맨드로...