Skip to content

Instantly share code, notes, and snippets.

@rvrsh3ll
Forked from ajpc500/binToUUIDs.py
Created February 2, 2021 21:20
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save rvrsh3ll/28579c560897af6dcbf7daf0faa75703 to your computer and use it in GitHub Desktop.
Save rvrsh3ll/28579c560897af6dcbf7daf0faa75703 to your computer and use it in GitHub Desktop.
Convert shellcode file to UUIDs
from uuid import UUID
import os
import sys
# Usage: python3 binToUUIDs.py shellcode.bin [--print]
print("""
____ _ _______ _ _ _ _ _____ _____
| _ \(_) |__ __| | | | | | | |_ _| __ \
| |_) |_ _ __ | | ___ | | | | | | | | | | | | |___
| _ <| | '_ \| |/ _ \| | | | | | | | | | | | / __|
| |_) | | | | | | (_) | |__| | |__| |_| |_| |__| \__ \
|____/|_|_| |_|_|\___/ \____/ \____/|_____|_____/|___/
\n""")
with open(sys.argv[1], "rb") as f:
bin = f.read()
if len(sys.argv) > 2 and sys.argv[2] == "--print":
outputMapping = True
else:
outputMapping = False
offset = 0
print("Length of shellcode: {} bytes\n".format(len(bin)))
out = ""
while(offset < len(bin)):
countOfBytesToConvert = len(bin[offset:])
if countOfBytesToConvert < 16:
ZerosToAdd = 16 - countOfBytesToConvert
byteString = bin[offset:] + (b'\x00'* ZerosToAdd)
uuid = UUID(bytes_le=byteString)
else:
byteString = bin[offset:offset+16]
uuid = UUID(bytes_le=byteString)
offset+=16
out += "\"{}\",\n".format(uuid)
if outputMapping:
print("{} -> {}".format(byteString, uuid))
with open(sys.argv[1] + "UUIDs", "w") as f:
f.write(out)
print("Outputted to: {}".format(sys.argv[1] + "UUIDs"))
@ustayready
Copy link

Freaking cool.

@kabo00os
Copy link

kabo00os commented Sep 5, 2021

@kabo00os
Copy link

kabo00os commented Sep 8, 2021

@kabo00os
Copy link

kabo00os commented Jan 3, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment