DLL이란? DLL은 Dynamic Link Libray의 약자로 동적 링크 라이브러리라고 불립니다. 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는 라이브러리입니다. DLL을 사용하면 프로그램을 여러 개별 구성 요소로 모듈화할 수 있습니다. 또한 프로그램의 다른 부분에 영향을 주지 않고 각 모듈의 업데이트를 손쉽게 할 수 있습니다. DLL의 이점 더 적은 리소스 사용 여러 프로그램이 같은 함수 라이브러리를 사용하는 경우에 DLL을 사용하면 실제 메모리에서 로드되는 중복 코드를 줄일 수 있어 Windows 운영체제의 다른 프로그램의 성능이 크게 향상될 수 있습니다. 모듈식 아키텍처 활용 DLL을 사용하면 모듈식 프로그램을 효율적으로 개발할 수 있습니다. 여러 언어 버전이 필요한 큰 프로..
어셈플리 헨드레이란? 어셈블리 핸드레이는 어셈블리어를 C언어로 복원하는 작업을 의미합니다. 때문에 어셈블리어와 함수의 프롤로그, 에필로그를 미리 알고 있어야 합니다. 어셈블리어 2023.03.13 - [Security/System] - [003] x86 아키텍처의 어셈블리어 명령어 [003] x86 아키텍처의 어셈블리어 명령어 어셈블리어란 무엇일까요? 먼저 고급 언어와 저급 언어부터 짚고 넘어가겠습니다. 고급 언어는 간단히 말해 인간이 이해하기 쉬운 언어입니다. Python, C, C++, JAVA, Javascript 등이 있습니다. 일반적 movefun-tech.tistory.com 함수의 플롤로그와 에필로그 2023.03.13 - [Security/System] - [005] 함수의 프롤로그(pro..
개념 프롤로그(Prologue)와 에필로그(Epilogue)는 무엇일까요. 프롤로그는 보통 문학 작품에서 본편을 시작하기 전에 먼저 읽도록 하는 파트입니다. 에필로그는 작품의 줄거리가 끝난 후 보충된 부분을 말합니다. 함수의 프롤로그(function prologue)와 에필로그(function epilogue)도 마찬가지입니다. 함수의 프롤로그는 함수 시작 부분의 몇 줄의 코드입니다. 스택과 레지스터를 함수 내에서 사용할 수 있습니다. 함수의 에필로그는 함수의 끝에 나타나며, 스택과 레지스터를 함수가 호출되기 전의 상태로 복원합니다.이는 어셈블리 언어 자체의 일부가 아닌 사용하는 규칙을 나타냅니다. 컴파일 결과 확인 아래 C언어 예제를 바탕으로 x86-64 gcc 4.5.3 컴파일러로 컴파일해보겠습니다...