본문 바로가기

분류 전체보기56

2부. 13장 PE File Format(3) 13.6 EAT(Export Address Table)  라이브러리란 다른 프로그램에서 불러 쓸 수 있도록 관련 함수들을 모아놓은 파일(DLL/SYS)입니다. Win32 API가 대표적인 라이브러리이며, 그 중에서도 kernel32.dll 파일이 가장 핵심적인 라이브러리 입니다.  EAT(Export Address Table)은 라이브러리 파일에서 제공하는 함수를 다른 프로그램에서 가져다 사용할 수 있도록 해주는 핵심 메커니즘 입니다. 즉, EAT를 통해서만 해당 라이브러리에서 익스포트하는 함수의 시작 주소를 정확히 구할 수 있습니다. IAT와 마찬가지로 PE 파일 내의 특정 구조체(IMAGE_EXPORT_DIRECTORY)에 익스포트 정보를 저장하고 있습니다. IMAGE_EXPORT_DIRECTORY .. 2025. 1. 21.
2부. 13장 PE File Format(2) 13.4 RVA to RAWPE 파일이 메모리에 로딩되었을 때 각 섹션에서 메모리의 주소(RVA)와 파일 옵셋을 잘 매핑할 수 있어야 하는데, 이러한 매핑을 일반적으로 "RVA to RAW"라고 한다.RVA가 속해 있는 섹션을 찾는다.간단한 비례식을 사용해서 파일 오프셋을 계산합니다.IMAGE_SECTION_HEADER 구조체의 비례식RAW - PointerToRawData = RVA - VirtualAddress RAW = RVA - VirtualAddress + PointerToRawData간단한 퀴즈를 풀어보며 RAW를 이해해보도록 하겠습니다. 그림 13.9는 notepad.exe의 File과 Memory 에서의 모습입니다.Q1. RVA = 5000 일 때, File.. 2025. 1. 16.
2부. 13장 PE File Format(1) 13.1 소개  PE(Portable Executable) 파일은 Windows 운영체제에서 사용되는 실행 파일 형식으로, Microsoft가 기존 UNIX의 COFF(Common Object File Format)를 기반으로 설계한 형식입니다.  PE 파일 형식은 32비트와 64비트 실행 파일 모두를 포함하며, 64비트 실행 파일 형식은 PE32+로 불립니다. PE32+는 PE32(32비트) 형식의 확장된 형태로, 64비트 주소 공간 지원 및 추가 헤더 필드를 제공합니다. 따라서 PE 파일 형식은 현대 Windows 운영체제에서 실행 파일과 라이브러리 파일(DLL)을 아우르는 범용적인 파일 형식으로 자리 잡고 있습니다.13.2 PE File Format종류주요 확장자종류주요 확장자실행 계열EXE, SC.. 2024. 12. 29.
2장 디버거 2.1 개요   해커에게 있어 디버거는 매우 중요하다. 디버거를 이용해 실행 중인 프로세스를 트레이스 하거나 동적 분석을 수행할 수 있다.  동적 분석은 악성코드 조사나 fuzzer 적용에 있어 필수적인 요소다.  디버거는 소프트웨어의 취약점에 접근하고자 할 때 유용하게 사용할 수 있는 기능을 많이 제공한다. 프로세스를 실행시키거나 일시 정지시킬 수 있으며, 브레이크 포인트를 설정하거나 레지스터와 메모리의 값을 수정할 수 있다. 또한 한 대상 프로세스 내부에서 발생하는 예외를 잡아낼 수 있다.  화이트박스 디버거와 블랙박스 디버거에 대해 알아보자. 먼저 대부분의 개발 플랫폼이나 IDE는 개발자가 자신이 작성한 소스코드를 트레이스 할 수 있게 디버거를 자체적으로 내장하고 있다. 이런 종류의 디버거를 화이트.. 2024. 12. 29.
1장 개발 환경 구축 1.1 파이썬 설치현재 책에서는 2.5버전으로 나와있고 이클립스를 이용하고 있지만 난 파이참을 활용하도록 하겠다.https://blog.naver.com/PostView.naver?blogId=h_shuue&logNo=223308521930&categoryNo=72&parentCategoryNo=72&from=thumbnailList 파이참 설치와 시작하기, PyCharm Visual Studio VS Code 비교, 파이썬 특화 IDE간단한 프로그램 구현은 주피터 노트북으로 무리 없이 테스트 해 보고 있었지만 작성한 프로그램 수와 규모...blog.naver.com설치 방법은 위 블로그를 참조하면 된다.1.2 라이브러리1.2.1 ctypesctypes 라이브러리는 동적 링크 라이브러리 함수의 호출을 가.. 2024. 12. 27.
11장 Lena's Reversing for Newbies 11.1 실행크랙하려는 파일을 먼저 실행해보겠습니다.메시비 박스가 뜨면서 두 가지를 지시합니다.모든 성가신 Nags를 없애라.registration code를 찾아라.[확인]을 선택하면 메인 창이 나타납니다.전형적인 serial crackme입니다. 화면의 파란 글씨를 읽어보면 registration을 위해 'SmartCheck'를 사용하라고 합니다.※ SmartCheck : Numega사에서 만든 유틸리티이며, 크래커들이 애용하는 툴 중 하나11.2 분석11.2.1 목표(1) - 메시지 박스 제거첫 번째 목표인 Nag 메시지를 제거해보겠습니다. 그림 11.1의 메시지 박스를 의히마는 것인데 이것은 프로그램을 시작할 때와 그림 11.2에서 [Nag?] 버튼을 눌렀을 때 나타납니다. 디버거로 파일을 열어보.. 2024. 12. 16.