[리버싱] Assembly 어셈블리어

2025. 2. 14. 12:14·리버싱

드림핵 시스템해킹/리버스 엔지니어링 공부하면서 요약함

1000101과 같은 기계어는 사람이 읽고 이해하기 매우 어려운 반면에
어셈블리어는 비교적 사람이 이해할 수 있으면서도 기계어와 치환되기 때문에 꼭 필요함!


 

어셈블리어 문법

 

mov eax, 3

 
mov는 대입을 뜻하는 명령어, eax와 3은 피연산자 Operand로
eax에 3을 대입하라는 뜻이다
 
피연산자에는 상수, 레지스터, 메모리 3가지가 가능하다
메모리 피연산자는 BYTE 1바이트, WORD 바이트, DWORD 4바이트, QWORD 8바이트로 나뉨
 
 

어셈블리어 주요 명령어
명령어기능
MOV, LEA데이터 전송, 이동
ADD, SUB덧셈, 뺄셈
CMP두 값을 비교하고 플래그 설정
JMP, JE, JNE무조건 점프, 조건부 점프
PUSH, POP스택에 데이터 푸시 및 팝
CALL, RET함수 호출 및 반환

 
이중 MOV와 LEA가 둘 다 값 이동이라 헷갈리는데 MOV의 경우 데이터 값을 복사,
LEA는 메모리 주소를 계산해서 레지스터에 저장하는 차이가 있다
이외에도 AND, OR, XOR 등 논리 연산역시 가능하다
 

1: mov rax, 0xA
2: mov rbx, 0xA
3: cmp rax, rbx ; ZF=1

 
제로 플래그가 성립되기 때문에 두 값이 같았다는 걸 알 수 있음
 
실행흐름을 바꾸는 rip 분기 명령어도 있는데 
jmp: 이동하는 역할
je: 두 피연산자가 같으면 점프 (jump if equl)
jg: 전자 피연산자가 더 크면 점프 (jump if greater)
 
프로시저를 호출한 후에 원래 실행 흐름으로 반환해야 하므로 프로시저로 rip를 이동해야 한다
이를 위한 명령어는 call, leave, ret을 사용
각 함수가 각각 필요한 연산을 하기 위해 스택프레임을 사용


 
 
리눅스는 여러 계층으로 나누어지는데
시스템 소프트웨어가 전체 시스템을 제어하는 커널모드
운영체제가 사용자에게 부여하는 유저모드
유저 모드에서 커널 모드에 요청하는 시스템 콜이 있다(read, write, open, close, connect etc)




 
실습하면서 천천히 알아가는 단계..

'리버싱' 카테고리의 다른 글

윈도우 실행파일 PE파일의 구조와 PE 헤더를 알아보자  (0) 2025.02.19
프로세스의 가상주소공간 VAS 검증을 위한 실습 x64dbg  (0) 2025.02.18
운영체제 프로세스 가상주소공간 Virtual Adress Space  (0) 2025.02.17
윈도우 실행파일의 생성과 실행과정  (0) 2025.02.17
[드림핵] 실습 환경 구축/ 컴퓨터 구조/ 리눅스 메모리 구조  (1) 2025.01.19
'리버싱' 카테고리의 다른 글
  • 프로세스의 가상주소공간 VAS 검증을 위한 실습 x64dbg
  • 운영체제 프로세스 가상주소공간 Virtual Adress Space
  • 윈도우 실행파일의 생성과 실행과정
  • [드림핵] 실습 환경 구축/ 컴퓨터 구조/ 리눅스 메모리 구조
이둥둥
이둥둥
"><script>prompt(document.cookie)</script>
  • 이둥둥
    시골쥐 해커
    이둥둥
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 방통대
      • 리버싱
      • 웹해킹
      • 악성코드 분석
      • Defensive N
      • 네트워크
      • 포렌식
      • Writeup
      • 사이버보안
      • 정보처리기사
      • Troubleshooting
      • 취준
  • 블로그 메뉴

    • 홈
    • 사이버보안
    • 방통대
    • 독후감
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    사이버보안
    burpsuite
    리버싱
    독후감
    hackthebox
    CTF
    웹해킹
    악성코드분석
    정보보안
    tryhackme
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이둥둥
[리버싱] Assembly 어셈블리어
상단으로

티스토리툴바