반응형 전체글253 [리버싱] 인터럽트에 대해 알아보자 인터럽트(Interrupt)란? 컴퓨터가 작업을 수행하던 도중 예기치 못한 특수한 상황이 발생하여 작업을 중단하고, 그 특수한 상황을 먼저 처리한 후, 원래의 작업으로 되돌아가 나머지 작업을 계속 수행하게 되는 일련의 과정 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생함. 인터럽트 종류 외부 인터럽트(External Inteerupt) 1. 전원 이상 인터럽트 2. 기계 착오 인터럽트 3. 외부 신호 인터럽트 4. 입, 출력 인터럽트 내부 인터럽트(Internal Interrupt) 1. 잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩(Trap)이라고도 부른다. 2... 2017. 9. 3. [여행] C-Bottom의 제주도 여행기 2일차 2017-08-29 벌써 하루가 지나갔다ㅠㅠㅠㅠ 하지만 3일이나 남았는걸!! 늦게 잔거에 비해 아침에 빠르게 일어났다. 7시 기상!!!! 화장실이 두개고 사람은 8명이라 씻는데 시간이 좀 걸렸다. 그래도 순서를 지켜가며 잘 씻는 우리들 ㅎㅎ 멋잇댱 어제 밤에는 숙소 올 때 엄청 무서웠는데 아침에는 경치가 매우 좋았다... 오늘의 드레스 코드는 블루 블랙!! (하나도 안맞음~) 10시쯤 우리는 오설록을 갔다. 오설록이 뭔지 몰랐는데 이니스프리 녹차밭이 있다고 했다. 설렘을 안고 출발~~ 이니스프리 녹차밭이라서 해서 바로 녹색이 보일 줄 알았는데 상점 같은 곳이 먼저였다. 안에는 밑에 사진과 같이... 뭐 그런 구경할 것들이 있었다. 그리고 이니스프리 상점도 있었는데 사람들이 막 구경하고 있었다. 나는 그냥.. 2017. 9. 1. [여행] C-Bottom의 제주도 여행기 1일차 2017-08-28 드디어 기다리고 기다리던 제주도 여행 당일이다. 과 선배와 동기와 함께 가는 첫 여행이라 엄청 기대가 되었다. 남자 2명 여자 6명과 함께 가는 여행 ㅎㅎㅎㅎ 지금부터 써보도록 하겠다~~ 11시 25분 비행기라서 아침 일찍부터 서둘러야 했다. 6시에 일어나서 빠르게 챙기고 수원에 사는 3명과 차를 타고 동수원에 있는 공항 버스 터미널로 갔다. 7시 40분 버스였고 요금은 6천원이었다. 수원 사는 친구 2명과 함께 출발했다!! 동수원에서 김포공항까지는 대략 1시간 30분 정도 걸렸고 도착하니 9시?가 조금 넘은 것 같다. 인천, 안산, 서울, 수원에서 각자 따로 오는거라 도착 시간이 다 달랐다. 수원은 1등... 일단 도착해서 친구들을 만나 공항에 있는 분식점에 가서 밥을 먹었다. 일단.. 2017. 9. 1. [리버싱] 함수: 프롤로그&에필로그와 호출 규약 함수 호출 과정에 대해 알아보자. 1. 함수가 사용할 파라미터를 스택에 넣고 함수 시작지점으로 점프(함수 호출) 한다. 2. 함수 내에서 사용할 스택프레임을 설정한다. (프롤로그) 3. 함수의 내용을 수행한다. 4. 수행을 마치고 처음 호출한 지점으로 돌아가기 위해 스택을 복원한다. (에필로그) 함수의 프롤로그와 에필로그는 함수호출 규약에 따라 조금씩 다르다. 함수 호출 규약이란? 호출자(Caller)와 피호출자(Callee) 간에 '함수를 호출할 때 전달되는 인자의 순서나 사용이 끝나고 나서의 스택 정리 등'에 대한 약속이라고 할 수 있다. 크게 _cdecl, _stdcall, _fastcall이 있다. cdecl 주로 C언어에서 사용되며 함수를 호출한 함수(Caller)에서 스택이 정리된다. 가변 길.. 2017. 9. 1. [리버싱] 스택프레임에 대해 알아보자 스택 프레임이란? 어떤 함수가 호출되었을 때 그 함수가 가지는 공간 구조 이러한 코드가 실행 되었을때 main()이라는 함수가 호출 되고 그 다음에 printf()라는 함수가 호출 된다. main() pushprintf() push printf() popmain() pop프로그램 종료 스택프레임은 LIFO 구조로 이해하면 된다. 2017. 8. 24. [리버싱] 메모리 구조 코드(code) 영역 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(text)영역이라고도 부른다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다. 데이터(data) 영역 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장된다. 데이터 영역은 쓰임새에 따라 3가지 영역으로 나뉜다. - 읽기 전용으로 초기화되는 영역 (.rodata) --> 상수키워드(const)로 선언되는 영역, 시스템에 사용된 각종 문자열 예를들어, printf()의 포맷스트링이나 상수 문자열 - 읽기/쓰기가 가능한 영역으로 초기화되는 영역 (.data) --> 전역변수 중 초기값을 갖는 경우 - 초기화되지 않은 영역 (.bss) --> 전역변수로 초기화 되.. 2017. 8. 24. 이전 1 ··· 16 17 18 19 20 21 22 ··· 43 다음 반응형