리버싱 개념, 크랙과 패치, 바이트 오더링

2024. 9. 28. 01:29·reversing

리버싱

컴퓨터 용어 X, 역공학

Reverse Engineering == Reverse Code Engineering

  • 리버싱 분석 방법
    • 정적 분석정적 파일의 겉모습을 분석
    • IDA(정적/동적)
    • 파일을 실행하지 않고 분석
    • 동적 분석동적 파일 깊이 들어가서 분석하고 관찰
    • Cheat Engine, Olly dbg, x64dbg << 동적 분석 프로그램
    • 파일을 실행하고 분석하는 방법

코드

  • 소스코드
  • ex) printf(”hello world”);
  • Hex code
  • assembly code
  • ex) moc eax, ebx

패치와 크랙

패치: 프로세스의 메모리를 변경하는 것

크랙: 패치와 비슷하지만 비도덕적인 메모리 변경

프로그램 빌드 과정: 전처리 → 컴파일 → 어셈블 → 링크

실습) 디버깅의 목표

Hello World 실행파일을 디버깅하여 어셈블리 언어로 변환하고 main함수를 찾아보기. 이 과정을 통해 기본적인 디버거의 사용 방법과 어셈블리 명령어를 알아보자.

→ 한 줄 한 줄 F8로 찾아나가기

  • EP: Entry Point
  • BP: Break Point

바이트 오더링 Byte Ordering

컴퓨터에서 메모리에 데이터를 저장하는 방식

  1. 빅 엔디언 Big Endian단점: Windows의 intel에서는 사용 x
  2. 장점: 보기에 직관적
  3. 리틀 엔디언 Little Endian단점: 보기에 직관적이지 않다
  4. 장점:Windows에서 사용된다. 데이터를 효율적으로 저장할 수 있다.

→ 빅 엔디언(정방향)은 모든 데이터를 순서대로 저장한다. 반면, 리틀 엔디언(역방향)은 모든 데이터를 역순으로 저장한다. 하지만 예외로, 1byte와 str 문자열은 정방향으로 저장한다. 따라서 멀티 바이트만 역순으로 저장한다.

실습) 리틀엔디언의 저장방식을 관찰하고 이해하기

저작자표시 비영리 변경금지 (새창열림)

'reversing' 카테고리의 다른 글

레지스터, 프로세스 메모리 구조, 섹션, 스택, 힙  (0) 2024.10.27
악성코드 종류와 분석  (1) 2024.10.19
static vs. dynamic analysis  (0) 2024.10.13
Binary  (0) 2024.10.13
범용 레지스터, 플래그 레지스터, 스택 프레임  (0) 2024.09.28
'reversing' 카테고리의 다른 글
  • 악성코드 종류와 분석
  • static vs. dynamic analysis
  • Binary
  • 범용 레지스터, 플래그 레지스터, 스택 프레임
hauni
hauni
  • hauni
    200 OK
    hauni
  • 전체
    오늘
    어제
    • 분류 전체보기 (54)
      • W3B H4CK1NG (15)
      • reversing (10)
      • python (19)
      • project (1)
        • WHS (0)
        • network (1)
      • 동아리_I.Sly() (9)
      • something... (0)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    방화벽
    이것이리눅스다
    보안
    네트워크
    VMware
    록키리눅스
    리눅스
    방화벽 구현
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hauni
리버싱 개념, 크랙과 패치, 바이트 오더링
상단으로

티스토리툴바