w32 speaking shellcode – Pwn in style

Over the past few weeks I created a new shellcode that uses the Microsoft Speech API to have the target computer say “You got pwned!” over the speakers. Needless to say, the practical applications are myriad, from impressing women in bars to expediting world peace. However, I expect that the most common application will be people impressing their friends with their 1337 hacker skills.

The size of the shellcode is 242 bytes (add 5 for stack alignment and 39 for EAT bypass). It has all the usual bells and whistles: OS/SP independent, null-free, optional stack alignment and EAT bypass and no register requires a specific value for it to run correctly.

Get the code here.

2 Comments to “w32 speaking shellcode – Pwn in style”

  1. Peter Ferrie
    2010/12/31


    DEC ECX
    CMP DX, SI
    JE found_function
    JCXZ next_module
    JMP next_function_loop
    found_function:
     

    what about

    CMP DX, SI
    LOOPNE next_function_loop
    JNE next_module
     

    to save a few bytes?

  2. SkyLined
    2011/01/02

    Thanks Peter, that saves quite a few bytes! I must admit that I’ve not spent a lot of time minimizing this one; I basically took my MessageBox shellcode and replaced the API calls. Unfortunately, I needed to make one additional call, so I had to modify the original code a bit.

    I’ve updated the code. There may be other size imperfections, so let me know if you see anything else!