From bdebc1525f3461c2d376552fd3fa645a1126d73e Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Tue, 20 Sep 2016 16:35:33 +0200 Subject: [PATCH] =?UTF-8?q?Add=20images=20for=20=E2=80=9CReturning=20from?= =?UTF-8?q?=20Exceptions=E2=80=9D=20post?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/images/function-stack-frame.svg | 2 + static/images/qemu-breakpoint-handler.png | Bin 0 -> 17841 bytes .../qemu-breakpoint-return-page-fault.png | Bin 0 -> 17557 bytes static/images/qemu-breakpoint-return.png | Bin 0 -> 18127 bytes .../images/qemu-page-fault-as-breakpoint.png | Bin 0 -> 17356 bytes static/images/red-zone-overwrite.svg | 92 ++++++++++++++ static/images/red-zone.svg | 62 ++++++++++ static/images/xmm-overwrite.svg | 114 ++++++++++++++++++ 8 files changed, 270 insertions(+) create mode 100644 static/images/function-stack-frame.svg create mode 100644 static/images/qemu-breakpoint-handler.png create mode 100644 static/images/qemu-breakpoint-return-page-fault.png create mode 100644 static/images/qemu-breakpoint-return.png create mode 100644 static/images/qemu-page-fault-as-breakpoint.png create mode 100644 static/images/red-zone-overwrite.svg create mode 100644 static/images/red-zone.svg create mode 100644 static/images/xmm-overwrite.svg diff --git a/static/images/function-stack-frame.svg b/static/images/function-stack-frame.svg new file mode 100644 index 00000000..1316739a --- /dev/null +++ b/static/images/function-stack-frame.svg @@ -0,0 +1,2 @@ + +
Stack Frame of the Handler Function
Stack Frame of the Handler Function
Return Address
Return Address
8 Byte
8 Byte
Old StackĀ Pointer
[Not supported by viewer]
New StackĀ Pointer
[Not supported by viewer]
\ No newline at end of file diff --git a/static/images/qemu-breakpoint-handler.png b/static/images/qemu-breakpoint-handler.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1f3590b8771d50afc04c414dbea39846f389bd GIT binary patch literal 17841 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Μ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

I23x<`P%-~&*B;D%v&Y@p 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 literal 0 HcmV?d00001 diff --git a/static/images/qemu-page-fault-as-breakpoint.png b/static/images/qemu-page-fault-as-breakpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..f97446c4612911749f81c96aca4e43d14537fe55 GIT binary patch literal 17356 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 literal 0 HcmV?d00001 diff --git a/static/images/red-zone-overwrite.svg b/static/images/red-zone-overwrite.svg new file mode 100644 index 00000000..d3be0805 --- /dev/null +++ b/static/images/red-zone-overwrite.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + Old Stack Pointer + + + + + + + + + + + + + + + + + + + Return Address + + + + + + + + + + Local Variable 1 + + + + + + + Local Variables 2..n + + + + + + + + + Red Zone + + + 128 bytes + + + + + + + Exception Stack Frame + + + + + + + Register Backup + + + + + + + Handler Function Stack Frame + + + + + + + + + New Stack Pointer + + diff --git a/static/images/red-zone.svg b/static/images/red-zone.svg new file mode 100644 index 00000000..c5194ca8 --- /dev/null +++ b/static/images/red-zone.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + Stack Pointer + + + + + + + + + + + + + + + + + + + Return Address + + + + + + + + + + Local Variable 1 + + + + + + + Local Variables 2..n + + + + + + + + + Red Zone + + + 128 bytes + + diff --git a/static/images/xmm-overwrite.svg b/static/images/xmm-overwrite.svg new file mode 100644 index 00000000..0362968e --- /dev/null +++ b/static/images/xmm-overwrite.svg @@ -0,0 +1,114 @@ + + + + + + + + + mm0 + + + + + + + + + + + + + + + mm1 + + + mm2 + + + mm3 + + + + + + + mm0 + + + + + + + + + + + + + + + mm1 + + + mm2 + + + mm3 + + + + + + + mm0 + + + + + + + + + + + + + + + mm1 + + + mm2 + + + mm3 + + + Program + + + Exception + Handler + + + + + + + + + + + Program + + + Exception + occurs + + + Exception + resolved + +