본문 바로가기

전체 글

(65)
자주 사용되는 Assembly어 정리 본 포스트는 자주 사용되는 x86 아키텍처 assembly를 몇가지 정리한다. Data Management move eax, ecx mov eax, 1 레지스터 ECX에 있는 데이터를 레지스터 EAX로 옮겨라. 레지스터 EAX에 1을 저장해라. move eax, dword ptr ds:[0x12345678] 주소 0x12345678에 있는 데이터를 레지스터 EAX에 저장해라. lea eax, dword ptr ds:[ecx] ECX 레지스터가 가르키는 주소에 있는 값을 EAX 레지스터에 저장해라. Changing Data inc eax dec eax 레지스터 EAX에 있는 값을 1만큼 증가/감소시켜라. add eax, 2 add eax, ebx sub eax, 4 레지스터 EAX에 있는 값을 2만큼 증가..
PE(Portable Executable) File Format 본 포스트는 PE파일에 대해 설명한다. PE 파일이란? 윈도우에서 모든 executable을 Windows가 parse가 가능한 PE format으로 포맷된다. PE data는 두 개의 섹션으로 이루어진다: 코드를 저장하는 .text 섹션 데이터를 저장하는 .data 섹션 PE 파일의 종류에는 4가지가 있다. Executable 계열 : EXE, SCR 라이브러리 계열 : DLL, OCX 드라이버 계열 : SYS 오브젝트 파일 계열 : OBJ(OBJ는 엄밀히 말하면 executable은 아니다.) Notepad.exe 예시 Hex editor로 notepad.exe를 열어보자. 위 사진은 notepad.exe의 PE 파일의 헤더(PE header)를 보여준다. PE Header에 notepad.exe가 ..
Driver 개발환경 만드는 방법 본 포스트는 Windows drive 개발환경을 세팅하는 방법을 설명한다. 1. Visual Studio와 SDK, WDK 설치 https://bithub.tistory.com/22 Visual Studio SDK, WDK 설치 방법 본 포스트는 Visual Studio SDK, WDK 설치 방법을 설명한다. 설명은 Visual Studio 2022 기준으로 진행한다. Visual Studio 2022 외 다른 버전의 경우 설치해야 할 SDK, WDK 버전이 다를 수 있으니 주의하자. SDK 설치 bithub.tistory.com 2. 개발용 가상머신 만들기 https://bithub.tistory.com/23 Windows Driver 개발용 가상머신 만들기 본 포스트는 Windows Driver 개발..