STACK

Category
아이템: 
포스트 갯수12

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

By Guillermo Austin Kim | 2019년 1월 10일 | 
스택 오버플로우혹시 스택 오버플로우란 용어를 들어본 적이 있나요?소프트웨어에서 스택 오버플로우란 지역 변수를 너무 크게 잡아 프로세스가 쓰고 있는 스택 메모리를 깨는 것을 의미합니다. 그런데 해커들은 스택 오버플로우를 써서 해킹을 합니다. 말 그대로 함수 인자 값 및 각종 local/auto 변수들이 있는 스택에 **일부러** 정해진 크기 보다 더 많은 데이터를 써서 컴퓨터를 해킹하는 것입니다. 여기서 해킹이라는 용어의 의미는: 1> 해커가 실행하고자하는 악성 코드를 실행할 수 있도록 컴퓨터의 제어권을 탈취하거나 2> 제어권의 탈취가 아니더라도 프로그램에서 매우 중요한 데이터를 조작하는 것 을 뜻합니다. 하지만 해커가 2 번째 방식으로 중요한 데이터를 획득하는 것은 어렵습니다. 그 이유

[c++] stack 개념과 예제

백준의 알고리즘 오프라인 강의를 들으면서 지금까지 배웠던 내용들을 간단하게 정리하려고 한다. 스택 -한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조이다. 마지막으로 넣은 것이 가장 먼저나오기 때문에 LIFO(Last In First Out)이라고 한다. 스택은 두가지 연산으로 이루어져있는데 -push함수 : 스택에 자료를 넣는 연산 -pop 함수 : 스택에서 자료를 빼는 연산 -top 함수 : 스택의 가장 위에 있는 자료를 보는 연산 (가끔 인덱스와 혼동할 수 있다.) -size 함수 : 스택에 저장되어있는 자료의 개수 이다. (size이므로 스택의 크기를 생각 할 수 있으나 개수임을 명심하자) 사실 스택 같은경우 자료구조에서 배열이나 연결리스트로 많이들 구현하고는 하는데 문제를

[c++]10799번 쇠막대기 / stack

문제는 굉장히 어려워 보이나 규칙성을 찾는다면 스택을 이용해 간단하게 해결할 수 있는 문제이다. 입력받은 string을 순차적으로 검사해괄호 ( 가 있다면 스택에 추가하고,괄호 ) 가 있다면 레이저에 의한 ')'인지 쇠막대기에 의한 ')'인지확인하여 각각의 경우를 처리해주면 된다. 레이저에의한 ) 괄호 같은 경우엔 겹쳐져있는 막대기를 한번에 자르는 것이므로 스택에 남아있는 ' ( ' 의 수를 추가하면 될 것 같다.또한 레이저가 끝났으므로 pop을 하여 앞에 남아있는 레이저의 ( 괄호 또한 삭제해준다. 쇠막대기에 의햔 ) 괄호는 쇠막대기가 끝났다는 것을 의미하므로 결과에 +1을 추가해주고, 쇠막대기의 시작을 알려주는 ( 괄호를 pop해준다. 결과값 출력을 해주면 정답을 얻어낼 수 있다. 1

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

By Guillermo Austin Kim | 2018년 2월 12일 | 
아래 패치를 적용하면 해당 프로세스의 스택 메모리 덤프를 stack_dump 배열에 저장합니다.인터럽트 처리가 마무리 된 후 프로세스 레벨에서 stack_dump 배열에 저장된 메모리 덤프를 커널 로그로 출력하면,인터럽트 벡터 심볼 __irq_svc과 스택에 푸쉬한 레지스터 정보를 모두 볼 수 있습니다.diff --git a/drivers/video/fbdev/bcm2708_fb.c b/drivers/video/fbdev/bcm2708_fb.cindex 612293c..2623e0d 100644--- a/drivers/video/fbdev/bcm2708_fb.c+++ b/drivers/video/fbdev/bcm2708_fb.c@@ -713,9 +713,28 @@ static void bcm2708_fb_i