Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
RawrXDA — RawrXDA | Kitploit
도구/GitHubGitHub/itsmehrawrxd/rawrxda
Exploit FrameworksCode AnalysisReverse EngineeringShellcodeMalware AnalysisUtilities & FrameworksBinary AnalysisShellcode GenerationPayload DevelopmentBinary Exploitation
GitHubitsmehrawrxd/rawrxda

RawrXDA

61771개월 전아직 검토되지 않음

RawrXDA

저장소 보기

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

RawrXD PE Writer - 완전한 구현

개요

이것은 순수 x64 MASM 어셈블리로 구현된 완전한 PE32+ 라이터이자 기계 코드 이미터이며, 종속성이 전혀 없고 CRT를 사용하지 않습니다. 처음부터 실행 가능한 Windows 실행 파일을 생성합니다.

아키텍처

PE 라이터는 백엔드 디자이너 접근 방식을 따르며, 다음과 같은 깔끔한 API를 제공합니다:

  • PE 실행 컨텍스트 생성
  • 적절한 IAT/INT 구조를 사용한 임포트 추가
  • 섹션 관리와 함께 기계 코드 방출
  • 필요한 모든 헤더를 포함한 완전한 PE 파일 작성

핵심 구성 요소

1. 정의된 구조체

  • IMAGE_DOS_HEADER: e_lfanew 포인터가 있는 표준 DOS 헤더
  • IMAGE_NT_HEADERS64: 파일 헤더와 옵션 헤더가 있는 NT 헤더
  • IMAGE_SECTION_HEADER: .text, .rdata, .idata 섹션 헤더
  • IMAGE_IMPORT_DESCRIPTOR: 임포트 테이블 설명자
  • PE_CONTEXT: PE 파일 빌드를 위한 내부 컨텍스트 구조체

2. 주요 함수

PEWriter_CreateExecutable

  • 입력: RCX = 이미지 베이스 (0 = 기본값), RDX = 진입점 RVA
  • 출력: RAX = PE 컨텍스트 핸들 (0 = 실패)
  • 목적: 완전한 PE 컨텍스트 구조체를 할당하고 초기화

구현 세부 사항:

  • DOS 헤더, NT 헤더, 섹션 헤더를 위한 메모리 할당
  • 적절한 시그니처와 e_lfanew로 DOS 헤더 초기화
  • AMD64 머신 유형과 PE32+ 매직으로 NT 헤더 설정
  • 이미지 베이스, 섹션/파일 정렬로 옵션 헤더 구성
  • 코드 버퍼와 임포트 테이블 할당
  • 기본 가상 주소와 파일 오프셋 설정

PEWriter_AddImport

  • 입력: RCX = PE 컨텍스트, RDX = DLL 이름, R8 = 함수 이름
  • 출력: RAX = 1 성공, 0 실패
  • 목적: 적절한 IAT/INT 구조로 임포트 테이블 구축

구현 세부 사항:

  • 여러 DLL에 대한 임포트 설명자 관리
  • 임포트 룩업 테이블(INT) 항목 생성
  • 임포트 주소 테이블(IAT) 항목 설정
  • 이름별 임포트 구조 처리
  • 임포트 수 추적 및 제한 유효성 검사

PEWriter_AddCode

  • 입력: RCX = PE 컨텍스트, RDX = 코드 버퍼, R8 = 코드 크기
  • 출력: RAX = 코드의 RVA (0 = 실패)
  • 목적: 적절한 섹션 관리와 함께 기계 코드 방출 처리

구현 세부 사항:

  • 기계 코드를 내부 버퍼에 복사
  • 최대 제한에 대한 코드 크기 유효성 검사
  • 코드의 RVA 계산 및 반환
  • 내부 코드 크기 추적 업데이트
  • .text 섹션 콘텐츠 관리

PEWriter_WriteFile

  • 입력: RCX = PE 컨텍스트, RDX = 파일 이름
  • 출력: RAX = 1 성공, 0 실패
  • 목적: 모든 헤더, 섹션, 임포트 테이블을 포함한 완전한 파일 작성

구현 세부 사항:

  • 적절한 Win32 API 호출로 출력 파일 생성
  • DOS 헤더 및 DOS 스텁 작성
  • 최종 NT 헤더 값 계산 및 업데이트
  • .text, .rdata, .idata에 대한 섹션 헤더 작성
  • 적절한 파일 패딩 및 정렬 구현
  • 임포트 테이블과 함께 섹션 데이터 작성
  • 모든 RVA 계산 및 파일 오프셋 처리

메모리 관리

구현은 Windows 힙 API를 사용합니다:

  • GetProcessHeap(): 현재 프로세스 힙 가져오기
  • HeapAlloc(): 0으로 초기화된 메모리 할당
  • HeapFree(): 정리 시 할당된 메모리 해제

모든 메모리 할당에는 적절한 오류 처리 및 정리가 포함됩니다.

파일 구조 레이아웃

root@kitploit:~
DOS 헤더 (64바이트)
DOS 스텁 (가변 크기, 0x80으로 패딩)
NT 헤더 (PE32+의 경우 248바이트)
섹션 헤더 (각 40바이트 × 3개 섹션)
파일 정렬(0x400)로 패딩

.text 섹션 (코드)
- 기계 코드
- 파일 정렬로 패딩

.rdata 섹션 (읽기 전용 데이터)
- 문자열 상수, 리소스
- 파일 정렬로 패딩

.idata 섹션 (임포트 데이터)
- 임포트 설명자
- 임포트 룩업 테이블
- 임포트 주소 테이블
- 이름별 임포트 구조
- 파일 정렬로 패딩

가상 주소 레이아웃

root@kitploit:~
0x1000: .text 섹션 (SECTION_ALIGNMENT)
0x2000: .rdata 섹션
0x3000: .idata 섹션
0x4000: 다음 가용 가상 주소

상수 및 기본값

  • 이미지 베이스: 0x140000000 (x64 기본값)
  • 섹션 정렬: 0x1000 (4KB)
  • 파일 정렬: 0x200 (512바이트)
  • 진입점: 설정 가능한 RVA
  • 서브시스템: 콘솔 애플리케이션 (IMAGE_SUBSYSTEM_WINDOWS_CUI)

사용 예제

root@kitploit:~
; PE 컨텍스트 생성
mov rcx, 0          ; 기본 이미지 베이스
mov rdx, 1000h      ; 진입점 RVA
call PEWriter_CreateExecutable
mov rbx, rax        ; 컨텍스트 저장

; kernel32.dll 임포트 추가
mov rcx, rbx
mov rdx, offset dll_kernel32
mov r8, offset func_GetStdHandle
call PEWriter_AddImport

; 기계 코드 추가
mov rcx, rbx
mov rdx, offset code_buffer
mov r8, code_size
call PEWriter_AddCode

; 실행 파일 작성
mov rcx, rbx
mov rdx, offset filename
call PEWriter_WriteFile

빌드 지침

  1. MASM64 및 Windows SDK가 설치되어 있는지 확인
  2. build.bat를 실행하여 PE 라이터와 예제 컴파일
  3. PE_Writer_Example.exe를 실행하여 hello.exe 생성
  4. 생성된 실행 파일 테스트

오류 처리

모든 함수는 실패 시 0을 반환하고 성공 시 0이 아닌 값을 반환합니다. 구현에는 다음이 포함됩니다:

  • 메모리 할당 실패 확인
  • 파일 I/O 오류 처리
  • 입력 유효성 검사
  • 적절한 리소스 정리
  • 버퍼 경계 검사

제한 사항

  • 최대 99개의 임포트 (MAX_IMPORTS - 1)
  • 최대 64KB 코드 크기 (MAX_CODE_SIZE)
  • 세 개의 고정 섹션 (.text, .rdata, .idata)
  • 콘솔 서브시스템 전용
  • 재배치 지원 없음
  • 디지털 서명 없음

고급 기능

구현은 다음을 위한 견고한 기반을 제공합니다:

  • 사용자 정의 섹션 생성
  • 복잡한 임포트 바인딩
  • 리소스 임베딩
  • 디지털 서명
  • 재배치 지원
  • 예외 처리 테이블

기술 참고 사항

  • 순수 x64 MASM 어셈블리 - CRT 종속성 없음
  • 메모리 관리를 위해 Windows 힙 사용
  • x64용 PE32+ 형식 생성
  • Windows Vista 이상과 호환
  • Microsoft PE 사양 준수
  • kernel32.dll을 제외한 외부 라이브러리 종속성 제로

이 구현은 코드 생성 백엔드, 사용자 정의 컴파일러, 실행 파일 패커에 적합한 완전하고 프로덕션 준비가 완료된 PE32+ 라이터를 제공합니다.

도구 다운로드