개념정리2017. 3. 22. 20:55

리버싱이란 응용프로그램의 내부 구조와 동작원리를 탐구하는 기술이다.


리버싱 기술을 잘 활용하면 개발/테스트 단계에서 발견하지 못했던 버그나 취약점을 파악하고

파일이나 메모리를 직접 수정/패치 하여 문제를 해결할 수 있다.


더 나아가 새로운 기능을 추가시켜 프로그램의 기능을 향상시킬 수 있다.



리버싱에서 가장 중요한것은 프로그램의 동작원리 파악이다.


리버싱의 대상은 실행파일 exe이다.



정적분석 : 파일을 실행하지 않는 단계의 파일의 종류(exe, dll, doc, zip등)


동적분석 : 파일을 직접 실행시켜서 그 행위를 분석하고 디버깅을 통하여 코드의 흐름과

메모리 상태 등을 자세히 살펴보는 방법

'개념정리' 카테고리의 다른 글

유동아이피  (0) 2017.03.22
포트포워딩  (0) 2017.03.22
핸들  (0) 2017.03.22
프로그램 개발 순서  (0) 2017.03.22
웹언어 3가지 비교  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 20:55

핸들이란 구체적인 어떤 대상에 붙여진 번호이다.


32 또는 64비트의 정수값으로 이루어져 있다.


윈도우에는 여러가지 종류의 핸들이 있으며 번호로 관리한다.


메모리를 할당할 때 할당한 메모리의 번지를 취급하기보다는 메모리 번호를 붙여서 관리한다.


핸들은 운영체제가 발급하며 사용자는 핸들을 잘 보관해 두었다가 해당 윈도우는 파일을

다시 참조할때 사용하기만 하면 된다.




고등학교 학생들은 출석번호가 존재한다. 이 출석번호가 핸들이다.


이 번호는 학생들이 만든것이 아니라 담임선생님이 붙여준 것이다.


윈도우 핸들은 윈도우가 만드는것이 아닌, 운영체제(담임)가 붙여준 것이며

윈도우는 값을 잘 보관하고 있다가 참조할때 사용한다.


예를들면, 1학년 1반에서 20번은 딱 한명이다. 20번은 두명이 존재할 수 없다.

하지만 옆반에 2반의 20번이 존재할 수 있다.


같은 종류의 핸들끼리는 절대 중복된 값을 가질 수 없다.

다른 종류의 핸들끼리는 중복된 값을 가실수도 있다.


핸들은 정수형 값을 가지고 있지만 변수로 관리되기 때문에 실제값이 무엇인지 몰라도 된다.

'개념정리' 카테고리의 다른 글

포트포워딩  (0) 2017.03.22
리버싱  (0) 2017.03.22
프로그램 개발 순서  (0) 2017.03.22
웹언어 3가지 비교  (0) 2017.03.22
웹 표준 및 접근성  (0) 2017.03.22
Posted by EL2A
개념정리2017. 3. 22. 20:53

요구 사항 분석


알고리즘의 개발


소스 작성


컴파일과 링크


실행과 디버깅


유지 보수

'개념정리' 카테고리의 다른 글

리버싱  (0) 2017.03.22
핸들  (0) 2017.03.22
웹언어 3가지 비교  (0) 2017.03.22
웹 표준 및 접근성  (0) 2017.03.22
JSP와 서블릿  (0) 2017.03.22
Posted by EL2A