개인노트
[ 리버싱 엔지니어링(Reversing Engineering, RE: 역공학) 이란? ]기계장치 또는 시스템 의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하여 단점을 보완하고 새로운 기능을 추가하는 일련의 작업이다. [ 리버싱 방법 ]실행 파일의 분석 방법에는 두 가지 방법으로 나뉜다. 정적 분석으로 정보를 수집하면서 프로그램의 구조와 동작 원리에 대해 예측 할 수 있다.1. 정적 분석 : 파일의 외관을 관찰하고 분석하는 방법이다. 파일의 종료, 크기, 헤더(PE)정보, 내부 문자열 등.. 다양한 내용을 확인하는 것이다. 디스어셈블러(Disassembler)를 이용하여 내부 코드와 구조를 확인 하는 것도 정적 분석 방법이다.2. 동적 분석 : 파일을 실행시켜서 행위를 분석하고 디버깅을 통하여 코드..
* 포인터 배열이란 ? 포인터 변수로 이루어져 주소 값의 저장이 가능한 배열을 '포인터 배열' 이라고 한다. Source.c #include int main(void) {int num1 = 10, num2 = 20, num3 = 30;int *arr[3] = { &num1,&num2,&num3 };int i; for (i = 0; i
char str1[] = "billnairk";- 변수 형태의 문자열 char *str2 = "billnairk";- 상수 형태의 문자열 #include int main(void) {char str1[] = "MS tistory"; // 변수 형태의 문자열char * str2 = "KMS billnairk"; // 상수 형태의 문자열 printf("%s, %s \n", str1, str2); str2 = "babo";// str2[0] = "A"; 불가능printf("%s, %s \n", str1, str2); getchar();} 다음 문장이 처리되는 과정 [ char *str2 = "billnairk"; ]1. 문자열이 메모리 공간에 저장된다.2. 메모리의 주소 값이 반환된다.즉, 문자열이 0x123..