ROP

3.5K Views

December 08, 23

スライド概要

Return Oriented Programming

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

既にEIPは制御済み レジスタ EAX: NULL EBX:NULL EIP:0x10010101 ESP:0x00700004 => アドレス データ 0x00700000 0x10010101 0x00700004 0x10150101 0x00700008 0x10030101 0x0070000c 0x41414141 0x00700010 0x10010101 Copyright © 2023 N.F.Laboratories Inc. EIP アドレス => 0x10010101 スタック ESP メモリ 命令 add eax, 0x08 0x10010104 ret - - ... ...

2.

レジスタ EAXにはADD命令の結果が格納 EAX: 0x08 EBX:NULL EIPは次の命令を指す EIP:0x10010104 ESP:0x00700004 => EIP アドレス 命令 0x10010101 add eax, 0x08 => 0x10010104 スタック ESP メモリ アドレス データ 0x00700000 0x10010101 0x00700004 0x10150101 0x00700008 0x10030101 0x0070000c 0x41414141 0x00700010 0x10010101 Copyright © 2023 N.F.Laboratories Inc. ret - - ... ...

3.

EIPは直前のESPに格納された値を保存 レジスタ EAX: 0x08 EBX:NULL EIP:0x10150101 ESP:0x00700008 ESPは次のアドレスを指す スタック ESP => アドレス データ 0x00700000 0x10010101 0x00700004 0x10150101 0x00700008 0x10030101 0x0070000c 0x41414141 0x00700010 0x10010101 Copyright © 2023 N.F.Laboratories Inc. メモリ EIP アドレス 命令 => 0x10150101 add ebx, 0x0c 0x10150104 sub eax, 0x04 0x10150107 ret ... ...

4.

EBXにはADD命令の結果が格納 レジスタ EAX: 0x08 EBX:0x0c EIP:0x10150104 ESP:0x00700008 スタック ESP => アドレス データ 0x00700000 0x10010101 0x00700004 0x10150101 0x00700008 0x10030101 0x0070000c 0x41414141 0x00700010 0x10010101 Copyright © 2023 N.F.Laboratories Inc. メモリ アドレス 命令 0x10150101 add ebx, 0x0c => 0x10150104 sub eax, 0x04 EIP 0x10150107 ret ... ...

5.

レジスタ EAXにはSUB命令の結果が格納 EAX: 0x04 EBX:0x0c メモリ EIP:0x10150107 ESP:0x00700008 スタック ESP => アドレス データ 0x00700000 0x10010101 0x00700004 0x10150101 0x00700008 0x10030101 0x0070000c 0x41414141 0x00700010 0x10010101 Copyright © 2023 N.F.Laboratories Inc. EIP アドレス 命令 0x10150101 add ebx, 0x0c 0x10150104 sub eax, 0x04 => 0x10150107 ... ret ...

6.

EIPは直前のESPに格納された値を保存 レジスタ EAX: 0x04 EBX:0x0c EIP:0x10030101 ESP:0x0070000c スタック => アドレス データ 0x00700000 0x10010101 0x00700004 0x10150101 0x00700008 0x10030101 0x0070000c 0x41414141 0x00700010 0x10010101 Copyright © 2023 N.F.Laboratories Inc. EIP アドレス => 0x10030101 ESPは次のアドレスを指す ESP メモリ 命令 pop ebx 0x10030102 ret - - ... ...

7.

EBXにはPOP命令の結果が格納 レジスタ EAX: 0x04 EBX:0x4141414141 EIP:0x10030104 ESP:0x00700010 POP命令の結果、ESPは次のアドレスを指す スタック ESP => アドレス データ 0x00700000 0x10010101 0x00700004 0x10150101 0x00700008 0x10030101 0x0070000c 0x41414141 0x00700010 0x10010101 Copyright © 2023 N.F.Laboratories Inc. メモリ EIP アドレス 命令 0x10030101 pop ebx => 0x10030102 ret - - ... ...