mirror of
https://github.com/rapid7/metasploit-payloads
synced 2025-05-12 19:04:32 +02:00
44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
#!/usr/bin/env python
|
|
|
|
import os,struct,py_compile,zlib,marshal
|
|
|
|
def w(f,c):
|
|
with open(f,'wb') as f:
|
|
f.write(c)
|
|
|
|
def r(f):
|
|
with open(f,'rb') as f:
|
|
return f.read()
|
|
|
|
def p(d):
|
|
return struct.pack('<L', d)
|
|
|
|
modules = {}
|
|
|
|
here = os.getcwd()
|
|
folder = '../Lib'
|
|
os.chdir(folder)
|
|
|
|
for entry in os.listdir('.'):
|
|
if os.path.isfile(entry):
|
|
if entry.endswith('.py'):
|
|
path = entry.split('.')[0]
|
|
print path
|
|
modules[path] = (entry, False, compile(r(entry), entry, 'exec'))
|
|
else:
|
|
for root, _, files in os.walk(entry):
|
|
for f in [x for x in files if x.endswith('.py')]:
|
|
path = os.path.join(root, f)
|
|
modname = path.split('.')[0].replace('\\', '.').replace('.__init__', '')
|
|
print modname
|
|
modules[modname] = (path, True, compile(r(path), path, 'exec'))
|
|
|
|
os.chdir(here)
|
|
|
|
importer = compile(r('met_importer.py'), 'met_importer.py', 'exec')
|
|
print 'Total modules: {0}'.format(len(modules.keys()))
|
|
|
|
content = zlib.compress(marshal.dumps([importer, modules]), 9)
|
|
w('python_core.cz', p(len(content)) + content)
|
|
|