SlideShare a Scribd company logo
1 of 27
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

What's hot

2013 mcu( 마이크로컨트롤러 ) 수업자료 4
2013 mcu( 마이크로컨트롤러 ) 수업자료 42013 mcu( 마이크로컨트롤러 ) 수업자료 4
2013 mcu( 마이크로컨트롤러 ) 수업자료 4
진우 김
 
Net work study
Net work studyNet work study
Net work study
경 송
 
Ssh tunneling (1)
Ssh tunneling (1)Ssh tunneling (1)
Ssh tunneling (1)
권택 오
 
사내스터디 발표 온라인게임서버이해 20100401
사내스터디 발표 온라인게임서버이해 20100401사내스터디 발표 온라인게임서버이해 20100401
사내스터디 발표 온라인게임서버이해 20100401
guest91f89d83
 
7. variable scope rule,-storage_class
7. variable scope rule,-storage_class7. variable scope rule,-storage_class
7. variable scope rule,-storage_class
웅식 전
 

What's hot (16)

2013 mcu( 마이크로컨트롤러 ) 수업자료 4
2013 mcu( 마이크로컨트롤러 ) 수업자료 42013 mcu( 마이크로컨트롤러 ) 수업자료 4
2013 mcu( 마이크로컨트롤러 ) 수업자료 4
 
Net work study
Net work studyNet work study
Net work study
 
javascript02
javascript02javascript02
javascript02
 
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은
20150509 unix v6로 배우는 커널의 원리와 구조 3 김지은
 
(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell
 
Ssh tunneling (1)
Ssh tunneling (1)Ssh tunneling (1)
Ssh tunneling (1)
 
Effective modern cpp item14
Effective modern cpp item14Effective modern cpp item14
Effective modern cpp item14
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장
 
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
Christmas CTF 보안대회 수상팀 문제풀이서(팀명:구운순살치즈치킨)
 
사내스터디 발표 온라인게임서버이해 20100401
사내스터디 발표 온라인게임서버이해 20100401사내스터디 발표 온라인게임서버이해 20100401
사내스터디 발표 온라인게임서버이해 20100401
 
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
 
AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)AWS EC2 AMI seminar(KELP 2011)
AWS EC2 AMI seminar(KELP 2011)
 
Hm10 Research sheets
Hm10 Research sheetsHm10 Research sheets
Hm10 Research sheets
 
7. variable scope rule,-storage_class
7. variable scope rule,-storage_class7. variable scope rule,-storage_class
7. variable scope rule,-storage_class
 
D2 Havok
D2 HavokD2 Havok
D2 Havok
 
Ryu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic MonitorRyu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic Monitor
 

Similar to Main Variable Program

kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
Samsung Electronics
 

Similar to Main Variable Program (20)

[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
Processor
ProcessorProcessor
Processor
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
 
Pwnable study basic_3
Pwnable study basic_3Pwnable study basic_3
Pwnable study basic_3
 
[IBM 서버] POWER9
[IBM 서버] POWER9[IBM 서버] POWER9
[IBM 서버] POWER9
 
System+os study 1
System+os study 1System+os study 1
System+os study 1
 
Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)
 
Linux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerLinux Kernel 101 for Beginner
Linux Kernel 101 for Beginner
 
Windows via C/C++ 06 스레드의 기본
Windows via C/C++ 06 스레드의 기본Windows via C/C++ 06 스레드의 기본
Windows via C/C++ 06 스레드의 기본
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
 
Assembly 스터디 2
Assembly 스터디 2Assembly 스터디 2
Assembly 스터디 2
 
제 10회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 10회 엑셈 수요 세미나 자료 연구컨텐츠팀제 10회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 10회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
Cpu basic
Cpu basicCpu basic
Cpu basic
 
Ch19
Ch19Ch19
Ch19
 
Pivot3 overview
Pivot3 overviewPivot3 overview
Pivot3 overview
 
부팅
부팅부팅
부팅
 
ES6 for Node.js Study 2주차
ES6 for Node.js Study 2주차ES6 for Node.js Study 2주차
ES6 for Node.js Study 2주차
 
[OpenTRS-001] Hotel California
[OpenTRS-001] Hotel California[OpenTRS-001] Hotel California
[OpenTRS-001] Hotel California
 

More from 경섭 심

More from 경섭 심 (11)

Python Packaging & Debian Packaging
Python Packaging & Debian PackagingPython Packaging & Debian Packaging
Python Packaging & Debian Packaging
 
Debian packaging - Advanced
Debian packaging - AdvancedDebian packaging - Advanced
Debian packaging - Advanced
 
Debian packaging - basic process
Debian packaging - basic processDebian packaging - basic process
Debian packaging - basic process
 
Ubuntu packaging - deploy package
Ubuntu packaging - deploy packageUbuntu packaging - deploy package
Ubuntu packaging - deploy package
 
Ubuntu packaging - make package
Ubuntu packaging - make packageUbuntu packaging - make package
Ubuntu packaging - make package
 
More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)
 
Python comparing
Python comparingPython comparing
Python comparing
 
Python coroutine
Python coroutinePython coroutine
Python coroutine
 
Debian 패키지 관리 프로세스
Debian 패키지 관리 프로세스Debian 패키지 관리 프로세스
Debian 패키지 관리 프로세스
 
Effective Python 2st (Decorator & Generator)
Effective Python 2st (Decorator & Generator)Effective Python 2st (Decorator & Generator)
Effective Python 2st (Decorator & Generator)
 
Effective Python 1st (Test & Style)
Effective Python 1st (Test & Style)Effective Python 1st (Test & Style)
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