일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- leetcode 344
- leetcode 561
- 블로그 이전했어요
- MapReduce 실습
- webcrawler
- leetcode 49
- 데이터레이크와 데이터웨어하우스
- leetcode125
- 문자열 조작
- leetcode 234
- 배열
- leetcode 819
- 스파크 완벽 가이드
- leetcode 15
- leetcode 121
- 컴퓨터구조
- Python
- docker로 airflow 설치하기
- 빅데이터를 지탱하는 기술
- airflow docker
- leetcode 238
- 올바른 변수명 짓기
- Hadoop
- wargame.kr
- leetcode
- leetcode 5
- leetcode 937
- Hortonworks Sandbox
- 머신러닝
- ctf-d
- Today
- Total
목록Study/Reversing (11)
HyeM
#1. 문제 문제는 다음과 같다. 프로그램을 실행하면 다음과 같이 메시지 창이 뜨고, 확인버튼을 누르면 cd-rom이 아니라는 창이 뜨고 프로그램은 종료된다. 아마 cd-rom으로 인식되도록 해야 풀리는 문제로 보인다. #2. 문제 풀이 첫번째 화면을 살펴보자. 1) 디버거로 실행하면 보이는 첫 화면이다. API함수들 이름이 보이는 것을 확인가능하다. 또한, 메시지 창에서 봤던 문자들도 보이고, ' YEAH! I really think that your HD is a CD-ROM!' 이라는 문구도 보인다. 왠지 쉽게 풀릴 가능성이 있어보인다. F7과 F8로 코드들을 실행해보며 흐름을 살펴보자. 2) call 코드를 보니 매개변수 4개를 스택에 역순으로 저장하고, MessageBoxA api함수를 호출하는..
#1. Stack # 스택 : 함수 호출과 관련된 지역변수와 매개변수가 저장되는 영역으로 , FILO(First In Last Out)구조이다. *FILO(First In Last Out) : 먼저 들어간 것(push)이 나중에 나온다.(pop) // 스택은 이와 달리 FIFO(First In First Out) # 프로세스에서 스택 메모리의 역할 1. 함수 내의 지역변수 임시저장 2. 함수 호출시 파라미터 전달 (매개변수 저장) 3. 복귀 주소(return address) 저장 # 스택의 특징 "스택은 거꾸로 자란다." : 높은 주소에서 낮은 주소로 스택이 자란다. 프로세스에서 일반적으로 ESP(스택포인터)는 초기값으로 스택의 아래쪽(높은 주소)에 가깝다. Push 명령어로 스택이 쌓이면 ESP는 st..
#1. Register - 레지스터 : CPU 내부에 존재하는 저장공간으로, 고속으로 데이터를 처리할 수 있다. IA-32 레지스터에는 Basic program execution register, x87 FPU registers, Control registers, Memory management registers 등 종류가 다양한데, 그 중 가장 기초적인 Basic program execution 레지스터에 대해 알아본다. #2. Basic program execution register 종류 1. 범용(General) 레지스터 (32bit -8개) 2. 세그먼트(Segment) 레지스터 (16bit -6개) 3. 플래그(Flag) 레지스터 (32bit -1개) 4. 인스트럭션(Instruction) 포..