Main Variable Program
2017년 9월 26일
WAPPLES개발부 | 심경섭
ASM & Disassemble
I. Background
II. Demo
목차
Background
• 큰 분류로 “.text” 와 “.data” 섹션이 있음
섹션
4
• 실행 가능한 코드들이 위치함
• 실제 실행되는 assembly 코드들
.data 섹션
5
• 실행 가능한 코드가 아님
• 초기 값이 있는 전역 변수, 스태틱 변수, 문자열 등
.text 섹션
6
ASM Grammar
7
• X86 CPU 기준으로 크게 Intel 과 AT&T 방식으로 나뉨
• Intel 방식
• 가독성이 뛰어남
• Windows 플랫폼에서 기본 문법으로 많이 사용
• AT&T 방식
• Intel 보다 가독성이 떨어짐
• Intel 보다 좀 더 많은 정보를 담을수 있음
• 오픈 소스 진영에서 GNU 어셈블러(GAS)의 기본이 AT&T 방식
범용 레지스터
8
레지스터
9
• EIP (Extended Instruction Pointer)
• 다음에 실행해야할 명령어가 존재하는 메모리 주소가 저장됨
SYSCALL
10
• SYSCALL
• Level0 의 시스템 프로시져를 호출하기 위한 명령
• 어플리케이션 레벨에서 커널 레벨로 진입하기 위한 명령
• SYSENTER 나 int 0x80h로 사용되기도 함
Calling Convention
11
• Cdecl (C declaration)
• X86 아키텍처를 위한 C 컴파일러에서 주로 사용됨
• 함수를 위한 인자들을 stack 을 통해 전달
• 결과는 EAX 레지스터를 통해 전달됨 (interger, memory address)
• Syscall
• 32bit OS/2 API 의 표준 호출 규약
• Optlink, Fastcall, Etc…
명령어
12
• MOV (Move)
• Source에서 Destination으로 데이터를 복사
• MOV destination, source
• LEA (Load Effective Address)
• Source의 유효 주소를 계산하여, Destination에 복사
• LEA destination, source
• XOR (Exclusive OR)
• Destination과 Source의 각 비트를 XOR 연산
• XOR destination, source
Syscall Table
13
GDB
14
• x option
• 메모리를 조사 하는 옵션
• show option
• o : 8진법
• x : 16진법
• d : 10진법
• t : 2진법
• b : 1byte
• h : 2byte
• w : 4byte
• g : 8byte
• i : 역어셈블리된 명령의 메모리
• c : ASCII 표의 바이트
• s : 문자 데이터의 전체 문자열
Demo
Basic Main
16
Main Variable
17
Inline-asm
18
Disassamble
19
Disassamble
20
Hex Main
21
Debug Asm
22
Debug Asm
23
Debug Asm
24
Hex encoded main
25
QnA
t h a n k y o u
Copyright 2017 Penta Security Systems Inc. All rights reserved.
KOREA
U.S.A.
JAPAN
Yeouido, Seoul www.pentasecurity.co.kr (HQ)
Houston, Texas www.pentasecurity.com
Shinjuku-Ku, Tokyo www.pentasecurity.co.jp

More Related Content

PPTX
Quick & Dirty Tips for x64 hooks
PPT
2006 03 15_pe & api hook
PDF
비트코인 소스 구조분석
PPTX
16 스레드 스택
PDF
Mysql insert-speed-150830063629-lva1-app6891
PDF
Osx cocoa study-ch36_nstask
PDF
Iocp 기본 구조 이해
PPTX
16장 메모리를 만들어 봅시다
Quick & Dirty Tips for x64 hooks
2006 03 15_pe & api hook
비트코인 소스 구조분석
16 스레드 스택
Mysql insert-speed-150830063629-lva1-app6891
Osx cocoa study-ch36_nstask
Iocp 기본 구조 이해
16장 메모리를 만들어 봅시다

What's hot (14)

PPTX
Net work study
PPTX
javascript02
PDF
(OCI 탐험일지) cloud shell
PPTX
Ssh tunneling (1)
PDF
Effective modern cpp item14
PDF
7가지 동시성 모델 4장
PDF
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
PDF
사내스터디 발표 온라인게임서버이해 20100401
PDF
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
PDF
AWS EC2 AMI seminar(KELP 2011)
PDF
Hm10 Research sheets
PDF
7. variable scope rule,-storage_class
PPT
D2 Havok
PDF
Ryu with OpenFlow 1.3, Traffic Monitor
Net work study
javascript02
(OCI 탐험일지) cloud shell
Ssh tunneling (1)
Effective modern cpp item14
7가지 동시성 모델 4장
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
사내스터디 발표 온라인게임서버이해 20100401
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
AWS EC2 AMI seminar(KELP 2011)
Hm10 Research sheets
7. variable scope rule,-storage_class
D2 Havok
Ryu with OpenFlow 1.3, Traffic Monitor
Ad

Similar to Main Variable Program (20)

PPTX
Assembly 스터디 1
 
PDF
[Kerference] 시작! 리버싱 - 김종범(KERT)
PPTX
Assembly 스터디 2
 
PDF
6. code level reversing
PDF
부팅
PPTX
[170327 1주차]C언어 A반
PDF
Buffer Overflow PPT (OneTwo)
PDF
Reverse Engineering 2015.02.09
PDF
C언어 들어가기
PDF
C언어 들어가기
PDF
[2007 CodeEngn Conference 01] 김기오 - NASM 어셈블러 사용법과 Calling Convention
PPT
백업을 위한 USB운영체제 완료세미나
PDF
[기술세미나 2차시] Ia 32 레지스터 분석 및 abex, crackme를 통한 stack 파라미터 전달 실습
PPTX
Ch19
PDF
10
PPTX
Cpu basic
PDF
MIPS CPU의 이해 (입문)
PPTX
System+os study 1
 
PDF
Ch22 운영체제
PPTX
컴퓨터개론04
Assembly 스터디 1
 
[Kerference] 시작! 리버싱 - 김종범(KERT)
Assembly 스터디 2
 
6. code level reversing
부팅
[170327 1주차]C언어 A반
Buffer Overflow PPT (OneTwo)
Reverse Engineering 2015.02.09
C언어 들어가기
C언어 들어가기
[2007 CodeEngn Conference 01] 김기오 - NASM 어셈블러 사용법과 Calling Convention
백업을 위한 USB운영체제 완료세미나
[기술세미나 2차시] Ia 32 레지스터 분석 및 abex, crackme를 통한 stack 파라미터 전달 실습
Ch19
10
Cpu basic
MIPS CPU의 이해 (입문)
System+os study 1
 
Ch22 운영체제
컴퓨터개론04
Ad

More from 경섭 심 (11)

PDF
Python Packaging & Debian Packaging
PDF
Debian packaging - Advanced
PDF
Debian packaging - basic process
PPTX
Ubuntu packaging - deploy package
PPTX
Ubuntu packaging - make package
PDF
More Effective Python 3st (Multitask)
PDF
Python comparing
PDF
Python coroutine
PDF
Debian 패키지 관리 프로세스
PDF
Effective Python 2st (Decorator & Generator)
PDF
Effective Python 1st (Test & Style)
Python Packaging & Debian Packaging
Debian packaging - Advanced
Debian packaging - basic process
Ubuntu packaging - deploy package
Ubuntu packaging - make package
More Effective Python 3st (Multitask)
Python comparing
Python coroutine
Debian 패키지 관리 프로세스
Effective Python 2st (Decorator & Generator)
Effective Python 1st (Test & Style)

Main Variable Program

  • 1. Main Variable Program 2017년 9월 26일 WAPPLES개발부 | 심경섭 ASM & Disassemble
  • 4. • 큰 분류로 “.text” 와 “.data” 섹션이 있음 섹션 4
  • 5. • 실행 가능한 코드들이 위치함 • 실제 실행되는 assembly 코드들 .data 섹션 5
  • 6. • 실행 가능한 코드가 아님 • 초기 값이 있는 전역 변수, 스태틱 변수, 문자열 등 .text 섹션 6
  • 7. ASM Grammar 7 • X86 CPU 기준으로 크게 Intel 과 AT&T 방식으로 나뉨 • Intel 방식 • 가독성이 뛰어남 • Windows 플랫폼에서 기본 문법으로 많이 사용 • AT&T 방식 • Intel 보다 가독성이 떨어짐 • Intel 보다 좀 더 많은 정보를 담을수 있음 • 오픈 소스 진영에서 GNU 어셈블러(GAS)의 기본이 AT&T 방식
  • 9. 레지스터 9 • EIP (Extended Instruction Pointer) • 다음에 실행해야할 명령어가 존재하는 메모리 주소가 저장됨
  • 10. SYSCALL 10 • SYSCALL • Level0 의 시스템 프로시져를 호출하기 위한 명령 • 어플리케이션 레벨에서 커널 레벨로 진입하기 위한 명령 • SYSENTER 나 int 0x80h로 사용되기도 함
  • 11. Calling Convention 11 • Cdecl (C declaration) • X86 아키텍처를 위한 C 컴파일러에서 주로 사용됨 • 함수를 위한 인자들을 stack 을 통해 전달 • 결과는 EAX 레지스터를 통해 전달됨 (interger, memory address) • Syscall • 32bit OS/2 API 의 표준 호출 규약 • Optlink, Fastcall, Etc…
  • 12. 명령어 12 • MOV (Move) • Source에서 Destination으로 데이터를 복사 • MOV destination, source • LEA (Load Effective Address) • Source의 유효 주소를 계산하여, Destination에 복사 • LEA destination, source • XOR (Exclusive OR) • Destination과 Source의 각 비트를 XOR 연산 • XOR destination, source
  • 14. GDB 14 • x option • 메모리를 조사 하는 옵션 • show option • o : 8진법 • x : 16진법 • d : 10진법 • t : 2진법 • b : 1byte • h : 2byte • w : 4byte • g : 8byte • i : 역어셈블리된 명령의 메모리 • c : ASCII 표의 바이트 • s : 문자 데이터의 전체 문자열
  • 15. Demo
  • 26. QnA
  • 27. t h a n k y o u Copyright 2017 Penta Security Systems Inc. All rights reserved. KOREA U.S.A. JAPAN Yeouido, Seoul www.pentasecurity.co.kr (HQ) Houston, Texas www.pentasecurity.com Shinjuku-Ku, Tokyo www.pentasecurity.co.jp