<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ASM on Taha Draidia</title><link>https://tahadraidia.com/tags/asm/</link><description>Recent content in ASM on Taha Draidia</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 12 Dec 2021 13:34:28 +0000</lastBuildDate><atom:link href="https://tahadraidia.com/tags/asm/index.xml" rel="self" type="application/rss+xml"/><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>