<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Assembly x86 on Taha Draidia</title><link>https://tahadraidia.com/tags/assembly-x86/</link><description>Recent content in Assembly x86 on Taha Draidia</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 22 Dec 2021 07:27:39 +0000</lastBuildDate><atom:link href="https://tahadraidia.com/tags/assembly-x86/index.xml" rel="self" type="application/rss+xml"/><item><title>A Brief Dive Into Windows Structured Exception Handling</title><link>https://tahadraidia.com/posts/a_brief_dive_into_windows_structured_exception_handeling/</link><pubDate>Wed, 22 Dec 2021 07:27:39 +0000</pubDate><guid>https://tahadraidia.com/posts/a_brief_dive_into_windows_structured_exception_handeling/</guid><description>When it comes to handle exceptions in programming, we are all familiar with try/catch and it&amp;rsquo;s other variant syntax sugar. For example below is a divide by zero error raised as an exception in python.
PS C:\Users\tahai\code\blog&amp;gt; python Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32 Type &amp;#34;help&amp;#34;, &amp;#34;copyright&amp;#34;, &amp;#34;credits&amp;#34; or &amp;#34;license&amp;#34; for more information. &amp;gt;&amp;gt;&amp;gt; d = 9 // 0 Traceback (most recent call last): File &amp;#34;&amp;lt;stdin&amp;gt;&amp;#34;, line 1, in &amp;lt;module&amp;gt; ZeroDivisionError: integer division or modulo by zero &amp;gt;&amp;gt;&amp;gt; The exception name is called ZeroDivisionError, in this case we didn&amp;rsquo;t catch the error but the system did for us.</description></item><item><title>Alternative to JMP ESP Instruction</title><link>https://tahadraidia.com/posts/alternative-to-jmp-esp/</link><pubDate>Sun, 12 Dec 2021 13:34:28 +0000</pubDate><guid>https://tahadraidia.com/posts/alternative-to-jmp-esp/</guid><description>When it comes to vanilla buffer overflow, JMP ESP instruction is the one you look for when you got control over EIP register.
Now let&amp;rsquo;s assume that DEP is not enabled and due to ASLR and/or JMP ESP addresses contains bad characters, which make those address impossible to use.
We can look for the following assembly instructions instead:
PUSH ESP; RET (54C3) 0:012&amp;gt; u 77c73989 ntdll!ResCDirectoryValidateEntries+0x1805: 77c73989 54 push esp 77c7398a c3 ret CALL ESP; (FFD4) 0:012&amp;gt; u 77c77254 ntdll!</description></item></channel></rss>