둘둘리둘둘리둘둘리둘둘리둘둘리둘
보호되어 있는 글입니다.
@IMAGE_SECTION_HEADER 시작주소 IMAGE_OPTIONAL_HEADER시작 offset + Size of Optional Header @DLL 로딩방식 Explicit Linking- Application에서 사용되는 순간 로딩, 사용끝나면 해제 Implicit Linking- Application시작시 로딩, 종료시 해제 @IMPORT Directory Table IMAGE_IMPORT_DESCRIPTOR (IMPORT Directory Table)- Import Name Table RVA : 함수 이름 주소(RVA)- Name RVA : Library 이름 문자열의 주소(RVA)- Import Address Table RVA : 실제 함수 주소(RVA), INT가 정확하다면 필요없음(..
(VA)Virtual Address- 절대주소- 00000000~FFFFFFFF (4GB) (RVA)Relative Virtual Address- 상대주소(offset ?) VA = RVA + Image Base RVA 사용 이유- Relocation 염두 @PE Header 구조IMAGE_DOS_HEADER (DOS EXE Header 확장판)- DOS파일 하위 호환을 위해- e_magic(Signature) : 4D 5A(MZ)- e_lfanew(Offset to New EXE Header) : NT Header의 옵셋 MS-DOS Stub Program- 옵션임(없어도됨)- DOS환경에서 실행시 "This program cannot be run in DOS mode"출력하고 종료하는 어셈블리어 가짐..
cdecl - C에서 default로 사용- Caller가 스택 정리(ex: ADD ESP,8)- 가변 갯수의 Parameter전달 가능 stdcall- Win32API에서 사용 -> 호환성을 위해- Callee가 스택 정리(ex: RETN 8)- 코드 크기 줄어듬 fastcall- stdcall과 동일하나 parameter 전달시 ECX,EDX 레지스터를 이용- parameter가 2개이상일경우 스택이용- 메모리(스택)이 아닌 레지스터(CPU)를 이용하여 빠른속도- ECX, EDX 레지스터 필요시 백업 -> 코드 크기 늘어남
보호되어 있는 글입니다.