서론
사실 저는 c언어를 거이 모릅니다... 제가 프로그램을 접하게 된 계기는 아마 고등학교 수업시간에 배우기 시작했고 관심을 가지고 파이썬을 독학 하기 시작했습니다. 하드웨어에 관심이 많아서 아두이노 그러니까 C++ 기반의 아두이노를 많이 다루었습니다. 해킹은 램 섬웨어에 걸리면서 안전한 사이버 환경을 만들자는 꿈을 가지고 배우기 시작했습니다.
그러면서 파이썬으로 많은 프로그램도 제작을 하고 자료구조도 공부했습니다 자바는 객체 지향을 공부하기 위해 공부를 했습니다 그리고 램 섬웨어가 자바스크립트로 짜인 코드라 자바스크립트를 배우기 전에 한번 공부해봤습니다. 알고 보니 완전 다른 언어지만요 ㅎㅎ.... c언어는 학교 방과 후 학교에서 배웠는데 방과 후 수업은 포인터 전까지 수업을 진행했습니다.
그 이후에 리버싱을 배웠는데 리버싱을 하면서 가장 많이 알게 된 것은 컴퓨터의 구조와 메모리였습니다. 메모리를 학습하니 그 어렵다고 사람들이 말하는 포인터는 정말 쉽고 매우 기초적인 것이란 것을 알게 되었고 리버싱을 배우면서 하나하나 배워가고 있습니다.
최근 대학교 수업 중에 pi를 써야 하는 과제가 있어서 math.h 라이브러리를 불러오는 계기가 있었고 특히 PE 파일에서 도대체 어떻게 저게 4바이트 고 왜 저게 2바이트인지 저는 전혀 몰랐는데 오늘 우현이 알게 되었습니다.
오늘 PE 파일 구조를 끝내고 한 번 더 복습을 하기로 결정을 하게 되었습니다.
많은 사람들이 말하길 PE 파일 포맷은 2번 보고 3번 봐도 알 수 없지만 그러면 조금씩 보이기 시작한다고 말합니다.
사실 원래의 계획되로라면 조금 더 진도를 나가고 복습을 할 예정이었으나 워낙 기초적이고 중요한 내용이라 생각이 돼서 빠르게 복습을 하게 되었습니다. 저번에는 이론이 중심이었다면 이번에는 실습을 위주로 복습이 진행이 될 것 같습니다.
1. 구조체
자료형에 의 정보를 저장하는 의미를 가집니다.
이로 인해서 자료형을 구조체로 정의하여 프로그램을 제작하면 매번 변수를 선언하지 안 해도 된다는 장점이 있습니다.
이런식으로 사용이 간단합니다.
그리고
이런식으로 전역 변수를 설정할 수도 있습니다.
typedef로 구조체를 정의할 경우에는 strucy 없이 사용이 가능합니다.
typedef는 별칭을 붙이는 용도로 사용을 하는데 많이 쓸 일은 없을 것 같습니다.
2. 자료형
저는 c언어를 잘 몰라서.. 잘 보시면 WORD가 보입니다.
아마 자료형의 종류겠죠?
WORD란 typedef로 재정의된 정수형 자료형입니다.
운영체제를 만든 사람들이 만든 자료형으로 win API에 정의된 WORD
이름 | 크기 |
BYTE | 2bit |
WORD | 16bit |
DWORD | 32bit |
QWORD | 64bit |
이제 PE파일 포맷을 다시 공부하면 되겠군요!
===================================================================
아 시발 자취하는게 생각보다 ㅈㄴ 안정적이다. 정말 하루하루가 긴장의 나날들이었는데.... 혼자만의 시간을 가지고 혼자만의 독립된 공간을 가진다는 게 이렇게 행복할 줄 몰랐다. 그렇다고 먹고 싶을 때 자고 싸고 일어나는 것은 아니다. 오히려 전보다 엄격하게 시간을 관리하고 있다. 3시 세끼 밥을 해서 먹는다. 진짜 매일 패스트푸드만 먹고 어떻게 사는지 모르겠다. 밤에는 편안하게 독서도 하고 저번에 꽃병에 꽃아 둔 개나리는 너무 잘 자라서 뭔가 좋다. 파도 잘 자라다가 요즘 천천히 자란다. 내가 많이 잘라먹어서 그런 것 같기도 하고 어쩃든 채소도 길러볼 계획이다. 문제는 이 일상의 행복이다. 일상의 행복에 젖어서 그냥 하루하루 보내면 안 된다. 매일 수업에 열심히 임하고 자기 관리에 힘써야 한다. 근데 그러기가 너무 힘들다... 미치겠다.
'리버싱 > 리버싱 핵심원리' 카테고리의 다른 글
EAT (0) | 2020.04.05 |
---|---|
IAT (0) | 2020.03.29 |
RVA to RAW (0) | 2020.03.11 |
PE File Format : PE Heder (0) | 2020.03.09 |
도대체 리버싱을 어떻게 공부해야 하나요? (0) | 2020.03.04 |