IT전공관련(57)
-
스택 구조 설명 및 구현
스택이란 ? 스택(Stack)이란 자료구조는 선입후출(First In, Last Out: FILO), 후입선출(Last In, First Out: LIFO)의 구조를 가지고 있습니다. 예를 들어어느 개발자의 책상에 빼곡히 쌓여있는 책을 정리하기 위해 가장 위에있는 책부터 꺼내들어 차례대로 정리합니다. 여기서, 먼저 쌓인 책들보다 나중에 쌓인 책들이 먼저 밖으로 나간다고 해서 후입선출의 구조라 말하고, 반대로 나중에 쌓인 책들보다 먼저 쌓인 책들이 늦게 밖으로 나간다고 해서 선입후출의 구조라고 말하는 것입니다. 스택(Stack)도 마치 개발자의 책상에 빼곡히 쌓여있는 책들과 비슷합니다.순서가 있다 - 삽입(insert)과 삭제(delete)를 리스트의 한쪽(top이라고 부름)에서 행함**삽입과 삭제가 모두..
2017.07.30 -
Easy keygen 설명
Reversing.kr >> 2번째 문제 Easy keygen 풀이과정 설명 먼저 문제는 시리얼 >> 5B134977135E7D13 > serial로 주어진 값 5B134977135E7D13를 10,20,30과 각각 XOR시켜주면결국 name이 나온다. 16진수니까 2개씩 끊어서 계산해주면5B 13 49 77 13 5E 7D 13 10 20 30 10 20 30 10 20 (XOR)4B 33 79 67 33 6E 6D 33 K 3 y g 3 n m 3 (ASCII)
2017.07.20 -
어셈블리어 용어 정리 & 리눅스 용어 정리
LAYER 7 과제 - 어셈블리어 용어 정리 & 리눅스 용어 정리 어셈블리어 용어 정리 LEA >> destination register에 주소를 넣는다mov >> destination register에 값을 넣는 역할DWORD PTR DS:[?] >> DWORD PTR은 해당주소에서 32bit를 읽겠단 얘기고, DS는 데이터 세그먼트로, SS 스택 세그먼트도 있다.(피 연산자의 크기를 재설정 한다.)CALL >> 함수를 호출한다.PUSH >> 스택에 데이터를 저장한다.POP >> 스택에서 데이터를 꺼낸다 리눅스 명령어 ls >> 현재 디렉토리 내의 파일을 보여준다. 대표적인 옵션으로는(ls -l)이 있다.cd >> 원하는 디렉토리로 이동한다.(ex) cd .. > 파일을 생성하며 내용을 넣거나,추가하거..
2017.07.19 -
c언어 메모리 구조(코드)
123456789101112131415161718192021222324252627282930313233343536#include#include int num = 0; // num은 전역변수, num1은 스태틱 변수로int abc(int a, int b) { // 프로그램이 종료되기 전까지 static num1; // 소멸되지 않고, 데이터 영역에 포함되어 있다. int temp; // 5줄과 7줄은 각각 매개변수, 지역변수로 if (b > a) { // 함수가 호출되었을때 같이 호출되었다가 temp = a; // 함수가 종료되면 소멸하며, 스택영역에 포함되어있다. a = b; b = temp; } if (num == 1) { //전역변수 num이 1이면 a를 더한다. num1 += a; return nu..
2017.07.17 -
x86 CPU 레지스터 조사
x86 CPU 레지스터 조사 1. 레지스터의 종류와 그 역할먼저 종류가 그 목적에 따라 범용 레지스터, 세그먼트 레지스터, 플래그 레지스터,인스트럭션 레지스터로 구성된다범용 레지스터 : 논리 연산이나 수리 연산에 사용되는 피연산자 또는 주소를 계산하는데 사용되는 피연산자,그리고 메모리 주소가 저장되는 레지스터 이다.세그먼트 레지스터 : 코드 세그먼트, 데이터 세그먼트, 스택 세그먼트를 가르키는 주소가 들어있는 레지스터 이다.플래그 레지스터 : 프로그램의 현재 상태나 조건 등을 검사하는 데 사용되는 플래그들이 있는 레지스터 이다.인스트럭션 레지스터 : 다음 수행해야할 명령이 포함된가상 메모리의 주소가 들어있는 레지스터 이다. 1-1 범용 레지스터프로그래머가 임의로 조작할 수 있게 허용되어 있는레지스터로 8..
2017.07.17 -
시스템 메모리 구조 조사 및 설명
시스템 메모리 구조 조사 및 설명 프로그램을 실행시키면 운영체제는 우리가 실행시킨 프로그램을 위해 메모리구조를 할당해준다.(할당되는 메모리 공간은 크게 스택, 힙, 데이터, 코드 영역으로 나뉘어 진다.)1. 먼저 데이터 영역은 전역 변수, 정적변수, 배열, 구조체 등이 할당되는 영역이라고 말할 수 있다. 이때 데이터 영역은 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야메모리에서 소멸이 된다. 간단한 예제를 이용해 설명하자면,#include int data = 5;int data1 = 6;int main(){ . . . return 0;}이렇게 코드를 짠다면 data와 data1은 데이터 영역에 저장이 된다.참고로 초기화되지 않은 데이터는 용량을 차지하지 않기위해 BBS에 저장이 된다. 실제로 ..
2017.07.17