bhj_2008_FFR_EXCALOC.pdf

Similar documents
スライド 1

2016 Institute of Statistical Research


bitvisor-ipc v12b.key

r07.dvi

ohp07.dvi


2017_Eishin_Style_H01

81

02

- 2 -

コンバートスター15シリーズ 製品パンフレット

Digital Photo Professional Ver1.6(Windows)

橡Pro PDF

Intel Memory Protection Extensions(Intel MPX) x86, x CPU skylake 2015 Intel Software Development Emulator 本資料に登場する Intel は Intel Corp. の登録

untitled

DV-0001_センダイウイルス(SeV)ミニゲノムベクター調整キット(120425_ver._2.3)

joho07-1.ppt

double float

Gpci4ソフト_下位DLL_説明書3版.PDF

C による数値計算法入門 ( 第 2 版 ) 新装版 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 新装版 1 刷発行時のものです.

I ASCII ( ) NUL 16 DLE SP P p 1 SOH 17 DC1! 1 A Q a q STX 2 18 DC2 " 2 B R b


char char 1 signed char unsigned char ( ; single-quote 0x27) ASCII Japan Advanced Institute of Science and Technology

PSJ2014_Josh_PacSec2014-v1-jp.pptx

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (


Microsoft Word - C.....u.K...doc

4. 半角文字コード変換表 ここでは 半角文字のコード変換についての詳細な表を記載します の文字と文字コード (16 進数 ) には 表内で灰色の網掛けを設定しています 4.1 IBMカナ文字拡張からへの変換 16 進数 16 進数 16 進数 16 進数 16 進数 16 進数 SP 0x40 S

02

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裶²ó ¨¡ À©¸æ¹½Â¤¡§·«¤êÊÖ¤· ¨¡

C言語入門


(2 Linux Mozilla [ ] [ ] [ ] [ ] URL 2 qkc, nkc ~/.cshrc (emacs 2 set path=($path /usr/meiji/pub/linux/bin tcsh b

Microsoft Word - 中間試験 その1_解答例.doc

I void* School of Information Science, Japan Advanced Institute of Science and Technology

pptx

I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * *

tutorial_lc.dvi

O(N) ( ) log 2 N

DOMINOTM DOMINO Melody TM DOMINO Harmony TM DOMINO Symphony TM PCI PCIe DOMINO TM DOMINO Iota TM - DOMINO Melody TM - DOMINO Alpha 2 TM DOMINO Harmony



Java演習(4) -- 変数と型 --

1.ppt


(F1)

debug ( ) 1) ( ) 2) ( ) assert, printf ( ) Japan Advanced Institute of Science and Technology

1 CUI CUI CUI 1.1 cout cin redirect.cpp #i n c l u d e <s t r i n g > 3 using namespace std ; 5 6 i n t main ( void ) 7 { 8 s t r i n g s ; 10 c

: CR (0x0d) LF (0x0a) line separator CR Mac LF UNIX CR+LF MS-DOS WINDOWS Japan Advanced Institute of Science and Technology

漆パンフ.indd

untitled

独身男性の生命保険加入実態

8 / 0 1 i++ i 1 i-- i C !!! C 2

独身女性の生命保険加入実態

:30 12:00 I. I VI II. III. IV. a d V. VI

main

:30 12:00 I. I VI II. III. IV. a d V. VI

p6-18/村松様

(search: ) [1] ( ) 2 (linear search) (sequential search) 1

/* do-while */ #include <stdio.h> #include <math.h> int main(void) double val1, val2, arith_mean, geo_mean; printf( \n ); do printf( ); scanf( %lf, &v


ユニセフ表紙_CS6_三.indd


DVIOUT

2 P.S.P.T. P.S.P.T. wiki 26

A5_2016cycling_h1h4_4kou

自主課題研究レポート 3 年 64 番小野祐貴 研究テーマについてゲームボーイアドバンス用ソフトウエアの設計 任天堂から 2001 年 3 月 21 日に発売された ゲーム機器の ゲームボーイアドバンス ( 以下 GBA) で実際に動作出来るプログラムを作成した GBA のアーキテクチャは以下の通り

DPD Software Development Products Overview

WinDriver を使用して、簡単にデバイス ドライバを作成

untitled

17 1. strucr Potter ( ) Harry Potter and the Philosopher s Stone 1997 English Title : Harry Potter and the Philosopher s Stone : : 1997 #include<stdio

家族調査2013_00修正

Ethernet / / Ver

#include <stdio.h> unsigned char x86[] = { 0x8b, 0x44, 0x24, 0x04, // mov eax,[esp+4] 0x03, 0x44, 0x24, 0x08, // add eax,[esp+8] 0xc3 // ret }; int ma

CO-Booter 5.0 ユーザーマニュアル

プログラムローダを用いた 関数の置換により Stack-based Buffer Overflow攻撃を 緩和する手法の提案と実装

thesis.dvi

U

void hash1_init(int *array) int i; for (i = 0; i < HASHSIZE; i++) array[i] = EMPTY; /* i EMPTY */ void hash1_insert(int *array, int n) if (n < 0 n >=

untitled

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

スライド 1

住宅(本文、図表)

1 1.1 *1 1. sep1.cpp main() sep.cpp separate() *1 GNOME KDE 3

CERI NEWS

1 C STL(1) C C C libc C C C++ STL(Standard Template Library ) libc libc C++ C STL libc STL iostream Algorithm libc STL string vector l

untitled

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D

1007  ステルスデバッガを利用したマルウェア解析手法の提案

Makefile, TCPソケットサーバ, コマンドライン引数

lexex.dvi

TOEIC

スライド 1

プログラミング言語処理系論 (4) Design and Implementation of Programming Language Processors

Microsoft PowerPoint - kougi7.ppt

PowerPoint Presentation

目 目 用方 用 用 方


untitled

Transcription:

FFR EXCALOC Exploitability Fourteenforty Research Institute, Inc. Fourteenforty Research Institute, Inc. http://www.fourteenforty.jp 1

2

3

4

5

Saved EBP! (int a, char c) char buf[] Saved EBP Canary! (int a, char c) char buf[] 6

int vuln(char *arg) { char buf[128]; Canarycookie } strcpy(buf, arg); printf("buf = %s\n", buf); return 0; Canarycookie 7

char *arg2 int arg1) Saved EBP (int a, char c) int arg1) Saved EBP (int a, char c) char buf[] char *p char buf[] 8

void vuln(char *s, int l) { char *a; char buf[32]; a = buf; while (*s!= '\0') { *a++ = *s++ + 1; } printf("buf = %s\n", buf); return ; } 9

10

void vuln(char *s, int l) { int len; char buf[32]; len = strlen(s); printf("length = %d, %d\n", len, l); Canary } strcpy(buf, s); return ; Canary 11

char *arg2 int arg1) Saved EBP (int a, char c) char *p char buf[] char* arg2) Not use int arg1) Saved EBP (int a, char c) char buf[] char *p char *arg2 12

void vuln(char *s, int l) { int len; char buf[32]; len = strlen(s); printf("length = %d, %d\n", len, l); strcpy(buf, s); arg_0src return ; } 13

14

LOAD_CONFIG 0x00 0x48. 0x40 SEHandlerTable 0x44 SEHandlerCount SEHandlerTable 0x0000XXXX... 15

SEHandlerTable 16

17

HEAP Segments[] FreeList[] HEAP_SEGMENT SignatureFFEEFFEE HEAP FirstEntry HEAP_ENTRY 18

HEAP_SEGMENT SignatureFFEEFFEE HEAP FirstEntry HEAP_ENTRY 19

HEAP FreeList Segments[] FreeList[0] FreeBlock FreeBlock FreeBlock FreeBlock FreeList[n] FreeBlock FreeBlock FreeBlock FreeList[] FreeBlock FreeBlock FreeBlock 20

21

Heap Manager Heap FreeList FreeList Heap Heap FreeList 22

HeapHeader FreeList FreeList 4byte 4byte Heap FreeList HeapManager HeapManager 23

Heap FreeList[0] FreeBlock FreeBlock FreeBlock FreeList FreeList[1] FreeBlock FreeBlock FreeBlock FreeBlock FreeBlock 4byte FreeBlock FreeBlock 24

FreeList 25

26

FreeList 27

28

Heap Header Heap Header[0] Heap Header[1] Heap Header HeapHeader[0] HeapHeader[1] HeapHeader[2] 29

HeapHeader[0] HeapHeader[1] HeapHeader[2] HeapHeader Heap Heap Heap HeapHeader FreeList 30

Heap HeapHeader FreeList Heap Heap Heap 31

Heap HeapHeader FreeList FreeBlock FreeBlock 0x00000000 32

HeapHeader FreeList 33

34

FreeList 35

36

37

38

[EBP-X] 39

40

[EBP+] LEA 41

42

MOV 43

44

VC Delphi fs:0eaxpush VC fs BCC fs:0 fs:0 45

46

47

48

49

Visual C++ BCC32 GCC Delphi 50

51

52

53

Compiler Type Stack Protection Safe SEH Heap Manager Visual C++ /GS Windows Heap Manager 0x00401609 0x88 0x02 0x00401887 0x14D 0x01 0x00401DE4 0x2AB 0x01 54

Compiler Type Stack Protection Safe SEH Heap Manager Visual C++ 0x00401000 0xDC 0x01 0x004010DC 0x08 0x01 0x004010F0 0x59 0x01 55

Compiler Type Stack Protection Safe SEH Heap Manager Borland Delphi Delphi Heap Manager 0x0040114D 0x1CF 0x01 0x00403AEA 0x105 0x06 0x00403EEC 0x62 0x03 56

= A B C A B C Canary = 1, Canary= 1, = 2 Heap Manager Windows = 1, Borland C++ = 2, Delphi = 2 SafeSEH = 1, SafeSEH= 1, SafeSEH= 2 57

Exploitability = / 58

59

60

61

Fourteenforty Research Institute, Inc. http://www.fourteenforty.jp <ishiyama@fourteenforty.jp> 62