Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions unwrap.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@

def decode_base64_package(base64str):
base64dec = base64.decodestring(base64str)[20:] # we strip the first 20 chars (SHA1 hash, I don't bother checking it at the moment)
decoded = ''
for byte in range(0, len(base64dec)):
decoded += chr(charmap[ord(base64dec[byte])])
decoded = bytes(map(lambda b: charmap[b], base64dec))
return zlib.decompress(decoded)


sys.stderr.write("=== Oracle 10g/11g PL/SQL unwrapper 0.2 - by Niels Teusink - blog.teusink.net ===\n\n" )
if len(sys.argv) < 2:
Expand All @@ -29,7 +27,7 @@ def decode_base64_package(base64str):
infile = open(sys.argv[1])
outfile = None
if len(sys.argv) == 3:
outfile = open(sys.argv[2], 'w')
outfile = open(sys.argv[2], 'wb')

lines = infile.readlines()
for i in range(0, len(lines)):
Expand All @@ -44,6 +42,6 @@ def decode_base64_package(base64str):
base64str += lines[i+j]
base64str = base64str.replace("\n","")
if outfile:
outfile.write(decode_base64_package(base64str) + "\n")
outfile.write(decode_base64_package(base64str) + b'\n')
else:
print decode_base64_package(base64str)
print(decode_base64_package(base64str))