Skip to content

Instantly share code, notes, and snippets.

@lukasklein
Created October 23, 2012 22:03
Show Gist options
  • Save lukasklein/3941938 to your computer and use it in GitHub Desktop.
Save lukasklein/3941938 to your computer and use it in GitHub Desktop.
def generate(code):
code_obj = compile(code, '<string>', 'exec')
code_ = code_obj.co_code
code = ''
for char in code_:
code += 'chr(' + str(hex(ord(char))) + ')+'
code = code[:-1]
return "type(make_secure)(code=type(make_secure.__code__)(%d,%d,%d,%d,%s,%s,%s,%s,'%s','%s',%d,'%s'),globals={})()" % (code_obj.co_argcount, code_obj.co_nlocals, code_obj.co_stacksize, code_obj.co_flags, code, str(code_obj.co_consts).replace(' ', ''), str(code_obj.co_names).replace(' ', ''), str(code_obj.co_varnames).replace(' ', ''), code_obj.co_filename, code_obj.co_name, code_obj.co_firstlineno, str(code_obj.co_lnotab))
if __name__ == "__main__":
print generate("print(open('key').read())")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment