Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

5112
737
82115


태그 : stack 요약보기전체보기목록닫기

1 2

[SW][에세이] 해킹: Heap(힙) Protection으로 해커 공격 원천 봉쇄

스택 오버플로우혹시 스택 오버플로우란 용어를 들어본 적이 있나요?소프트웨어에서 스택 오버플로우란 지역 변수를 너무 크게 잡아 프로세스가 쓰고 있는 스택 메모리를 깨는 것을 의미합니다. 그런데 해커들은 스택 오버플로우를 써서 해킹을 합니다.말 그대로 함수 인자 값 및 각종 local/auto 변수들이 있는 스택에 **일부러** 정해진 크...

[라즈베리파이] 인터럽트 핸들러에서 스택 덤프 저장

아래 패치를 적용하면 해당 프로세스의 스택 메모리 덤프를 stack_dump 배열에 저장합니다.인터럽트 처리가 마무리 된 후 프로세스 레벨에서 stack_dump 배열에 저장된 메모리 덤프를 커널 로그로 출력하면,인터럽트 벡터 심볼 __irq_svc과 스택에 푸쉬한 레지스터 정보를 모두 볼 수 있습니다.diff --git a/drivers/video/f...

[Kernel][Stability] tcp_v4_rcv -> __stack_chk_fail

#커널 크래시 디버깅 및 TroubleShootingRace로 mmc_wait_data_done() 함수에서 커널 패닉"cat /d/shrinker" 입력 시 커널 패닉함수 포인터 미지정으로 xfrm_local_error() 커널 패닉preempt 조건으로 ___might_sleep() 함수 크래시스택 카나리: __stack_chk_fail() 함수 크...

[Kernel][Stability] 스택 오염(Stack Corruption) 디버깅

아래 글에서 stack canary에 대한 내용을 다뤘습니다. 스택을 깨는 지 점검하는 루틴인데요.http://rousalome.egloos.com/9965540#216009이번에는 다른 디버깅 패치를 작성해서 어떤 루틴이 스택 오염을 시켰는지 점검해보겠습니다.우선 스택이 깨지는 순서를 살펴보겠습니다.1. 아래 함수가 처음 실행될 때 순서로 스택을 푸쉬...

ARM64- Stack Push Userspace -> Kernel Space 코드리뷰

유저 공간에서 실행된 레지스터가 커널 Bottom Stack에 Push 되는 디버깅 정보를 예전 페이지에 업데이트했잖아요.아래와 같은 메모리 덤프를 확인했었죠.(출처:http://rousalome.egloos.com/9966225)NUD:FFFFFFE4DE6A7EB8| 3C 6B 77 2B 46 76 A8 C2  0xC2A876462B776B3...

IRQ Stack(ARM64) - Debugging(디버깅)

아래 블로그에서 IRQ Stack(ARM64)에 대해 소개를 했는데요.http://rousalome.egloos.com/9966360이번에는 직접 코어 덤프에서 IRQ Stack 덤프를 살펴볼께요.IRQ Stack Feature를 지원하는 프로세스의 콜스택을 Trace32로 잡아서 확인해 보았어요.참고로, 아래는 CPU0에서 idle process가 돌...

IRQ Stack(ARM64) - Overview

IRQ Stack란 뭘까요. IRQ가 쓰는 스택이라고 말할 수 있나요? 이번 시간에 IRQ Stack에 대한 내용을 조금 더 짚어 보겠습니다. IRQ Stack이란 IRQ가 떳을 때 사용하는 스택 공간입니다. 달리 설명하면 인터럽트 컨택스트로 코드가 실행될 때 스택에 지역 변수를 할당 받고 함수를 호출할 때 프레임 포인터 레지스터를 스택에 푸쉬...

ARM64(Aarch64) - 함수 호출시 Stack Push(스택 푸쉬) 규약

아래와 같은 콜 스택에서 유저 공간에서 돌던 레지스터 Stack Push와 Exception 발생 시 Stack Push에 대해서 살펴봤어요. 이제는 평상시 함수 호출 시 어떻게 Stack Push를 하는 지 점검하려고 해요.자 계속 그 동안 다뤄왔던 아래 "rild"란 프로세스의 콜스택에서 msm_ipc_router_sendmsg()-> msm_...
1 2