CORRUPTION
Posts
4 posts[0410] Slab Memory Corruption Case Study#3 - 디버깅
난이도: 최하 커널 로그를 보니 Binder:1887_12란 프로세스가 7676767e 란 가상 주소를 처리 못해 데이터 어보트가 발생했습니다.[ 970.135274 / 04-07 17:58:32.685][7] Unable to handle kernel paging request at virtual address 7676767e[ 970.135315 / 04-07 17:58:32.685][7] pgd = d549c000[ 970.135339 / 04-07 17:58:32.685][0] [7676767e] *pgd=91d26831, *pte=00000000, *ppte=00000000[ 970.135392 / 04-07 17:58:32.685][7] Internal error: Oops: 17 [#
[0410] Slab Memory Corruption Case Study#2 - 디버깅
난이도: 하 이제 커널 로그부터 볼게요. 이전과 비슷한 패턴인데 약간 다른 것 같네요.1 [ 2551.510956 / 04-07 15:43:12.844][3] =============================================================================2 [ 2551.510994 / 04-07 15:43:12.844][3] BUG kmalloc-256 (Tainted: G W ): Invalid object pointer 0xe216ce103 [ 2551.511015 / 04-07 15:43:12.844][3] -----------------------------------------------------------------------
[Kernel][Stability] tcp_v4_rcv -> __stack_chk_fail
커널 패닉 시 아래 콜 스택이 남아 있습니다.[39136682.663247] [ ] dump_stack+0x19/0x1b[39136682.663626] [ ] panic+0xd8/0x1e7[39136682.663988] [ ] ? tcp_v4_rcv+0x635/0x9f0[39136682.664361] [ ] __stack_chk_fail+0x1b/0x20[39136682.664743] [ ] tcp_v4_rcv+0x635/0x9f0[39136682.665131] [<
[Kernel][Stability] 스택 오염(Stack Corruption) 디버깅
아래 글에서 stack canary에 대한 내용을 다뤘습니다. 스택을 깨는 지 점검하는 루틴인데요.http://rousalome.egloos.com/9965540#216009 이번에는 다른 디버깅 패치를 작성해서 어떤 루틴이 스택 오염을 시켰는지 점검해보겠습니다. 우선 스택이 깨지는 순서를 살펴보겠습니다. 1. 아래 함수가 처음 실행될 때 순서로 스택을 푸쉬합니다.current_sp-0x1c--- R14 // 0xC06FAE8C 실행 시 스택 주소(스택 푸쉬 후)current_sp-0x18--- R3current_sp-0x14--- R4 current_sp-0x10--- R11current_sp-0xc---- R12current_sp-0x8---- LRcurrent_sp-0x4---- PC



